انقلاب در سیستم عامل، داستان ظهور گنو/لینوکس
در این مقاله سعی میکنیم به زبانی ساده، مروری بر شکل گیری گنو/لینوکس و انقلابی که در دنیای سیستمعاملها به راه انداخت، داشته باشیم. با زومیت همراه باشید تا در کنار پاسخ به پرسشهای مطرح شده با فلسفهی ارزشمند گنو که توسط استالمن ارائه شد نیز آشنا شویم.
گنو/لینوکس چیست؟
گنو/لینوکس سیستم عاملی است که توسط هزاران برنامهنویس از اقصی نقاط دنیا توسعه داده میشود، گنو/لینوکس اغلب به دلیل هستهی خود یعنی لینوکس به شهرت رسیده است. این سیستمعامل از سالها قبل به عنوان تهدیدی برای ویندوز مایکروسافت مطرح شد و با توجه به امکانات خاصی که در اختیار کاربران قرار میداد، توانست در برخی از زمینهها سیستم عامل ویندوز مایکروسافت را بهطور کامل از گردانه رقابت خارج کند.
گنو/لینوکس به دلیل سرعت، امنیت، رایگان بودن و از همه مهمتر متن-باز و آزاد بودن به سرعت مورد توجه کاربران مختلف قرار گرفت. برای اینکه بدانید گنو/لینوکس چیست، ابتدا باید بدانید که سیستم عامل چیست، سیستم عامل در واقع نرمافزاری است که ارتباط بین سخت افزار و کاربر را برقرار میکند. در واقع بسیاری از کاربران حتی ارتباط زیادی با خود سیستم عاملها ندارند و بیشتر استفاده آنها با نرم افزارهایی است که روی سیستم عامل اجرا میشوند.
پس سیستم عامل بستری را فراهم میکند تا برنامهها بهراحتی اجرا شوند و سرویسها مورد نظر خود را به کاربران ارائه کنند. لینوکس سیستمعاملی است که قادر است روی پردازندههای مختلف مبتنی بر معماری ARM یا x86 اجرا شود. این بدین معنا است که هستهی لینوکس بعنوان زیرساخت سیستمعامل (اندروید، گنو/لینوکس و...) میتواند نهتنها روی کامپیوترهای مختلف اجرا شود بلکه امکان نصب و استفاده از آن روی انواع مختلف ابزارهای الکترونیکی از ساعت هوشمند گرفته تا تلفن، تبلت، دستگاههای غول پیکر صنعتی و... وجود دارد. در حقیقت «لینوکس» کرنل یا هستهای است که سیستمعاملهای مختلفی نظیر گنو/لینوکس و اندروید را نیرو میبخشد. در هر حال برای سادگی بیشتر، معمولا در بسیاری از مجامع از گنو/لینوکس نیز با همان نام «لینوکس» یاد میشود.
اما لینوکس چطور شکل گرفت؟
یونیکس توسط ۲ مهندس شرکت AT&T با نامهای کن تامپسون و دنیس ریتچی تولید شد و در سال ۱۹۷۰ منتشر گردید. یونیکس در آغاز به زبان اسمبلی نوشته شد اما در سال ۱۹۷۳ بهطور کلی به زبان سی بازنوشته شد. کمی بعد آنها زبان برنامه نویسی C را نیز به آن اضافه کردند و به دلیل انطباقپذیری بسیار بالای آن به سرعت بین مراکز آموزشی و تجارتهای مختلف توزیع شد و مورد استفاده قرار گرفت. AT&T کمی بعد گواهی خاصی را برای استفاده از سیستم عامل یونیکس تعریف کرد که شرکتها برای استفاده از آن مجبور به رعایت آن و پرداخت هزینه میشدند؛ از طرفی کد سیستم عامل یونیکس نیز در اختیار دیگران قرار نمیگرفت. ماجرا از همینجا شروع شد و شخصی به نام ریچارد استالمن، دانشجوی دکترای آن زمان در دانشگاه MIT با تفکر و فلسفه خاص خود از این اقدام AT&T خوشش نیامد و گروهی به نام GNU (بخوانید «گنو») را با هدف ساخت سیستم عامل آزاد شبیه به یونیکس تشکیل داد.
استالمن در سال ۱۹۷۱ وارد آزمایشگاه هوش مصنوعی MIT میشود. او این آزمایشگاه را اجتماع شکوفای هکرها مینامد، افرادی که عاشق برنامه نویسی بودند و علاقه شدیدی به کشف روشهای جدید برای کار با کامپیوتر داشتند. آنها یک سیستم عامل کامل به نام گنو را درست کرده بودند، که تمام آن در همان آزمایشگاه نوشته بود. استالمن عضو همان تیم شد تا به ارتقای سیستم عامل کمک کرده و قابلیتهای تازهای را به آن اضافه کند. آزمایشگاه MIT و آن تیم دقیقا همان جایی بود که استالمن عاشق کار کردن در آن بود. آنها عنوان سیستم عامل خود را Incompatible Timesharing System یا سیستم اشتراک زمانی ناسازگار نامیدند.
اولین مشکلی که در آزمایشگاه MIT برای آنها به وجود آمد فشارهای خارجی برای استفاده از کلمه رمز عبور در دانشگاه بود. در آن زمان روی هیچ کدام از کامپیوترهای گروه رمز عبور وجود نداشت. استالمن میگوید که همگی آنها هکرهای برجستهای بودند که اعتقاد داشتند، رمز عبور (منظور حساب کاربری) راهی است که مدیران برای کنترل کاربران استفاده میکنند. به همین دلیل آنها دوست نداشتند تا وارد این بازی شوند و توسط ادمینها تحت کنترل قرار گیرند. فلسفه آنها این بود که اگر کسی پشت هر کامپیوتری بنشیند باید بتواند هر کاری که دلش میخواهد را انجام بدهد و کسی که امروز پشت کامپیوتر نشسته نباید بتواند آمار کارهایی که شخص قبلی دیروز روی کامپیوتر انجام داده را کنترل کند.
وقتی مدیران شبکه روی یکی از کامپیوترهای MIT رمز عبور گذاشتند، استالمن و دوستانش از این موضوع اصلا خوششان نیامد و تصمیم گرفتند تا همه چیز را هک کنند. اینجا بود که آنها توانستند رمزگذاری پایگاه داده محل ذخیره رمزهای عبور را هک کنند. سپس آنها به تمام افرادی که در کامپیوترهای خود رمز عبور وارد میکردند چنین پیغامی را ارسال کردند: «میبینم که شما فلان رمز عبور را انتخاب کردهاید! نظرتون چیه اگر به جای وارد کردن رمز عبور فقط Enter را فشار دهید؟ این کار هم سادهتره و هم آسانتر!» در واقع استالمن و دوستانش تنها میخواستند تلویحا به این موضوع اشاره کنند که امنیت سیستمی که ادمینهای MIT پیاده کردند در حد شوخی است. استالمن با این روش توانست یک پنجم کاربران آزمایشگاه را به گروه خود ملحق کند و همه آنها به جای رمز عبور فقط از کلید Enter استفاده میکردند.
در اواخر دهه ۷۰و اوایل دهه ۸۰ میلادی با افزایش تعداد کاربران کامپیوتر و استفاده آن در مکانهای مختلف، تولیدکنندگان نرمافزار نیز تصمیم گرفتند تا نرمافزارهای خود را بصورت بسته ارائه کنند و اجازه مشاهده کد محصولات خود را به دیگران ندهند. دیگر نمیشد روی نرمافزار تغییرات دلخواه را اعمال کرد. مایکروسافت در این زمینه از همه شرکتها هم بزرگتر بود و هم بیشتر دست به این کار میزد.
در اوایل دههی ۸۰ سیستم عاملها خصوصی شدند و کاربر در زمان خرید متعهد میشدند تا سیستم عامل خریداری شده را در اختیار دیگران قرار ندهد. استالمن این موضوع را مانع پیشرفت میدانست و بهطور کامل با قوانین حقوق معنوی به آن شکل مخالف بود و آنها را مانع پیشرفت و مشارکت در امور میدانست. اینجا بود که استالمن بنیاد نرمافزارهای آزاد (Free Software Foundation) را شکل داد که یکی از اهداف آن ساخت یک سیستم عامل جدید بود. تفکر اون به این شکل بود که سیستم عاملی بسازد که بصورت آزاد در اختیار دیگران قرار بگیرد و افرادی که از آن استفاده میکنند را تشویق کند تا آن را در اختیار اطرافیان خود قرار دهند. به این ترتیب کاربران میتوانستند از سیستم عاملی استفاده کنند که آزاد است و توزیع آن به دیگران نیز آزادانه انجام میشود و در عین حال سطوح دیگری از آزادی را نیز بر این بستر فراهم میکرد.
پروژه در ژانویه ۱۹۸۴ کلید میخورد، درست همان زمانی استالمن از شغل خود در دانشگاه MIT استعفا میدهد و مقطع دکترا را رها میکند. او در همین زمان پروژه GNU (بخوانید گنو) را تعریف میکند. استالمن حتی نام گنو را نیز نوعی هک یا نام برگشتی میداند. GNU مخفف GNU's Not Unix است به معنی: گنو یونیکس نیست! در واقع حرف G در این نامگذاری، خود GNU است که به شکل نامتعارفی استفاده شده است. هدف استالمن آن بود که سیستم عاملی را درست کند که شبیه به یونیکس باشد، اما خود یونیکس نباشد!
برخی بر این باورند که GNU یا بعدها گنو/لینوکس در واقع برپایه یونیکس ساخته شده و هسته آن یونیکس است. اما این موضوع به هیچ وجه درست نیست و تیم GNU از صفر یک سیستم عامل را نوشتهاند. در واقع آنها اصلا به کدهای یونیکس دسترسی نداشتهاند. آنها بدنبال ساخت یک سیستم عامل شبیه به یونیکس ولی کاملا آزاد بودهاند. در آن زمان یونیکس یک محصول خصوصی بود و اجازه استفاده از آن به صورت اشتراکی وجود نداشت، یعنی اگر آن را میخریدید اجازه اشتراک گذاشتن سیستم عامل با دیگران را نداشتید.
درست زمانی که استالمن در حال ساخت سیستم عامل گنو بود، دانشمندان دانشگاه کالیفرنیا در برکلی در حال ساخت یک سیستم عامل آزاد دیگر با نام Unix Berkely یا BSD بودند. این سیستم عامل بر خلاف گنو بر پایه هستهی یونیکس شرکت AT&T در حال توسعه بود. اما کمی بعد AT&T از دانشگاه برکلی شکایت کرد و آنها برای ادامه کار BSD به مشکل بر خوردند. همینجا بود که گروهی از تیم توسعهدهنده BSD نسبت به ساخت سیستم عامل جدید و مستقل از یونیکس با نام Free BSD اقدام کردند که البته شبیه به یونیکس بود و حتی قادر به اجرای اپلیکیشنهای یونیکس نیز بود.
جالب اینجا است که دانشگاه برکلی در این زمان نمیدانست که گروه گنو نیز در حال توسعه و ساخت سیستم عامل مشابهی است. FreeBSD بصورت کاملا آزاد است و هر کسی میتواند از آن در نرمافزار خود استفاده کند. این سیستم توسط اپل در سیستم عامل OS X و iOS و بسیاری از کمپانیهای دیگر مانند سیسکو، VMWare و غیره مورد استفاده قرار گرفته است، اما چرا اسم BSD کمتر به گوش میخورد و در عوض لینوکس را تقریبا همه میشناسند یا حداقل نام آن را شنیدهاند؟ این در حالی است که سیستمعاملهای اپل و شرکتهای نامبرده شده که بر پایهی BSD ساختهاند بسیار معروف و مشهور هستند. پاسخ در فلسفهی عمیق استالمن نهفته است. (لیست کامل توزیعهای FreeBSD)
یونیکس علاوه بر هسته اصلی، شامل چند برنامه مجزا بود که با یکدیگر به خوبی ارتباط داشتند. به این ترتیب تیم گنو نیز به دو دسته تقسیم شد: یک دسته روی هسته اصلی سیستم عامل کار کردند و گروه دیگر نیز تک تک برنامههای موجود در یونیکس را برای این سیستمعامل طراحی و از نو تولید کردند. این کار تا سال ۱۹۹۱ طول کشید و در آن زمان تقریبا تمام برنامههای موجود برای یونیکس در گنو نیز ساخته شدند.
برای اینکه یک سیستم عامل به خوبی کار کند، ما نیاز به یک هسته (Kernel) اصلی داریم که ارتباط بین سخت افزار و نرمافزارها را برقرار میکند، سپس یک کامپایلر زبان C نیز برای اجرای کدها، نیاز است تا بستری فراهم شود که دیگران نیز نرمافزارهای جدیدی برای سیستم عامل تولید کنند و در نهایت به یک مجموعه از نرمافزارهای حیاتی مانند دیباگر، ویراشگر متن، کلاینت ایمیل و غیره نیاز است تا نیازهای کاربران را پاسخ گو باشد. تمام این برنامهها توسط گروه گنو به بهترین شکل ممکن طراحی و تولید شدند.
از آنجایی که تمام نرمافزارهای نوشته شده در پروژه گنو بصورت آزاد و متن-باز (متنباز بودن از شرایط آزاد بودن است اما برعکس این مدعا صادق نیست و نرمافزارهای متن باز میتوانند آزاد نباشند) ارائه میشدند، حتی افرادی که از سیستم عامل گنو استفاده نمیکردند باز هم نرمافزارهای گنو را روی دستگاه خود نصب میکردند؛ چون این نرمافزارها نهتنها بسیار خوب طراحی و نوشته شده بودند بلکه کاملا آزاد بودند و هر کسی میتوانست هر نوع تغییری را که بخواهد روی آنها اعمال کند.
ولی بخشی از گروه گنو که روی هسته سیستم عامل کار میکردند روش پیچیدهای را (میکروکرنل) برای تولید سیستم عامل در نظر گرفتند که در نهایت پروژه آنها انقدر خوب پیشرفت نکرد و نتوانست مورد قبول توسعهدهندگان قرار گیرد. این روش توسعه که تصور میشد آیندهی سیستمعاملها باشد چنان توسعهی دشواری داشت که هنوز هم به نتیجهی نهایی نرسیده است.
در همین حول و حوش شخص دیگری با نام لینوس توروالدس از هلسینکی، پایتخت فلاند، بصورت مستقل و از همه مهمتر به تنهایی در حال توسعه یک هسته سیستم عامل بود که بعدها لینوکس نامیده شد. جالب است بدانید که او کد سیستم عامل را با کامپایلر C گروه گنو و در سیستم عامل MINIX توسعه داده بود. او هسته سیستم عامل خود را ترکیبی از نام خود بعلاوه x از یونیکس انتخاب کرد و LINUX نامید. او در کتاب خود با نام Just for Fun نوشته است که ناگهان متوجه شدم که هسته یک سیستم عامل را نوشتهام:
درود به هر کس که آن بیرون از مینیکس استفاده میکند. من هماکنون روی سیستمعاملی (رایگان) برای رایانههای (AT ۳۸۶(۴۸۶ کار میکنم (فقط برای سرگرمی؛ مانند پروژهٔ گنو بزرگ و حرفهای نیست). از ماه آوریل کار را آغاز کردهام و هماکنون این سیستمعامل آمادهاست و کار میکند. دوست دارم از دیدگاه دیگران در مورد سیستمعاملم با خبر شوم. چه آنان که مینیکس را دوست دارند و چه آنان که دوست ندارند. چرا که سیستمعامل من تا حدی شبیه به مینیکس است. در حال حاضر (۱٫۰۸)bash و(۱٫۴۰) gcc را روی آن دارم و چیزهای دیگری که به نظر میرسد همه درست کار میکنند. این بدان معنا است که طی چند ماه آینده چیز بهدردبخوری فراهم خواهم کرد و دوست دارم بدانم مردم بیشتر چه امکاناتی لازم دارند. به هر پیشنهاد و نظری خوشآمد میگویم اما قول نمیدهم که آن را انجام دهم!
لینوس توروالدس ابتدا سیستم عامل خود را براساس گواهی اختصاصی خود عرضه کرد که طی آن امکان استفاده از لینوکس در هیچ فعالیت تجاری داده نمیشد. اما توروالدس میدانست که سیستم عاملِ خالی، به درد کمتر کسی میخورد و از این رو بستههای نرمافزاری گروه گنو که دارای گواهی GPL بودند را به آن اضافه کرد و در قالب یک سیستم عامل عرضه کرد. او در سال ۱۹۹۲ تصمیم گرفت که خود هسته سیستم عامل را نیز براساس گواهی GPL عرضه کند. نامهای مختلفی برای محصول نهایی ترکیبی گنو + لینوکس در نظر گرفته شده است که در ویکیپدیا میتوانید شرح آن را بخوانید، اما در نهایت نام انتخابی برای این مجموعهی ارزشمند «گنو/لینوکس» بود.
توروالدس همواره به عنوان یکی از نخبههای دنیای کامپیوتر شناخته میشود، چرا که او به تنهایی هستهی سیستم عاملی را نوشته و پشتیبانی میکند که کمتر گروه بزرگی از برنامهنویسان قادر به تولید آن هستند. حتی برخی از کمپانیهایی که از میانه راه تصمیم به توسعه مستقل لینوکس گرفتند کمی بعد متوجه شدند که نمیتوانند به خوبی توروالدس این کار را انجام دهند و تا به امروز خود لینوس است که بهترین بروز رسانی و ارتقاء هسته لینوکس را انجام داده است. اما مهمترین دلیل موفقیت و محبوبیت و بقای لینوکس، گواهی GPL و فلسفهای است که استالمن آن را بنا نهاد، پس بهتر است به تعریف GPL بپردازیم:
GPL چیست و چگونه باعث بقای گنو/لینوکس شد
استالمن برای اینکه آزاد بودن نرمافزارهای نوشته شده توسط گروه GNU را حفظ کند، یک اقدام حیاتی و بسیار مهم را انجام داد که به نوعی باعث دوام و قوت بخشیدن به این پروژه شد. اقدامی که دنیای نرمافزارهای آزاد و لینوکس را تحت شعاع خود قرار داد. اگر بخواهیم تعریف سادهای برای GPL داشته باشیم میتوانیم آن را اینگونه بیان کنیم: نرمافزاری که تحت گواهی GPL منتشر میشود باید شرایط زیر را داشته باشد:
- آزادی برای اجرای برنامه برای هر منظوری (آزادی ۰)
- آزادی برای مطالعه و بررسی چگونگی عملکرد برنامه و تغییر آن برای نیاز خود (آزادی ۱). دسترسی به کد منبع یک پیششرط برای این آزادی است.
- آزادی برای توزیع مجدد کپیهایی از آن، بنابراین شما میتوانید به همسایگان خود کمک کنید (آزادی ۲)
- آزادی برای بهبود برنامه و انتشار این تغییرات برای عموم (تحت همان مجوز GPL)، بنابراین تمام جامعه از آن بهره میبرند (آزادی ۳). دسترسی به کد منبع یک پیششرط برای این آزادی است.
آزاد بودن به معنی مجانی بودن نیست یعنی امکان این وجود دارد که نرمافزار آزاد باشد اما بابت خرید آن یا سرویس ارائه شده برای آن، مبلغی دریافت شود. اما با این حال باز هم کد نرمافزار باید بصورت کاملا باز در اختیار مشتری قرار گیرد. بر اساس آزادی سه، هر شخصی میتواند کُد نرمافزار تحت گواهی GPL را تغییر داده و حتی با نام جدیدی منتشر کند. اما نرمافزار جدید نیز باید حتما تحت گواهی GPL منتشر شود. یعنی دیگران نیز میتوانند متن برنامهی جدید را تغییر داده و با نام خود منتشر کنند.
قانون آزادی سوم در گواهی GPL همان راز ماندگاری تمام پروژههای متن باز تحت این گواهی است و عدم وجود آن در FreeBSD راز پنهان شدن این سیستمعامل ارزشمند است. هستهی FreeBSD چیزی از لینوکس کم ندارد، اما به دلیل عدم وجود فلسفهی مشابهی GPL شرکتهای مختلف از جمله اپل، هستهی FreeBSD را برای تولید سیستمعاملهای Mac OS X و iOS مورد استفاده قرار داده و کمی آن را تغییر داده و با نامی جدید و در قالب محصولی نو، معرفی کردند و هیچ نامی از FreeBSD به میان نیاوردند. از همهی اینها بدتر آنکه، محصول ساختهشدهی بر پایهی FreeBSD در قالب یک نرمافزار بسته و انحصاری روانهی بازار میشوند؛ نرمافزاری که نهتنها دیگران به کد آن دسترسی ندارند بلکه اجازهی ویرایش و استفاده از آن برای مصارف دیگر را نیز ندارند. در گواهی GNU شما میتوانید کد شخص دیگری را تغییر دهید، اما حق ندارید نام توسعهدهندگان قبلی را مخفی کنید یا محصول را بدون فراهم آوردن آزادیها مجددا عرضه کنید.
با توجه به دیدگاه بنیاد نرمافزارهای آزاد (FSF)، هدف GPL دفاع از آزادیهای برنامهنویسان، توسعهدهندگان و کاربران است. نویسندگان پروانه بیش از اینکه به قطعیت استدلالشان در دادگاه فکر کنند در پی انتقال مفهوم مورد نظرشان به کاربران این گواهیاند. وقتی نرمافزاری با پروانه GPL منتشر میشود فضایی چند وجهی در اطراف آن شکل میگیرد . از یک طرف امکان بی پایان توزیع و ارتقاء آن پدید میآید، از طرف دیگر همواره نرمافزار خصوصیات نرمافزار آزاد را با تعریف FSF (بنیاد نرمافزارهای آزاد) حفظ خواهد کرد. علاوه بر این، روح حاکم بر GPL افراد را تشویق میکند تا بجای جستجو در کارهای غلط دیگران، کار خود را درست انجام دهند و در اختیار بقیه افراد جامعه بگذارند. تمام اینها و مهمتر از همه روح انسانی و اخلاق گرای پروانه GPL میتواند دلایل محبوبیتش درمیان برنامهنویسان باشد.
ریچارد استالمن به عنوان یک فیلسوف، یا به اعتقاد برخی پدر جنبش نرمافزارهای آزاد شناخته میشود. او همزمان با مدیریت فعالیتهای ساخت سیستم عامل گنو یک کار اساسی و فوقالعاده ارزشمند را انجام داد که شاید تمام پیشرفت و توسعه لینوکس و اغلب پروژههای متن باز را سبب شد. استالمن همزمان با ساخت سیستم عامل آزاد گنو، زیربنای قانونی، فلسفی و فناوری مرتبط با جنبش نرمافزارهای آزاد را نیز خلق کرد. اگر زیربنایی قانونی ایجاد شده توسط استالمن وجود نداشت، لینوکس و بهطور کامل آزاد و متنباز نیز جایگاه فعلی را نداشتند.
متن باز یا Open Source چیست؟
متن-باز یا اپن-سورس راهی است تا همه مردم بتوانند برای ساخت یک پروژه همکاری کنند و هرگز نگران مسائل و مشکلات حقوق معنوی آن پروژه نباشند. در حقیقت متن باز یک مدل توسعه است که توسط نرمافزارهای آزاد به کار گرفته میشود. کد کامل نرمافزارهای متن-باز در اختیار عموم قرار میگیرد تا از آن استفاده کنند یا در بهبود پروژه به دیگر افراد درگیر آن کمک کنند. نرمافزارهای آزاد بهطور قطع متنباز نیز هستند اما نرمافزارهای متنباز میتوانند آزاد نباشند.
افرادی که شاخهی متن-باز را بصورت مستقل از مفهوم آزاد در دنیای نرمافزار ایجاد کردند، تنها به کارایی نرمافزار فکر میکردند و تمایل نداشتند تا درگیر کش مکشهای قانونی خرید یا نقض قوانین کپی رایت شوند. این مسئله بدان دلیل بود که کارایی فوقالعادهی مدل توسعهی متن باز به اثبات رسیده بود اما درک فلسفهی آزادی استالمن دشوار مینمود. هدف آنها از شکل گیری متن-باز آن بود که همه مردم بتوانند آزادانه و بدون هیج محدودیتی از نرمافزار ساخته شده استفاده نمایند.
تعریف دیگری به نام Freeware در دنیای نرمافزار وجود دارد که بعضا با Free Software یا حتی Open Source اشتباه گرفته میشود. Freeware به نرمافزار مجانی گفته میشود که هیچکس جز تولید کنندهی آن حق ویرایش یا تغییر در نرمافزار را ندارد. هرچند نرمافزار مجانی است، اما نمیتوان در آن تغییری ایجاد کرد. اما در نرمافزار آزاد یا متن-بازی که تحت گواهی GPL باشد، شما نهتنها میتوانید در نرمافزار تغییر ایجاد کنید بلکه قادر خواهید بود تا بهطور کامل به کد آن دسترسی داشته و بدانید درون نرمافزار چه میگذرد.
توزیعهای لینوکس
از آنجایی که گنو/لینوکس برپایهی گواهی GPL عرضه شده است. هر شخص یا مجموعهای میتواند در این مجموعه تغییراتی ایجاد کرده و آن را در قالب یک محصول جدید اما مبتنی بر گواهی GPL عرضه کند. به این ترتیب صدها توزیع از لینوکس ایجاد شده که هر کدام توسط شخص یا گروه خاصی از افراد توسعه داده میشوند. تمام این توزیعها نیز آزاد و متنباز هستند و در توسعهی آنها افراد بسیاری مشارکت دارند. این توزیعها شامل تعدادی نرمافزار سیستم و برنامههای کاربردی به همراه روالی مشخص برای نصب آنها در رایانه هستند.
توزیعها معمولا برای منظورهای مختلفی از جمله محلیسازی، پشتیبانی از یک معماری خاص، کاربردهای بیدرنگ (real-time applications) و سامانههای توکار (embedded systems) به وجود میآیند. یک توزیع همه-منظوره معمولی شامل هستهی لینوکس، کتابخانهها و ابزارهای گنو، پوستههای خط فرمان، میزکار رابط گرافیکی و انبوه بیشماری از نرمافزارهای کاربردی از مجموعههای اداری و سیستم پنجرهای اِکس گرفته تا مفسرها، ویرایشگرهای متن و ابزارهای علمی است. از جمله بزرگترین توزیعهای لینوکس که خود مشتقات بسیاری دارند میتوان به Debian، RedHat، OpenSuse و Arch اشاره کرد. جالب است بدانید که اندروید، محبوبترین سیستمعامل موبایل دنیا نیز بر پایهی لینوکس (کرنل) ساخته شده است.
اگر مایل هستید با توزیعهای مختلف لینوکس آشنا شوید، این نمودار عریض و طویل را دریافت کنید یا این صفحه در ویکیپدیا را بازدید کنید.
حالا که همه چیز آزاد است توسعهدهندگان نرمافزارهای متن باز از کجا کسب درآمد میکنند؟
همیشه عدهای هستند که معتقدند تمام نرمافزارها باید ضمن متنباز و آزاد بودن، رایگان نیز باشند؛ اما این عده در اقلیت بوده و از نظر حقوقی و بر مبنای لایسنسهای عمومی نرمافزارهای آزاد و متنباز، هیچ منعی برای درآمدزا بودن برنامه تشریح نشده است. برخی پروژههای آزاد و متنباز در حد و اندازهای که قادر باشند به حیات خود ادامه دهند درآمد دارند و عدهای از این پروژهها نیز آنچنان برای مسئولان خود سودآور هستند که بهسادگی معادلهای انحصاری و روش کسب درآمد آنها را از گردونهی رقابت خارج میکنند. اما چطور؟ برای اطلاع از نحوهی کسب درآمد نرمافزارهای آزاد / متن باز به مقالهی مسعود آموزگار با عنوان «توسعهدهندگان نرمافزارهای آزاد / متنباز چگونه درآمد کسب میکنند؟» مراجعه کنید.
لینوکس و گسترش عجیب آن در همهجا
ردهت که یکی از توزیعهای گنو/لینوکس به شمار میرود از بیش ۳۰ میلیون خط کد تشکیل شده است. براساس یک تحقیق برآورد شده است که روی این توزیع نزدیک به ۸ هزار نفر-سال / کار گسترش انجام گرفته است. چنانکه این نرمافزار با روشهای متعارف خصوصی گسترش مییافت، هزینه گسترشاش در ایالات متحده با روشهای گسترش متعارف خصوصی بالغ بر ۱/۰۸ میلیارد دلار (با قیمت دلار سال ۲۰۰۰) میشد. بخش بزرگی از کد (۷۱٪) با زبان برنامهنویسی C نوشته شده است؛ اما از بسیاری از زبانهای دیگر همچون ++C، لیسپ، اسمبلی، پرل، فرترن، پایتون و زبانهای اسکریپتنویسی گوناگون استفاده شده است.
اندکی بیش از نیمی از خطوط کد، تحت مجوز عمومی گنو (جیپیاِل) هستند. هسته لینوکس ۲٫۴ میلیون خط کد دارد و ۸٪ کل کد ردهت را تشکیل میدهد.در پژوهشی جدید که روی توزیع گنو/لینوکس دبیان نسخه ۴٫۰ که در سال ۲۰۰۷ عرضه شده صورت گرفت، مشخص شد این توزیع دارای نزدیک به ۲۸۳ میلیون خط کد بوده که تخمین زده میشود هزینه گسترشاش با روشهای گسترش متعارف خصوصی بالغ بر ۸٫۰۷ میلیارد دلار (با قیمت دلار سال ۲۰۱۳) و زمان مورد نیاز حدود ۷۳٫۰۰۰ نفر-سال میشود.
اگر لینوکس نبود
بدلیل پایداری و انعطاف گنو/لینوکس، این سیستمعامل حضور پررنگی به عنوان سیستمعاملی برای کامپیوترهای سرور دارد. بر اساس آمار در سال ۲۰۰۸، از میان ۱۰ مورد از معتبرترین شرکتهای هاستینگ دنیا، ۵ شرکت سیستمعامل گنو/لینوکس را در سرورهای وب خود بکار میگیرند. توزیعهای لینوکس بهطور گستردهای به عنوان سیستم عامل در ابر رایانهها و دیتاسنترها استفاده میشود: از نوامبر سال ۲۰۱۰، از ۵۰۰ سیستم برتر، ۴۵۹ مورد (۹۱٫۸ ٪) تحت اجرای توزیعهای لینوکس هستند.
از لینوکس همچنین بیشتر در سیستمهای کارگذاشته استفاده میشود. رایگان، متن باز و آزاد بودن آن باعث میشود انتخابی ایدهآل برای ابزارهایی مانند سیمپیوتر، رایانهای که برای جمعیت کم درآمد کشورهای در حال گسترش طراحی شده، باشد. لینوکس با داشتن محیطهای رومیزی مانند گنوم و KDE، رابط کاربری همچون اپل مکینتاش و مایکروسافت ویندوز را در کنار دیگر محیطهای گرافیکی و رابط خط فرمان یونیکس-مانند سنتیاش، عرضه کرد تا کاربران معمولی نیز بتوانند از آن به عنوان جایگزین آزاد و رایگان ویندوز و OS X استفاده کنند. لینوکس به شکل خارقالعادهای طراحی شده است تا روی هر ابزاری از تلفن هوشمند گرفته تا سوپرکامپیوترها فارغ از نوع پردازندهی آن به خوبی کار کند.
اکثر کشسرورهای دنیا مانند SQUID روی لینوکس کار میکنند. تقریبا تمام DNS سرورهای دنیا روی لینوکس راهاندازی شدهاند که معروفترین آنها BIND است. حدود ۸۰ درصد از وبسرورهای دنیا روی وبسرورهایی تحت لینوکس کار میکنند، وبسرورهایی همچون Apache یا Nginix. اکثر وبسایتهای دنیا از دیتابیسهای مبتنی بر لینوکس مانند MySQL بهره میبرند. نرمافزارهای مدیریت دیتاسنترها نیز بر پایهی لینوکس کار میکنند. اگر لینوکس نبود هزینه سرویس دهی سرورهای زومیت به شما عزیزان تا ۳ برابر افزایش مییافت.
دلیل همه اینها، هزینهی بسیار پایین، سرویسهای پایدار و ایمن، نیاز به منابع بسیار کم سختافزاری، توسعه سریع توسط میلیونها برنامهنویس و از همه مهمتر پایداری، آزاد و متن باز بودن لینوکس است.