۲.۱ لینوکس: داستان یک موفقیت
در تابستان سال ۱۹۹۱ لینوس توروالدز ۲۱ ساله دانشجوی علوم کامپیوتر در دانشگاه فنی هلسینکی فنلاند بود. در آن زمان او یک کامپیوتر ۳۸۶ جدید داشت که میخواست با نوشتن یک تقلیدگر ترمینال روی آن، هم آن را آزمایش کند و هم خودش را به آن سرگرم کند که بدون هیچ سیستم عاملی روی سختافزار اجرا میشد و به او اجازه میداد وارد سیستم یونیکس دانشگاه شود. این برنامه تکامل پیدا کرد و به اولین کرنل سیستمعامل لینوکس تبدیل شد.
در آن زمان ۲۰ سال از عمر یونیکس میگذشت، اما سیستمعاملی بود که انتخاب اول دانشگاهها و مکانهایی بود که در آنها توسعه و پژوهش انجام میشد- «ایستگاههای کاری» علمی آن زمان تقریبا به طور انحصاری با نسخههای مختلف یونیکس کار میکردند. خود یونیکس (تقریبأ مانند لینوکس) به عنوان پروژهای که برای سرگرمی بود توسط کن تامپسون و دنیس ریچی در آزمایشگاههای بل، بازوی پژوهشی غول ارتباطات و مخابرات یعنی AT&T، شروع شد. این پروژه خیلی زود به یک سیستم کارآمد تبدیل شد و چون به طور عمده در یک زبان سطح بالا نوشته شده بود (C)، میتوانست به طور مناسبی به پلتفرمهای رایانشی دیگری غیر از PDP-۱۱ منتقل شود. به علاوه، در طول دههی ۱۹۷۰ AT&T به خاطر توافقنامهای مجبور به خودداری از فروش نرمافزار شده بود؛ بنابراین یونیکس به قیمت تمام شده و بدون پشتیبانی «بخشیده میشد»- و چون کوچک و ساده بود، موضوع مورد مطالعه در سمینارهای مربوط به سیستمعامل در اکثر دانشگاهها شد.
در اواخر دههی ۱۹۷۰ دانشجویان «دانشگاه کالیفرنیا در برکلی» یونیکس را به VAX، جانشین PDP-۱۱، منتقل کردند و بهبودهای متنوعی برای آن ارائه دادند که شروع به منتشر شدن با عنوان «BSD» کرد (مخفف «Berkeley Software Distribution»). مشتقات مختلف BSD هنوز هم رواج دارند. برای توسعهی اولین نسخههای لینوکس، لینوس از «Minix» بهره برد؛ یک سیستمعامل شبه لینوکس که برای مقاصد آموزشی توسط اندرو اس. تننباوم از دانشگاه «VU University Amsterdam» نوشته شده بود. Minix عمدا ساده نگه داشته شده بود و آزادانه در دسترس نبود، بنابراین یک سیستمعامل جدی محسوب نمیشد- نیاز به کمک به طور واضح احساس میشد!
در ۲۵ آگوست ۱۹۹۱، لینوس پروژهی خودش را به عموم اعلام کرد و کل دنیا را برای همکاری در آن دعوت کرد. در این زمان سیستم به عنوان کرنل جایگزین برای سیستمعامل Minix ایفای نقش میکرد.
در این زمان سیستم هنوز یک نام مناسب نداشت. لینوس خودش به آن "Freax" میگفت (ترکیبی از دو کلمهی "freak" ، به معنای چیز عجیب وغریب، و "Unix")؛ او برای مدت کوتاهی به "Linux" فکر میکرد اما آن را به دلیل این که فکر میکرد خودپرستانه است کنار گذاشت. زمانی که سیستم لینوس روی سرور FTP دانشگاه بارگذاری شد، همکار لینوس آری لمک، که نام "Freax" را دوست نداشت، خودسرانه نام آن را به "Linux" عوض کرد. لینوس بعدا با این تغییر موافقت کرد. لینوکس توجه زیادی به خود جلب کرد و داوطلبان زیادی تصمیم به همکاری در این پروژه گرفتند. Linux ۰.۹۹، اولین نسخهی تحت مجوز GPL (بخش ۲.۲.۳) ، در دسامبر سال ۱۹۹۲ عرضه شد و یک سیستمعامل کاملا بالغ را معرفی کرد که اگر ساده هم بود، کاملا کارایی یونیکس را داشت.
لینوکس ۲.۰ در اوایل سال ۱۹۹۶ عرضه شد و ویژگیهای جدیدی را از قبیل پشتیبانی از پردازندههای مرکب و توانایی بارگذاری ماژولهای کرنل در زمان اجرا ارائه داد- یک نوآوری در راستای مسیر عرضهی توزیعهای «دوستدار کاربر» لینوکس. ویژگی جدید دیگر در Linux ۲.۰ معرفی «تاکس» پنهون به عنوان نماد رسمی لینوکس بود. لینوس توروالدز توسط یک پنگوئن در استرالیا مورد حمله واقع شده بود که این مساله باعث شده بود بسیار تحت تاثیر قرار بگیرد. نماد پنگوئن نشسته با پاها و منقار زرد توسط لری اونیگ کشیده شد و به طور گسترده در اختیار جامعه قرار گرفت.
شکل۲.۱: تکامل لینوکس، که به وسیله سایز فایلهای Linux-*tar.bz2 لینوکس اندازهگیری می شود. هر علامت متناظر با یک نسخه از لینوکس است. در طول ۱۵ سال از لینوکس ۲.۰ تا ۳.۲ اندازه کد منبع فشرده لینوکس تقریباً ۱۶ برابر افزایش یافته است.
لینوکس ۲.۶ دستخوش سازماندهی مجدد فرایند توسعه شد. در حالی که پیش از آن شماره نسخههای با یک مؤلفه دوم فرد (مثل ۲.۳) به عنوان نسخههای توسعه دهندگان در نظر گرفته شده بود، و نسخههای با مؤلفه دوم زوج (مثل۲.۰) نسخههای پایدارمناسب برای کاربران نهایی، توسعه دهندگان تصمیم گرفتند که ازهمگسیختگی نسخههای توسعه دهندگان و نسخههای پایدار که قبلاً در حد زیادی دیده میشد را از بین ببرند. از لینوکس ۲.۶ به بعد، یک مسیر جداگانه از هستههای درحال توسعه وجود ندارد اما بهبودها در نسخههای بعدی معرفی میشوند و به طور گسترده آزمایش میگردند قبل از این که نسخه به طور رسمی منتشر شود.
این کار تقریباً به شرح زیر است: بعد از اینکه لینوکس ۲.۶.۳۷ منتشر شد، لینوس تغییرات پیشنهاد شده را جمعآوری میکند و برای هسته لینوکس بعدی بهبود میبخشد، آنها را به نسخه رسمی خود اضافه میکند و با عنوان لینوکس ۲.۶.۳۸-rc۱ منتشر مینماید ( به عنوان اولین کاندیدای انتشار) این نسخه توسط افراد مختلف تست میشود و هر تغییر یا اصلاحی در لینوکس ۲.۶.۳۸-rc۲ جمعآوری میشود. در نهایت کدی که به اندازه کافی پایدار به نظر میرسد به طور رسمی با عنوان لینوکس ۲.۶.۳۸ منتشر میشود و این روند پس از آن با نسخه ۲.۶.۳۹ تکرار میشود.
علاوه بر نسخه رسمی لینوس، نسخههایی از لینوکس وجود دارد که به وسیله توسعهدهندگان دیگر مدیریت میشود.به عنوان مثال نسخهای با عنوان "staging tree" که در آن درایورهای جدید میتوانند (پس از چند دور پیشرفت) تکامل پیدا کنند تا زمانی که آنها برای ارائه به لینوس به منظور اضافه کردن آنها به نسخهی جدیدش به اندازه کافی خوب به نظر برسند. هنگامی که نسخههای جدید هستههای لینوکس منتشر میشوند، بسیاری از آنها برای مدت زمان معینی اصلاحات را دریافت میکنند، بنابراین ممکن است نسخههایی مثل ۲.۶.۳۸.۱ و ۲.۶.۳۸.۲ وجود داشته باشند.
در جولای ۲۰۱۱ لینوس به طور مختصر نسخهی ۲.۶.۴۰ که در حال آماده سازی بود را به عنوان "Linux ۳.۰" معرفی کرد. این کار عمدا برای راحتی در شمارهگذاری بود، چون بهبود قابل توجهی انجام نشده بود.
امروزه نسخههایی که کاندید انتشار اند به شکل ۳.۲-rc۱ نامگذاری میشوند و نسخههای بهینه سازی شده ۳.۱.۱ و ۳.۱.۲ و ... نامیده میشوند.
امروزه پروژهی «لینوکس» به هیچ وجه پایان نیافته است. لینوکس دائما در حال توسعه و بهبود یافتن توسط صدها برنامه نویس در سرتاسر دنیاست، که به میلیونها کاربر خصوصی و تجاری رضایتمند خدمت رسانی میکنند. همچنین نمیتوان گفت که این سیستم «تنها» توسط دانشجویان و مبتدیان دیگر توسعه داده میشود- بسیاری از کسانی که روی کرنل لینوکس کار میکنند جایگاه مهمی در صنعت کامپیوتر دارند و جزء مشهورترین توسعه دهندگان حرفهای به حساب میآیند. با کمی مقایسه میتوان ادعا کرد که لینوکس سیستمعاملی است که تطبیقپذیرترین پشتیبانی سختافزاری را دارد؛ نه تنها با قضاوت بر اساس تنوع پلتفورمهایی که روی آنها اجرا میشود (شامل گوشیهای هوشمند و مینفرمهای غولپیکر) ، بلکه بر اساس در دسترس بودن درایورهای سختافزاری، برای مثال پلتفورم کامپیوتر اینتل، نیز میتوان به این نتیجه نائل شد. لینوکس همچنین به عنوان ابزاری به منظور پژوهش و توسعه برای ایدههای جدید در مبحث سیستمعامل در صنعت و محیطهای دانشگاهی به کار گرفته میشود؛ بدون شک این سیستمعامل یکی از مبتکرانه ترین سیستمعاملهای موجود است.
تطبیقپذیری لینوکس همچنین آن را به سیستمعامل منتخب برای کاربردهایی از قبیل مجازی سازی و "رایانش ابری" تبدیل کرده است. مجازی سازی این امکان را فراهم میکند که روی یک سیستم واقعی ("فیزیکی")، چندین کامپیوتر "مجازی" را شبیهسازی کنیم که هر کدام از سیستمعاملهای خود استفاده میکنند و به زعم برنامههایی که روی آنها اجرا میشوند کامپیوترهای واقعی میباشند. این منجر به استفادهی کارآمدتر از منابع و انعطافپذیری بیشتر میشود: زیرساختهای معمول مجازیسازی امکان "انتقال" سریع ماشینهای مجازی از یک ماشین فیزیکی به دیگری را فراهم میکنند، و این به شما به عنوان متصدی چنین زیرساختی اجازه میدهد که در شرایط پر فشار و بد عمل کردن سیستمها بسیار مناسبتر از خود عکسالعمل نشان دهید. بر این اساس، رایانش ابری ایدهی فراهمسازی قدرت رایانشی، "بنا به تقاضا"، میباشد به منظور اینکه شرکتها را قادر سازد تا از ادارهی مراکز رایانشی بزرگی جلوگیری کنند که فقط در طی دورههای کوتاه "زمان اوج تقاضا"، در بیشترین حد و توان استفاده میشوند و بقیهی اوقات عمدتا فقط هزینهها را هدر میدهند. ارائه دهندگان رایانش ابری به مشتریان خود اجازه میدهند تا از ماشینهای مجازی از طریق اینترنت استفاده کنند و از آنها بر اساس استفادهی واقعی بها مطالبه میکنند؛ این مساله میتواند منجر به صرفهجوییهای قابل ملاحظهای در مقایسه با ادارهی یک مرکز رایانشی "واقعی" شود، مخصوصا زمانی که این واقعیت در نظر گرفته شود که در غیر اینصورت شما به عنوان یک مشتری باید نه تنها متحمل هزینههای اولیهی ساختمانی بلکه پرسنل، مواد و هزینههای انرژی مربوط به ادارهی یک مرکز رایانشی به صورت شبانهروزی، شوید.