فهرست
اغلب پروژههای نرمافزارهای آزاد با شکست مواجهه میشوند.
معمولا تمایل داریم به پروژههای شکست خورده نپردازیم؛ تنها روی پروژههای موفق هستند که توجه ما را به خود جلب می کنند، درکل نرمافزارهایآزاد زیادی وجود دارند[2] که حتی اگر درصد کوچکی از آنها موفق بوده باشند، درنتیجه پروژههای زیادی برای بررسی وجود دارند. همچنین درمورد شکستها چیزی نمیگوییم زیرا که شکست یک اتفاق نیست. اهمیتی ندارد که یک پروژه متوقف شده به حیات خود ادامه دهد، چراکه به سادگی افراد از دور میتوانند اراده کنند و کار آن را متوقف کنند. زمان تغییرات نهایی پروژه حائز اهمیت است، اما معمولآ نمیدانیم چه کسی در چه زمانی آن را تغییرداده و آخرین تغییر متعلق به چه کسی است. تعریف روشنی از زمان پایان کار نرمافزار یا تاریخ انقضای آن وجود ندارد. مثلآ زمانیکه برای شش ماه غیرفعال باشد؟ یا زمانی که کاربران اصلی بدون اینکه از مبنای گسترش تجاوز کند، ارتقا نرمافزار را متوقف کند؟ را میتوان تاریخ انقضای نرمافزار درنظر گرفت. اگر توسعهدهندگان نرمافزار به دلیل اینکه متوجهشوند درحال نسخهبرداری از کار دیگری هستند، کار خود را متوقف کنند چه میشود – و و اگر به پروژه دیگری ملحق شوند، و تلاشهای قبلی خود را در آن بکار گیرند چه میشود؟ آیا پروژه اول را به پایان میرسانند؟
به دلیل همچین پیچیدگیهایی، گفتن عدد دقیقی از نرخ شکست غیرممکن است. اما حکایت دو دهه در نرمافزارهای متنباز، یکسری طرحریزیها حول سایتهای میزبان چند پروژهای، و کمی کار در تمام نقاط گوگل برای نتایج مشابه نشانمیدهد: اگر شما تعداد پروژههای باقی مانده را به حساب بیاورید در حالیکه تعداد پروژه ناکارآمد هم در آنها است، نرخ به شدت بالا است، شاید در حدود 90–95% است. این نرخ حتی بیشتر هم می شود وقتی شامل پروژه های زنده اما ناکارآمد هم شود: مثلآ پروژههایی نارکارآمد هستند که کدهای اجرایی را تولید می کنند اما در موقعیتهای مناسبی نیستند، یا با سرعت کافی پیشرفت نمی کنند و یا تا آنجا که میشود قابل اتکا نیستند.
این کتاب در رابطه با اجتناب از شکست است. و نه تنها بررسی میکند که چگونه کارها را درست انجام دهید، بلکه چگونه اشتباه انجام دهید، لذا میتوانید سریعتر مسائل را تشخیص دهید و آنها را تصحیح کنید. امیدواریم که بعد از خواندن این کتاب، فهرستی از تکنیکها نه تنها برای اجتناب از تلههای توسعه متنبازها، بلکه برای سرو کار داشتن با رشد و نگهداری پروژههای موفق داشته باشید. این کتاب درمورد برندهشدن در رقابتهاست. براستی، بخش مهمی از اجرای پروژههای متنبازها همکاری با یکدیگر در پروژههای مرتبط است. دربلند مدت، به طورکلی خوب بودن پروژه، به نرمافزارهایآزاد کمک میکند.
میتوان گفت که پروژههای نرمافزاریآزاد به همان دلایلی شکست می خورند که پروژههای نرمافزاریاختصاصی با شکست مواجهه میشوند. مطمئنآ، نرمافزارهایآزاد هیچ امتیاز انحصاری برای نیازهای غیرواقعی، ویژگیهای مبهم، مدیریت منبع ضعیف، مراحل طراحی ناکافی، یا هرچیز دیگری که تاکنون در صنعت نرمافزار شناخته شده است، ندارد. مطالب زیادی دررابطه با این موضوع وجود دارد، و نمیخواهیم که آنها را دوباره در این کتاب تکرار کنیم. درعوض، به تشریح مسائل خاص نرمافزارهای آزاد میپردازیم. وقتی یک پروژههایآزاد به ته می نشیند،معمولا به این خاطر است که توسعه دهندگان (یا مدیران) مسئله و مشکلات منحصربفرد توسعه نرمافزارهای متنباز را درک نکردهاند، حتی اگر برای حل مشکلات پروژههای منبع بسته کاملا آماده باشند.
یکی از مشکلات رایج در داشتن انتظارات غیرواقعی حول مزایای خود پروژههای متنباز است. داشتن مجوزهای باز یکباره سرازیری انبوهی از توسعهدهندگان فعالی را که وقت خود را داوطلبانه به پروژه شما تخصیص دهند را تضمین نمیکند و درنظر داشته باشید که متنباز بودن یک پروژه به مشکل خورده، به طور خودکار باعث سهولت در برطرف کردن مشکل آن نمیشود. در حقیقت برعکس است : بازکردن پروژه میتواند مجموعه ای کاملا جدید از پیچیدگیها و هزینه در کوتاه مدت نسبت به نگهداری بیشتر آن در اختیار خودتان به آن اضافه کند. بازکردن به معنی مرتبسازی کد به منظور اینکه توسط افراد ناشناس تکمیل شود، تنظیم اسناد توسعه، لیست ایمیلها، و اغلب نوشتن اسناد برای اولین بار است. همه اینها کار میباشد و البته، توسعهدهندگان علاقه مند را درصورتوجود نشانمیدهد، و این سوال که آیا از حضور آنها منفعتی برای پروژه بوجود آمدهاست یا نه را ایجاد میکند. یکی از توسعهدهندگان Jamie Zawinski درمورد روزهای اولیه مشکل پروژه موزیلا گفت:
پروژه متنباز کار میکند، اما مطمئنآ این یک راهحل کلی نیست. احتیاطی که باید رعایت کرد این است، که یک پروژه درحال مرگ را درنظر نگیرید، این یک فضایرویایی از "متنباز" را ایجاد میکند، و همه چیز به صورت رویایی کار میکند. مسئله این است که این کارها ساده نیست.
مشکلات مرتبط دیگر مضایقه کردن از ارائه و بستهبندی است، متوجهباشید زمانی که پروژه به خوبی در حال اجرا است، بستهبندی و ارائه میتواند بعدآ انجام شود. ارائه و بستهبندی شامل محدوده وسیعی از وظایف، و همه گردانندهها با محوریت موضوع کاهش موانع ورود است. دعوت به پروژه با نوشتن واسطهای غیرآغازین کاربران و سندبندی توسعهدهندگان، اسنادی که حاوی اطلاعاتی برای افراد تازهکار است، و اتوماسیون که تلفیقی از نرمافزار و نصب و راهاندازی آن است، ایجاد میشود. متاسفانه بسیاری از برنامه نویسان این کار را به عنوان اهمیت ثانویه خود کد تلقی میکنند. چند دلیل برای این کار وجود دارد: ابتدا به دلیل اینکه مزایای آن حداقل برای کسی که آشنا به پروژه است قابل مشاهده است، احساس میشود این کار یک کار پرمشغله است، و برعکس. بعد از آن، افرادی که کد را بسط میدهند حقیقتآ نیازی به بستهبندی یا پکیج کردن ندارند. در حال حاضر چگونگی نصب، مدیریت، و استفاده از نرمافزار را میدانند، چرا که خود آنها نرمافزار را نوشتهاند. دومآ، مهارتهایی که نیازمند ارائه و بستهبندی خوب است اغلب به طورکامل از نیازمندیهای نوشتن کد متفاوت است. افراد به تمرکز بر آنچه که بهتر است تمایل دارند، حتی اگر پروژههای بهتری در گذرزمان کوتاه در موردی که کمتر مناسب است بکارگیرد. د فصل 2, Getting Started 2، ارائه و بستهبندی را باجزییات، و اینکه چرا اولویتها از آغاز پروژه مهم هستند را توضیح میدهیم
تصور غلطی وجود دارد که پروژههای متنباز نیازمند مدیریت کم پروژه یا بطور کل مدیریت نکردن پروژه هستند، و یا برعکس، عملیات مدیریتی مشابه استفاده شده در توسعات خانگی به همان اندازه برروی پروژههای متنباز نیز کار خواهدکرد. مدیریت در پروژههای متنباز همیشه قابل مشاهدهنیست، بلکه در پروژههای موفقیتآمیز، معمولآ در پشتصحنهای از فرمها و دیگر رخدادها اتفاق میافتد. آزمایش ذهنی کوچکی برای نشاندادن چرایی آن کافیاست. پروژههای متنباز مجموعه تصادفی از برنامه نویسان را در برمیگیرد- درحالحاضر گونههای به شدت مستقلی وجود دارند- که به احتمال زیاد هرگز همدیگر را ملاقات نمیکنند، و ممکن است هریک از آنها برای کار برروی پروژه اهداف شخصی مختلفی داشتهباشد. آزمایش نظری سادهای آنچه که در گروهها بدون مدیریت رخ میدهد را تصورمیکند. با جلوگیری نکردن از یکسری اتفاقات، میتواند پروژه فروپاشی شود و یا جریان آن بهسرعت از هم جدا شود و یکسری رخدادهای ناخواسته رخ دهد. مدیریت هرچند ممکن است بسیار فعال باشد، اما اغلب غیررسمی، زیرکانه، با قدرت کم است. تنها چیزی که منجر به گسترش گروه میشود اعتقاد بهاین است که میتوانند کارها را بهصورت گروهی در هماهنگی بیشتری انجام دهند. بنابراین هدف مدیریت اغلب این است که تداوم این اعتقاد را، با استانداردهایی برای ارتباطات، و با اطمینان از اینکه توسعهدهندگان سودمند بادلایل شخصی به حاشیه رانده نمیشوند، و به طورکلی پروژه را محلی برای آنکه توسعهدهندگان بخواهند به آن برگردند تبدیل میکند، تضمین میکند. تکنیک ویژه انجام این کار در بقیه کتاب گفته شده است.
سرانجام، یک گروهبندی عمومی از مسئله وجود دارد که به آن "شکست ناوبری فرهنگی" گفته میشود. بیست سال، یا حتی ده سال پیش، برای صحبت دررابطه با فرهنگ جهانی نرمافزارهایآزاد زود بودهاست، اما هم اکنون زمان آن رسیده است که در این رابطه صحبت شود. یک فرهنگ شناخته شده به آرامی ظهور میکند، و درحالیکه قطعآ یکپارچه نیست، دارای یک هسته اساسآ سازگار است. اغلب پروژههای متنباز موفق یکسری از ویژگیهای این هسته یا همه ویژگیهای آن را نشانمیدهند. انها انواع خاصی از رفتارها را بدست آوردهاند، و باقی رفتارها را از دستدادند، آنها فضایی ایجادکردند که آنها را به یک همکاری طرحریزی نشده تشویق میکند، گاهی اوقات برای هماهنگی مرکزی، آنها مفهومی از گستاخی و ادب در رفتار را که میتواند از رفتارهایی که در جاهای دیگر رایج است را تمییز دهد را دارا میباشند. مهمتر از همه، شرکای قدیمی ذاتآ این استانداردها را دارند، لذا میتوانند یک اجماع نسبی حول نتیجه موردانتظار را به اشتراک بگذارند. پروژههای ناموفق معمولآ از این راه مهم هسته، بهطور ناخواسته منحرف میشوند، و اغلب حول آنچه که به عنوان پیشفرض رفتار معقول است، اتفاق نظر ندارند. این به معنی این است که زمانی که یک مسئله بوجود میآید، شرایط به سرعت بدتر میشوند، همانطور شراکت فاقد سهام تازهتاسیس شده فرهنگی برای اتکا به حل و فصل اختلافات یک عکسالعمل غیرارادی دارند.
آخرین طبقهبندی، شکست ناوبری فرهنگی، شامل پدیدههای جالبی است: نوع خاص سازمانها به صورت ساختاری دارای سازگاری کمتری با بسطهای متنباز نسبت به بقیه است. یکی از این بزرگترین شگفتیها در امادهسازی دومین ویرایش این کتاب توجه به آن است، در کل، تجارب من نشان دادند که بهطور طبیعی دولتها برای شرکت در پروژههای نرمافزاریآزاد نسبت به شرکتهای خصوصی، برای سود شرکت، و سازمانهای غیرانتفاعی که در جایی بین این دو هستند، کمتر مناسب هستند. ( فصل 9, Governments and Open Source). مشکلات قطعآ قابل برطرف شدن هستند، اما شایان ذکر است که زمانی که یک سازمان وجود دارد، بخصوص سازمان سلسله مراتبی، ریسکگریز، و حساس به تبلیغ، و پروژه متنباز را شروع میکنند یا با آن همکاری میکنند، یکسری تنظیمات معمولآ مورد نیاز هستند.
این کتاب یک راهنمای عملی است، نه یک مطالعه انسانشناسانه یا تاریخی. بااین حال، دانشکاری منشا امروزه فرهنگی نرمافزارهایآزاد یک زیربنای ضروری برای هر توصیه عملی است. شخصی که درکی از فرهنگ داشته باشد میتواند در دنیای متنباز یک پیمایش دور و گسترده، در مواجهه با بسیاری از تغییرات محلی در سفارشات و زبانهایمحلی داشته باشد، درعینحال قادر است به راحتی و به طور موثر در همهجا شرکت داشته باشد. در مقابل، شخصی که درکی از فرهنگ نداشته باشد فرآیند سازماندهی یا همکاری در پروژهها برایش مشکل و پر از نکات متحیرکننده است. از آنجا که تعداد افراد توسعهدهنده نرمافزارهای رایگان باوجود فرازو نشیبهایی که وجود دارد در حال رشد هستند، افراد زیادی در گروهبندیهای بعدی وجوددارند، این اتفاق بهطور گسترده یک فرهنگ از مهاجران جدید است، و در برخی از زمانها ادامه خواهدداشت. اگر شما فکر میکنید میتوانید یکی از آنها باشید، بخش بعدی یک پسزمینه برای بحثهایی که بعدآ با آن مواجهه میشوید فراهم میآورد، که هردو در کتاب و اینترنت هستند.(از طرفی دیگر، اگر درحال همکاری با پروژه متنباز باشید، ممکن است هماکنون از بسیاری از این تاریخچهها اطلاع داشته باشید، لذا به راحتی میتوانید از بخش بعدی عبور کنید).
نرمافزارهای اشتراکگذاری در پیرامون خود دنیای نرمافزار است. در روزهای اولیه کامپیوتر، تولیدکنندگان احساس کردند که مزیتهای رقابتی به طورعمده باعث نوآوری در سختافزار شدهاست، و بنابراین به نرمافزار به عنوان یک دارایی تجاری توجهنکردند. بسیاری از مصرفکنندگان ماشینهای اولیه دانشمندان و تکنسینها بودند، که قادر به ساخت و بسط نرمافزارها با خود ماشین بودند. مصرفکنندگان گاهی تکهها برنامههای قبلی خود را نهتنها به تولیدکنندگاندیگر، بلکه به صاحبان دیگر ماشینهای مشابه توزیعمیکنند. تولیدکنندگان اغلب این مسئله را تحمل میکنند و حتی به آن تشویق میکنند: در چشم آنها، بهبود نرمافزار، از هرمنبعی، تنها سختافزار را برای دیگر مشتریان بالقوه جذاب میسازد.
گرچه اوایل این دوره از بسیاری جهات شبیه به فرهنگ نرمافزارهای آزاد امروزه است، اما از دو جهت تفاوت بسیار مهمی دارد: ابتدا، هنوز کمی راه تا استانداردسازی سختافزار وجود داشت- که زمانی برای شکوفایی نوآوری در طراحی کامپیوتر بود، امادر تنوع معماری محاسبات هرچیزی با چیز دیگر در تناقض بود. نرمافزار نوشته شده برای یک ماشین قاعدتآ در ماشین دیگری کار نمیکرد، و برنامهنویسان تمایل به بدست اوردن تخصص در یک معماری سختافزار خاص یا در خانواده معماری را داشتند ( در حالیکه امروزه آنها میخواهند که در زبان برنامهنویسی یا خانوادهای از زبانها تجربه و تخصص بدست آورند، باامید به اینکه بتوانند تخصص خود را به هر سخت افزار رایانه انتقال دهند و در آن رایانه کار کند). به دلیل اینکه تخصصهای افراد محدود به یک نوع کامپیوتر میشود، تجمع تخصص آنها باعث میشود که کامپیوتر معماری خاص و جذابتری برای آنها و همکاران آنها داشته باشد. بنابراین تولیدکنندگان تمایل دارند که کدهای ماشین را تولید کنند و دانش را تاجایی که میشود بسط دهند.
ثانیآ، هیچ اینترنت گستردهای وجود نداشت. گرچه محدودیتهای قانونی کمتری برای اشتراکگذاری نسبت به امروز وجود داشت، محدودیتهای فنی بیشتر بود: مفهوم گرفتن داده از مکانی به مکان دیگر ناخوشایند و دستوپاگیر بود، که درمورد آن صحبتشدهاست. یکسری شبکه کوچک، محلی وجود دارند که برای اشتراکگذاری اطلاعات در آزمایشگاه یا شرکتها مناسب هستند. اگر درخواست اشتراکگذاری جهانی وجود داشته باشد باید بریکسری از موانع غلبه کنیم. در بسیاری از موارد بر این موانع غلبه شده است. گاهی اوقات گروههای متفاوت به طورمستقلی باهم در تماس هستند، دیسک یا نوارهایی را ایمیل میکنند، و گاهی اوقات تولیدکنندگان به عنوان مرکز اصلی پاکسازی برای پچها بکار گرفته میشوند. همچنین به توسعهدهندگان کامپیوترهای اولیه برای کار در دانشگاهها، که در آنجا دانشها بهصورت مکتوب هستند، کمک میکند. اما واقعیت فیزیکی انتقالداده ایناست که همیشه برای اشتراکگذاری یک مقاومت ظاهری وجود دارد، و باتوجهبه مقاومت ظاهری فاصله (واقعی یا سازمانی) که نرمافزار باید از آن عبور کند. گستردگی، اصطکاک بهاشتراکگذاری، که امروز میشناسیم ممکن نبود.
به عنوان یک صنعت بالغ، چندین تغییرات مرتبط به صورت همزمان اتفاق افتاد. یک تنوع رامنشده طراحی نرمافزار به تدریج راهی را به چند برنده، برای مثال برندگان از طریق تکنولوژی برتر، بازاریابی برتر، یا ترکیبی از این دو، نشان داد. در زمانهای مشابه، و نه زمانهای اتفاقی، بسطهایی که به آنها زبان برنامهنویسی سطح بالا گفته میشود به معنی آن بود که میتوان برنامه را تنها یکبار در یک زبان نوشت و آن را به طورخودکار در کامپیوترهای مختلف اجرا کرد. اینکار در تولید سختافزار پیامدهایی داشت: درحال حاضر مشتری میتواند نسبت به تلاشهای مهم یک مهندس نرمافزار بدون قفلکردن نرمافزار آنها در یک معماری کامپیوتراختصاصی متعهد شود. زمانیکه با محدودیتبندی تدریجی تفاوت عملکرد انواع کامپیوترها ترکیب شود، و کمتر به عنوان کار کارآمد تلقی میشدند، تولیدکنندگانی به این سختافزارها به عنوان تنها دارایی که میتواند سود را در آینده کاهشدهد نگاه میکردند. قدرت محاسباتاولیه تبدیل به یک تناسب قابلتعویض شدهاست، در صورتیکه نرمافزار تبدیل به یک تمایزگر میشود. نرمافزارهای فروش، حداقل تغییرات آن را به عنوان بخش جداییناپذیر فروش سخت افزار، به عنوان شروع یک استراتژی خوب در نظر گرفتهاند.
این به معنی اینست که تولیدکنندگان باید اجرای حق کپی کدها را با شدت بیشتری شروع کنند. اگر کاربران اشتراکگذاری و اصلاح کد را در میان خودشان به سادگی ادامهدهند، ممکن است به طورمستقل برخی از بهبودهای کنونی به عنوان "ارزش افزوده" توسط عرضهکننده کالا به فروشرسد. از همه بدتر، کدهای به اشتراکگذاشته شده میتوانند بدست رقبا بیافتند. مسخره است که همه اینها درزمانی اتفاق میافتد که اینترنت مسبب آن است. لذا تنها زمانی که واقعآ اشتراکگذاری نرمافزار بدون مانع است نهایتآ این تبدیلات از لحاظ فنی امکانپذیر است، نهایتآ از نقطه نظر هرشرکتی، تغییر در تجارت کامپیوتر آن را از لحاظ اقتصادی نامطلوب ساختهاست، عرضهکنندگان پایین نگهداشتهشدهاند، و دسترسی کاربران به کدهایی که ماشین آنها اجرا میکند را مسدودمیکنند، و یا بر توافق نامه عدم افشا اصرار ورزیده که اشتراکگذاری را غیرممکن میسازد.
همانطور که جهانی از کدهای مبادلهشده نامحدود به آرامی کمرنگ میشود، یک ضدحمله در ذهن حداقل یک برنامه نویس تبلور مییابد. ریچارد استالمن که در آزمایشگاه هوشمصنوعی در موسسه تکنولوژی ماساچوست در سال 1970 و ا وایل 1980، در طول زمانی که تبدیل به یک عصر طلایی و موقعیت طلایی برای اشتراکگذاری کد شدهبود، کار میکرد. آزمایشگاه هوشمصنوعی دارای یک "هکر اخلاقی" قوی است [3]، و افراد تنها انتظارندارند که تشویقشوند بلکه انتظار به اشتراکگذاری انچه که باعث بهبود سیستم میشود نیز دارند. همانطور که استالمن بعدها نوشت:
نمیگوییم که نرمافزار ما "نرمافزار آزاد" است، چرا که آن اصطلاح هنوز وجود ندارد، اما چیزی بود که هست. هرگاه افرادی از دانشگاه یا شرکت دیگری درگاهی از نرمافزار یا استفاده از نرمافزار را درخواست کرد، با کمال میل به آنها اجازه این کار را میدهیم. اگر فردی را دیدی که از یک برنامه ناآشنا و جالب استفاده میکند، میتوانید کد منبع آن را از او بخواهید، لذا میتوانید آن را بخوانید، تغییر دهید، و یا بخشهایی از آن را به برنامه جدید وارد کنید.
این جامعه بهشتی استالمن مدت کوتاهی پس از سال 1980 سقوط کرد، در آن زمان تغییراتی در بقیه صنعت اتفاق افتاد نهایتآ این تغییرات به آزمایشگاه هوش مصنوعی رسید. یک شرکت راه اندازی تعدادی برنامهنویس آزمایشگاه را برای کار برروی سیستمعاملهایی شبیه به آنچه که در آزمایشگاه کار میکند و درحال حاضر تنها تحت مجوزهای منحصربفرد هستند، استخدام کرد. درهمینزمان، آزمایشگاه هوشمصنوعی تجهیزات جدیدی که بایک سیستم عامل اختصاصی بوجود امده بود بدست آورد.
استالمن یک الگوی بزرگ در آنچه که رخ داده است را مشاهده کرد:
کامپیوترهای مدرن هر دوره، مانند VAX یا 68020، دارای سیستمعامل مخصوص بهخود هستند، اما هیچکدام از آن سیستمعاملها، نرمافزار آزاد نیستند: حتی برای گرفتن یک نسخه اجرایی باید یک توافقنامه عدماطلاع را امضا کنید.
این به معنی اینست که اولین گام در استفاده از کامپیوتر این است که مثلآ تعهددهید که به همسایه خود کمک نمیکنید. همکاری تجمعی ممنوع است. قانونی که توسط صاحبان نرمافزارهای اختصاصی ایجاد شده است این است که:" اگر آن را با همسایه خود به اشتراک بگذارید، شما یک دزد هستید، اگر میخواهید در آن تغییری ایجاد کنید ، این کار را از ما بخواهید".
با کمی تغییر شخصیت، برای مقاومت دربرابر تغییر روند تصمیمگرفت. به جای کار در آزمایشگاه هوشمصنوعی که در حالحاضر نابود شده است، و یا در نظرگرفتن شغل برنامه نویسی در شرکتهای جدید، که نتایج کار در انها ثبتمیشود و محفوظ میماند، از آزمایشگاه انصراف داد و پروژه GNU و نرمافزار آزاد را بنیانگذاری کرد(FSF). هدف GNU [4] گسترش کامل سیستمعاملهای کامپیوترهای آزاد و باز و بدنه نرمافزارهای کاربردی است، که در آن کاربران از هککردن و یا به اشتراکگذاری تغییرات خود جلوگیری میکنند. او، دراصل، مجموعهای از نوآوریهایی که در آزمایشگاه هوش مصنوعی نابود شدهبود را بدستآورد، اما در مقیاس گسترده جهانی و بدون وجود آسیبپذیری که فرهنگ آزمایشگاه را مستعد ابتلا به فروپاشی کرده بود.
علاوه بر کار برروی سیستمعامل جدید، استالمن یک گواهینامه حقکپی که اصطلاحات ان اینکه یک کد به طور دایمی رایگان خواهد بود را تضمین میکند، طراحی کرد. مجوز عمومی GNU یک قطعه هوشمندانه از قانون است: این مجوز بیانمیکند که کد میتواند بدون هیچ محدودیتی کپی و اصلاح شود، و هردو کپی و آثار مشتق شده از آن( برای مثال، نسخه اصلاح شده) میتواند تحت مجوز مشابه به عنوان اصل آن، بدون هیج محدودیت اضافی، منتشر شود. در تاثیرات آن، این قانون از قانون حقکپی برای بدست آوردن تاثیرات مثبت نسبت به حقکپی سنتی استفاده میکند: بهجای محدودیت توزیع نرمافزار، هرکسی, را، حتی برنامهنویس را، از محدودکردن توزیع منع میکند. برای استالمن، بهترست که به سادگی کد خود را در یک دامنه عمومی قرار دهد. اگر در یک دامنه عمومی باشد، هرگونه کپی خاص از آن کد میتواند در یک برنامهاختصاصی گنجانده شود ( همانطور گاهی اوقات اتفاق میافتد که یک کد تحت مجوز حق کپی متن باز باشد[5]) . درحالیکه همچین اختلالی منجر به کاهش در دسترسبودن کد اصلی نمیشود، به معنی این است که تلاشهای استالمن میتواند در نرمافزارهای اختصاصی دشمن را بهرهمند کند. GPL میتواند به عنوان یک حمایت تولید داخلی برای نرمافزارهای آزاد در نظرگرفته میشود، به این دلیل که مانع این میشود که نرمافزارهای غیرآزاد از کد GPLed کاملآ بهره مند شود. GPL و ارتباطات آن برای دیگر قوانین نرمافزارهای رایگان با جزییات بیشتر در ??? به بحث گذاشته شدهاند.
با کمک بسیاری از برنامه نویسان، یکسری از آنها ایدئولوژی استالمن را به اشتراکگذاشته اند و یکسری از آنها میخواهند یکسری از کدهای دردسترس آزاد را به سادگی ببینند، پروژه GNU شروع به رهاسازی جایگزین رایگان برای بسیاری از مولفههای بحرانی سیستم عامل میکند. به دلیل استانداردهای گسترده کنونی در نرمافزار و سختافزار کامپیوتر، استفاده از جایگزینی GNU درغیر از سیستمهای آزاد ممکناست، و بسیاری از افراد آن را انجام میدهند. ویرایشگر متن GNU و کامپایلر C (GCC) به طور خاصی، در بدستآوردن موارد بزرگ و ثابت نه تنها در زمینه ایدئولوژیک، بلکه به سادگی در پارامترهای فنی موفقهستند. حدود سال 1990، GNU اغلب سیستمعاملهای رایگان را، به جز برای هسته، قسمتی از ماشین که بوت میشود، و مسئول مدیریت حافظه، دیسک، و سایر منابع سیستم است، را تولید کردند.
متاسفانه، پروژه GNU طراحی هسته را انتخاب کرده که نسبت به آنچه که انتظار میرفت پیادهسازی آن سختتر بود. متناسب با موانع زیربنای نرمافزار آزاد، اولین نسخه از سیستمعامل که کاملآ رایگان است را ایجاد کردند. قسمت نهایی را Linus Torvalds تکمیل کرد، یک دانشجوی علومکامپیوتر فنلاندی، با کمک داوطلبان در سراسر جهان، هسته رایگان را با استفاده از طراحی محافظه کارانه تکمیلکرد. آن را لینوکس نامید، زمانی که با برنامههای GNU موجود و دیگر نرمافزارهای رایگان ترکیب شد (به خصوص سیستم ویندوزX)، نتیجه به طورکامل شبیه یک سیستمعامل آزاد بود. برای اولین بار؛ شما میتوانید کامپیوتر خود را بوت کنید و بدون هیج نرمافزار اختصاصی کار خود را انجام دهید [5]
بسیاری از نرمافزارها در سیستمعاملهای جدید با پروژههای GNU تولید نشدهاند. درحقیقت، GNU تنها یک گروه کاری برای تولید سیستمعامل آزاد نیست (برای مثال، کدها در نهایت تبدیل به NetBSD میشود و FreeBSD در حال حاضر در حال توسعه در این زمان بوده است). اهمیت زیربنای نرمافزارهای آزاد تنها در کد نوشته شده آنها نیست، بلکه در فصاحت سیاسی آن هم هست. صحبت پیرامون نرمافزارهایآزاد بهعنوان یک عامل تسهیلات، اینکه نباید برنامه نویسان آگاهی سیاسی درمورد ان داشته باشند را مشکل ساخت. حتی انهایی که با FSF مخالف بودهاند، اگر حتی سهمی از موقعیتهای مختلف داشته باشند، باید برروی این مسئله بحث کنند. اثر FSF بهعنوان تبلیغات در پیوست کد خود به پیامها، به منظور GPL و دیگر متنها ذخیره میشود. همانطور که کدهای خود را به صورت گسترده گسترش میدهند، کدها به خوبی گسترده میشوند.
چیزهای دیگری وجود دارد که در صحنه نرمافزارهایآزاد به تازگی ظهور میکند، با این حال، همه به وضوح ایدئولوژی پروژه GNU استالمن نیستند. یکی از مهمترین چیزها توزیع نرمافزار برکلی (BSD), اجرای دوباره تدریجی سیستم عامل یونیکس- که تا اواخر 1970 یک پروژه تحقیقاتی آزادانه اختصاصی AT&T— بوده است- با برنامه نویسان در دانشگاه کالیفرنیای برکلی بوده است، میباشد. گروه BSD هیچ بیانیه آشکار سیاسی درمورد احتیاج برنامهنویسان به همدستی و اشتراک آنها بایکدیگر وجودندارد، اما انها این کار را با استعداد و شور و شوق انجاممیدهند، با هماهنگی تلاشهای توسعه توزیعشده تاسیسات خط-فرمان یونیکس و کتابخانه کد، و درنهایت هسته خود سیستم عامل، ابتدآ توسط افراد داوطلب بازنویسی شد. پروژه BSD تبدیل به یک مثال ابتدایی از توسعه نرمافزار آزاد غیرایدئولوژیک شده است، و همچنین به عنوان یک زمینه مبادله برای بسیاری از توسعه دهندگان که میخواهند به فعالیت های باقیمانده در جهان متن باز ادامه دهند بکار گرفته شده است.
دیگر امتحان سخت توسعه شراکتی سیستم ویندوز X یک محیط آزاد، شبکه محاسباتی گرافیکی شفاف است، که در MIT در اواسط 1980 در همکاری با فروشندگان سختافزار که دارای علایق مشترک و قادر به ارائه به مشتریان خود با یک سیستم ویندوز است توسعه داده شده است. به دور از مخالفت با نرمافزار اختصاصی، مجوز X عمدآ الحاقات اختصاصی در بالای هسته آزاد را اجازه داده است، هر عضو کنسرسیوم فرصتی برای افزایش توزیع Xپیش فرض را خواسته است، و در نتیجه مزایای رقابتی را بیش از سایر اعضا بدستآورده است. ویندوز X خودش یک نرمافزار آزاد است [6] اما عمدتآ به عنوان راهی برای سطح میدانبازی بین رقابت منافع تجاری و افزایش استانداردسازی حسابمیشود، و به پایاندادن برخی سلطههای نرمافزارهای اختصاصی تمایل ندارد. با این حال یک مثال دیگر، که به پروژه GNU چندسال پیش برمیگردد، TeX، Donald Knuth آزاد ، سیستم حروف چینی چاپ و نشر با کیفیت است. او آن را تحت شرایط که به هرکسی اجازه اصلاح و توزیع کد را میدهد منتشر کرد، اما نتیجه "TeX" نخواهدشد، مگر اینکه مجموعه بسیاردقیقی از آزمایشهای سازگار را تصویب کند. (این مثالی از کلاس "علامت تجاری محافظت" مجوز آزاد است، که بیشتر در ???بحث شده است). Knuth به عنوان یک راه یا راه دیگری در مورد نرمافزار آزاد درمقابل نرمافزاراختصاصی در نظرگرفته نشده است، او تنها نیازمند تست سیستم بهتر به منظور تکمیل هدف واقعیاش است— مثلا یک کتاب در برنامهنویسی کامپیوتر— هیچ دلیلی برای انتشار سیستماش در جهان واقعی در زمان انجام آن ندید.
بدون لیستکردن همه پروژهها و همهمجوزها، میتوان گفت در اواخر 1980، نرمافزارهای آزاد زیادی تحت گستره وسیعی از مجوزها وجودداشتند. تنوع مجوزها از تنوع متناظر انگیزهها منعکس شدهاست. حتی تعدادی از برنامهنویسان که GNU GPL را انتخاب کردهاند نسبت به خود پروژه GNU بسیار کمتر ایدئولوژیکی بودند. همچنین آنها از کاربرروی نرمافزارهای آزاد لذت میبردند، بسیاری از توسعهدهندگان نرمافزارهای اختصاصی غیراجتماعی را در نظر نمیگیرند. افرادی وجود دارند که احساس میکنند باید جهان را از ضربهاخلاقی "احتکار نرمافزار" نجات دهند (شرایط استالمن برای نرمافزارهای غیر-آزاد)، اما بقیه افراد با هیجانهای فنی، ازکار همراه با همفکری و همکاری لذت میبردند، و یا حتی برای تمایلاتی ساده و باشکوه انسانی برای این کار انگیزه بیشتر داشتند. بااین حال، روی همرفته این انگیزههای متفاوت در راههای مخرب در تعامل نیست. شاید به این دلیل است که نرمافزار، برخلاف دیگر هنرهای خلاقانه مانند نثر یا هنرهای تجسمی، باید یک آزمون نیمه-هدف را برای بررسی اینکه موفقیتآمیز بوده یا نه بگذراند: باید اجرا شود، و از لحاظ منطقی عاری از مشکلات باشد. به همه شرکتکنندگان در زمینه پروژههای مشترک خودکار، یک دلیل و چهارچوب برای کار بایکدیگر بدون هیچگونه نگرانی بیش از حد در مورد شرایط و انگیزههای فراتر از فنی داده میشود.
توسعه دهندگان دلیل دیگری برای همبستگی دارند: معلوم شد که دنیای نرمافزارآزاد جهانی برخی از کدها با کیفیت بسیار بالا را تولید کردهاست. در بعضی موارد؛ بهطورآشکاری از لحاظ فنی نسبت به جایگزینهای غیرآزاد برتر بود، در بقیه موارد؛ حداقل قابل مقایسه بود، و البته هزینه آن همیشه کمتر بودهاست. تا زمانی که تعدادی از انسانها علاقهمند به اجرای نرمافزارهای آزاد در زمینههای فلسفی باشند، بسیاری از مردم از اجرای آن خوشحال هستند، چرا که یک کار بهتر است. و درصد کمی از آنها که استفادهکننده هستند تمایل دارند که وقت و مهارت خود را صرف کمک به بهبودی نرمافزار کنند.
تمایل به تولید کد خوب قطعآ جهانی نیست، بلکه این با افزایش فرکانس در پروژههای نرمافزار آزاد در جهان اتفاق میافتد. تجارتهایی که به شدت به نرمافزار بستگی دارند شروع به توجهکردن نسبت به این بحث میکنند. بسیاری از انهایی که تاکنون در عملیات روزانه خود از نرمافزارهایآزاد استفاده میکردند شناخته شدهاند، که شناخته آنها کار آسانی نبود ( سطح بالای مدیریت همیشه از همه چیز دپارتمان فناوری اطلاعات اطلاع ندارد). شرکت به گرفتن نقش فعالتر و عمومی در پروژههای نرمافزار آزاد، زمان و تجهیزات کمکی، و گاهی اوقات حتی گرفتن بودجه توسعه برنامهآزاد به طور مستقیم اقدام میکند. این سرمایهگذاریها میتواند؛ در بهترین حالت، بارها و بارها بازپرداخت شود. اسپانسر تنها حقوق تعداد کمی از برنامهنویسان متخصص را که تماموقت خود را به پروژه تخصیص دادهاند میپردازد، اما در منافع همکاری باید به همه داوطلبین برنامهنویسی پرداخت شود درغیراینصورت برنامهنویسان به پروژه دیگری میپردازند.
همانطور که شرکتهای بزرگ جهان نسبت به نرمافزار آزاد توجه بیشتر و بیشتری پیدا کردهاند، برنامهنویسان با مسئله جدیدی از نوع ارائهدادن روبرو شدند. در اولین بار شنیدن عبارت "نرمافزار آزاد" بسیاری از مردم به اشتباه فکر کردند که تنها یک "نرمافزار صفر هزینه" است. درست که همه نرمافزارهای آزاد صفر هزینه هستند، [7] اما همه نرمافزارهای صفر هزینه به معنی "آزاد" نیستند. آزادی برای اشتراکگذاری و برای هر هدفی میباشد. برای مثال، در طول جنگ مرورگر در سال 1990، هردو شرکت ماکروسافت و نت اسکیپ بدور از پرداخت هزینه برای بدست آوردن سهم بازار به رقابت پرداختند. هیچیک از مرورگرها به عنوان "نرم افزار آزاد" حساب نمیشدند. شما نمیتوانید کد مبع آنها را بگیرید، و حتی اگر بتوانید، حق اصلاح و توزیع مجدد آن را ندارید [8] تنها کاری که میتوانید انجام دهید دانلود و اجرای آن است. مرورگرهایی که نسبت به نرمافزارهای shrink-wrapped آزاد نبودند از فروشگاه خریداری میشدند، انها صرفا قیمت پایینتری داشتند.
این سردرگمی بر واژه " آزاد/رایگان" (Free) کاملآ یک ابهام ناگوار در زبان انگلیسی است. بسیاری از زبانهای دیگر بین رایگان و آزادی تمایز قائل میشوند ( تمایز بین gratis یا مجانی و libre یا آزادی، برای یک صحبت کننده زبانهای لاتین واضح است) اما شرایط زبان انگلیسی به عنوان یک زبان پل غیررسمی اینترنت با مسئله هایی با زبان انگلیسی، برای هرکسی است. سو تفاهمات حول کلمه "آزاد" آنقدر شایع است که برنامهنویسان نرمافزار آزاد یک فرمول استاندارد را در پاسخ به سوتفاهمات استنتاج کردند : " این آزادی بهمعنی آزاد بودن است— فکر کنید آزادی بیان، نه آبجو مجانی". بااین حال، نیاز به توضیح آن بیش از پیش خستهکننده است. بسیاری از برنامه نویسان احساس میکنند که، با برخی توجیهات، کلمه مبهم "آزاد" مانع درک عموم از این نرمافزار شدند.
اما مسئله بسیار پیچیدهتر از آن شد. کلمه "آزاد" به مفهوم اخلاقی اجتنابناپذیر به اجرا درآمد: اگر آزادی به خودی خود یک هدف بود، مهم نبود که رخداد نرمافزار آزاد برای بهبود اوضاع است یا نه، یا برای سود بیشتر برای تجارت خاص در شرایط خاص است یا نه. اینها تاثیرات جانبی لذتبخش انگیزه بودند که، ریشه آن، نه فنی و نه تجاری و بازرگانی بود، اما اخلاقی بود. علاوه براین، موقعیت "آزادی به معنای آزادی" باعث تناقض آشکار در همکاری کسانی میشود که میخواهند از نرمافزارهایآزاد خاص در جنبهای از تجارتی که انجام میدهند، پشتیبانی کنند؛ اما همچنان مشغول بازاریابی نرمافزار اختصاصی به دیگران هستند.
معاضلات وارد شده به جامعه در حالحاضر برای یک بحرانهویت آمادهشدهاست. برنامهنویسانی که عملآ نرمافزارآزاد می نویسند هرگز تنها یک ذهنیت درمورد کلیت هدف نداشتند، در صورت وجود یک ذهنیت، جنبش نرمافزار آزاد است. حتی گفتن آنکه بررسیهایی که از یک سو به دیگر سو اجرا میشوند، گمراهکننده است، که درآن به اشتباه به یک محدوده خطی که در آن جای پراکندگی چند بعدی وجود دارد، نشان داده میشود. بااین حال، اگر برای لحظهای از پیچیدگیها چشمپوشی کنیم، دو محدوده وسیع باورها میتواند متمایز باشد. یک گروه دیدگاه استالمن را درنظر گرفتهاند، که آن آزادی برای اشتراکگذاری و اصلاح مهمترین چیز است، و بنابراین اگر صحبت دررابطه با آن را متوقف کنید، شما مسئله اصلی را ترک کردید. دیگران احساس میکنند که خود نرمافزار مهمترین آرگومان در توجهات است، و راغب هستند که اعلام کنند نرمافزار اختصاصی ذاتآ بد است. یکسری، نه همه، برنامهنویسان نرمافزار رایگان معتقدند که نویسندگان ( یا کارمندان، در موارد کارهای پرداختی) باید دارای حقی برای کنترل شرایط توزیع باشند، و هیچ قضاوت اخلاقی برای ضمیمه شدن به شرایط خاص نیاز نیست. دیگران این را باور ندارند.
در یک مدت زمان طولانی، نیاز نبود که این تفاوتها به دقت تست و بیان شوند، اما موفقیت روبه رشد نرمافزار آزاد در جهان تجارت یک مسئله اجتناب ناپذیر است. در سال 1998، واژه متن باز به عنوان یک جایگزین برای کلمه "Free" و با همکاری برنامهنویسانی که نهایتآ طرح متنباز (OSI) [9] را تشکیل دادند، ساخته شد. OSI نه تنها احساس میکند که "نرمافزار آزاد" به طور بالقوه گمراهکننده است، بلکه کلمه "آزاد" یک نشانه از یک مشکل عمومی است: که انگیزش آن نیاز به برنامه فروش برای واردکردن آن به شرکتهای بزرگجهانی دارد، و بحث از اصول اخلاقی و منافع اجتماعی اشتراکگذاری هرگز به اتاق هیئت مدیره شرکتهای بزرگ راه نمییابد.
طرح متن باز یک برنامه بازاریابی برای نرمافزار آزاد است. این یک راهیابی برای "نرمافزار آزاد" به زمینه عملگرایانه کلی نسبت به ایدئولوژیک tub – thumping است. اهداف برنده تغییر نمیکنند، دارای نگرش از دسترفته و نمادگرایی هستند...
موردی که نیازمند متخصصین و اهل فن است حول مفهوم متن باز نیست، بلکه درمورد نام آن است. در صورتی که نام قدیمی برای آن، نرمافزار آزاد است، چرا به این نام میخوانیماش؟
یک دلیل مستقیم این است که عبارت "نرمافزار آزاد" به راحتی طوری اشتباه فهمیده می شود که منجر به سوء تفاهم میشود....
Bاما دلیل واقعی برای دوباره نامگذاری آن بازاریابی است. برای راه یافتن این مفهوم به شرکتهای بزرگ کنونی تلاش میکنیم. یک نتیجه برنده داریم، اما موقعیت ما، در گذشته، وحشتناک است. عبارت "نرمافزار آزاد" توسط افراد تجاری، کسانی که اشتراکگذاری را ضد تجارت، و یا بدتر از آن ، سرقت میدانند، به اشتباه برداشت شده است..
شرکتهای جریان اصلی CEO و CTO هیچگاه "نرمافزار آزاد" را خریداری نمیکنند. اما اگر ما همان سنت، همان مردم، و همان مجوزهای نرمافزار آزاد را در نظر بگیریم و و نام آن را به "متن باز" تغییر دهیم ، آنها آن را خواهند خرید.
یکسری از هکرها به سختی این را باور میکنند، اما به این دلیل که آنها متخصصین اهل فن هستند که به اصل و واقعیت آن فکر میکنند و نمی فهمند این تصویر چقدر مهم است که وقتی چیزی را می فروشید.
دربازاریابی، حضور واقعیت است. ظاهری که ما را مایل به صعود به ورای موانع میکند و کار با شرکتهای بزرگ جهان به عنوان یک واقعیت از رفتار، اعتقاد، و نرمافزارهای ما به شمار میآید.
(از http://opensource.feratech.com/advocacy/faq.php و http://opensource.feratech.com/advocacy/case_for_hackers.php#marketing)
نشانههای بسیاری از مجادلات در آن متن قابل رویت است. آن به "اعتقادات ما" اشاره دارد، اما به طور هوشمندانهای از هجی کردن آنچه که دقیقآ ما به آن اعتقاد داریم اجتناب میکند. برای یکسری، ممکن است اعتقاد داشته باشند که کد گسترش یافته برطبق یک فرآیند باز ممکن است کد بهتری باشد، برای دیگران، ممکن است معتقد باشند که همه اطلاعات باید به اشتراک گذاشته شوند. استفاده از کلمه "سرقت" برای اشاره به کپی غیرقانونی وجود دارد- استفاده از این شی برای بسیاری، در زمینهای از آن سرقت محسوب نمیشود، اگر فرآیند اصلی هنوز قلم دوم از اقلام آن باشد. اشاره به اینکه جنبش نرمافزار آزاد ممکن است اشتباهآ متهم به ضد تجارتی بودن شود، وسوسه انگیز است؛ اما در اینجا از پاسخ به این سوال که آیا چنین اتهامی واقعیت دارد یا نه پرداخته نشده است.
تا به حال گفتهنشدهاست که وب سایت OSI همخوانی ندارد و یا گمراهکننده است. فروش خوب، در جایی که "خوب" به معنی " دوام در دنیای کسب و کار " است، یک مثال دقیق از آنچه که OSI ادعا میکند از جنبش نرمافزار آزاد گم شدهاست،میباشد. طرح متنباز به بسیاری از مردم آنچه که درپی آن بودند را میدهد- واژگان برای صحبت درمورد نرمافزار آزاد به عنوان یک روش گسترش و استراتژی تجاری، به جای عنوان نهضت اخلاقی است.
ظاهر طرح متنباز چشمانداز نرمافزار آزاد را هم تغییر دادهاست. این یک دوگانگی که به مدت طولانی بینام بوده است را رسمیت داده است، و در انجام این کار جنبش را مجبور به تایید سیاستهای داخلی و خارجی کرده است. اثر آن در امروز این است که هردو طرف مشغول پیدا کردن زمینههای مشترک هستند، از آنجایی که اغلب پروژهها شامل برنامهنویسانی از دو کمپ هستند، شرکتکنندگانی که برای هررده مشخصشدهاند متناسب نیستند. این به این معنی نیست که افراد هیچ گاه درمورد انگیزههای اخلاقی صحبت نمیکنند، که برای مثال گاهیاوقات لغزش در رسوم " اخلاق هکرها" خواندهمیشود. اما این برای توسعهدهندگان نرمافزار آزاد / متن باز برای سوالات باز جنبش اصلی دیگر پروژهها نادر است. همکاری برگ برنده همکاران است. اگر افرادی کد خوب بنویسند، به دلایل اخلاقی، یا به دلیلی که کارفرما گفتهاست، یا بدلیل اینکه آنها در حال ایجاد کردن رزومه خود هستند، یا دلایل دیگر شما از انها درمورد چگونگی نوشتن کد سوال نمیپرسید. شما همکاری را در زمینههای فنی ارزیابی میکنید، و به زمینههای فنی پاسخ میدهید. حتی سازمانهای سیاسی واضح مانند پروژه Debian ، هدف آنها ارائه 100% آزاد ( که به آن ، آزاد به معنی آزادی گفته میشود) محیط محاسباتی است، و محیط یکپارچهسازی کدهای غیرآزاد و همکاری با برنامهنویسانی که هدفهای مشابه را به اشتراک نمیگذارند نسبتآ آرام است.
[2] SourceForge.net, one popular hosting site, had 79,225 projects registered as of mid-April 2004. This is nowhere near the total number of free software projects on the Internet, of course; it's just the number that chose to use SourceForge.
[3] Stallman uses the word "hacker" in the sense of "someone who loves to program and enjoys being clever about it," not the relatively new meaning of "someone who breaks into computers."
[4] It stands for "GNU's Not Unix", and the "GNU" in that expansion stands for...the same thing.
[5] Technically, Linux was not the first. A free operating system for IBM-compatible computers, called 386BSD, had come out shortly before Linux. However, it was a lot harder to get 386BSD up and running. Linux made such a splash not only because it was free, but because it actually had a high chance of booting your computer when you installed it.
[6] They prefer it to be called the "X Window System", but in practice, people usually call it "X Windows", because three words is just too cumbersome.
[7] One may charge a fee for giving out copies of free software, but since one cannot stop the recipients from offering it at no charge afterwards, the price is effectively driven to zero immediately.
[8] The source code to Netscape Navigator was eventually released under an open source license, in 1998, and became the foundation for the Mozilla web browser. See http://www.mozilla.org/.
[9] آدرس وب OSI هست : http://www.opensource.org/.