۲۵ اگوست ۱۹۹۱ در میان انبوه پیامهای گروه خبری Minix، پیامی با یک سلام بیتکلف منتشر شد: «سلام به همهی کسانی که آن بیرون از مینیکس استفاده میکنند.»
فرستندهی پیام، دانشجویی ۲۱ ساله و فنلاندی به نام لینوس توروالدز بود. چند ماهی میشد که در خلوت اتاقش، روی سیستمعاملی رایگان برای کامپیوترهای مجهز به پردازندههای ۳۸۶ و ۴۸۶ کار میکرد. با ارسال این پیام فقط میخواست بداند کاربران مینیکس چه چیزهایی را در سیستمعاملشان دوست دارند و از چه چیزهایی خوششان نمیآید.
در میان توضیحات فنی پیام عبارتی به چشم میخورد که امروز پس از گذشت ۳۵ سال، مانند شوخی ناخواستهای از گذشته خوانده میشود. لینوس جوان با تواضع (و شاید کمی بیخیالی) نوشته بود: «این پروژه فقط سرگرمی است و قرار نیست مثل GNU بزرگ و حرفهای شود.» او حتی در پایان پیامش گفت نرمافزارش احتمالاً هرگز چیزی جز هارددیسکهای AT را پشتیبانی نخواهد کرد؛ احتمالاً چون خودش فقط همان سختافزار را در اتاقش داشت!
خلاصه صوتی
خلاصه صوتی، ساخته شده با هوش مصنوعی
سیوپنج سال بعد، هر گوشهای از جهان فناوری را که نگاه کنید، ردی از پروژهای میبینید که برخلاف پیشبینی خالقش، هم بزرگ شد و هم حرفهای. کرنل همان سرگرمی حالا در تاروپود سرورها، تجهیزات عظیم شبکه و ابررایانههای جهان جریان دارد.
ولی پروژهای که فقط برای معماری کامپیوتری مشخص و رفع نیازهای شخصی صاحب همان کامپیوتر طراحی شد چطور توانست از نسل نخست کاربرانش بزرگتر شود و بعد جهان را تسخیر کند؟
تست A و B روی نمایشگر؛ جرقههای خلق یک سیستمعامل واقعی
توروالدز اولین کامپیوتر شخصیاش را ژانویه ۱۹۹۱ خرید؛ سیستمی با پردازندهی ۳۲ بیتی، فقط چهار مگابایت رم و هارددیسکی ساده. بعد به سراغ مینیکس (Minix) رفت؛ سیستمعاملی شبیه یونیکس که اندرو تننبام صرفاً برای آموزش سازوکار سیستمعاملها توسعه داده بود، نه برای اینکه محیطی آماده برای استفادهی روزمره دانشجویی مثل توروالدز باشد.
مینیکس عالی بود؛ به دانشجویان اجازه میداد زیر کاپوت یک سیستمعامل واقعی را ببینند و کدها را دستکاری کنند؛ ولی آنقدر هم محیط آزاد و انعطافپذیری نبود که لینوس برای استفادهی روزمره و دلخواهش به آن نیاز داشت.
روزهای اول، اصلاً چیزی به نام پروژهی ساخت لینوکس وجود نداشت. لینوس به فتح دنیا فکر نمیکرد و فقط میخواست پردازندهی ۳۸۶ را بهتر بشناسد. پس آستینها را بالا زد و یک راهانداز اولیه یا بوتلودر نوشت تا بارگذاری نرمافزار اصلی را به دست بگیرد. سپس پردازنده را به حالت محافظتشده برد تا از حافظه و قابلیت چندوظیفگیاش استفاده کند.
لینوکس در روزهای اول تنها یک سرگرمی سادهی دانشجویی بود و هیچ نقشهی بزرگی برای آینده نداشت
لارس ویرزنیوس، دوست و همدانشگاهی لینوس، اولین آزمایش موفق او را با جزئیات جالبی توصیف میکند. یک وظیفه رشتهای از حرف A را روی صفحه مینوشت و وظیفهای دیگر حرف B را. جابهجایی Aها و Bها نشان میداد پردازنده میان دو کار سوئیچ میکند. چیزی که بعدها کرنل لینوکس نام گرفت، در آن لحظه بیشتر نمایشی ساده از چندوظیفگی بود.
آزمایش چندوظیفگی خیلی زود کاربرد دیگری پیدا کرد. توروالدز برای اتصال از خانه به کامپیوترهای یونیکس دانشگاه، شبیهساز ترمینال خودش را نوشت. ولی ذخیرهی فایلها دسترسی به هارددیسک میخواست و هارددیسک هم به درایور و فایلسیستم نیاز داشت. انگار هر قطعه، جای خالی قطعهی بعدی را آشکار میکرد و همهچیز قدمبهقدم جلو میرفت.
توروالدز سالها بعد در مصاحبهاش با موزهی تاریخ کامپیوتر اذعان کرد که پیدایش لینوکس حاصل انباشتهشدن همین نیازهای عملی و روزمره بود. ماجرا این نبود که یک روز صبح ناگهان تصمیم بگیرد رقیبی برای سیستمعاملهای بزرگ بسازد! برنامهی ترمینال سادهی او، ذرهذره آنقدر قابلیت پیدا کرد که دیگر هیچ نامی جز سیستمعامل برازندهاش نبود.
نسخهای که حتی سازندهاش هم به آن افتخار نمیکرد!
۲۵ اگوست ۱۹۹۱ توروالدز برای نخستینبار پروژهاش را بهطور عمومی معرفی کرد، اما کدهای نسخهی ۰٫۰۱ اواسط سپتامبر روی سرور nic.funet.fi آپلود شدند. این نسخهای فقط کد منبع داشت، بهتنهایی قابلاجرا نبود و بسیار کمسروصدا برای چند تن از علاقهمندان فرستاده شد. توروالدز خودش هم چندان به این برنامه افتخار نمیکرد.
توروالدز برای رفع نیازهای روزمرهاش، قطعهبهقطعه پایههای یک سیستمعامل مستقل را بنا کرد
اما ۵ اکتبر لحن پیام بعدی توروالدز عوض شد. او با شوخی از خوانندگان پرسید آیا دلشان دلتنگ روزهایی نیستند که آدمها درایور دستگاهشان را خودشان مینوشتند؟ بعد اعلام کرد که نسخهی ۰٫۰۲ بالاخره به مرحلهای رسیده که میشود کدهایش را گستردهتر توزیع کرد.
حالا Bash، GCC و چند ابزار مهم گنو روی آن اجرا میشدند، هرچند نصب سیستم هنوز به مینیکس و مهارت فنی جدی نیاز داشت. لینوس صادقانه هشدار داد کسانی که فقط جایگزینی آماده برای مینیکس میخواهند، فعلاً دور این پروژه را خط بکشند. بااینحال انتهای پیام مسیر آینده را به زیبایی ترسیم کرد.
پخش از رسانه
کد کرنل در دسترس بود، توروالدز از دیگران بازخورد میخواست و از مخاطبان دعوت میکرد ابزارها یا کتابخانهای را که نوشتهاند، به پروژه اضافه کنند. نسخهی ۰٫۰۲ پر از باگ بود، نه درایو فلاپی داشت و نه حافظهی مجازی و استفاده از آن ساده نبود. بااینحال، چند نفر واقعاً امتحانش کردند و از اینجا به بعد، کمبودهای لینوکس فقط توروالدز مربوط نمیشد.
شبکهی یوزنت کدهای لینوکس را مستقیماً به دست هکرهایی رساند که تشنهی چنین سیستمی بودند
اورست زبوروفسکی رابطهای لازم برای پورت کردن X Window System (همان محیط گرافیکی یونیکس) را به آماده کرد؛ تا جایی که بخش سؤالات متداول لینوکس در نوامبر ۱۹۹۲، نسخهی X386 را مستقیماً حاصل کار او میدانست.
زبوروفسکی سالها بعد تعریف کرد که چطور توسعهدهندگان از طریق اینترنت و در اوقات فراغتشان، تغییرات کدها را با هم ردوبدل میکردند. مسیر پروژه یکطرفه نبود و کدها از کامپیوترهای دیگران بهسوی توروالدز بازمیگشتند.
پیوند سرنوشتساز لینوکس و ابزارهای گنو
سال ۱۹۸۳، ریچارد استالمن پروژهی گنو (GNU) را با یک هدف خلق سیستمعاملی کاملاً آزاد و سازگار با یونیکس آغاز کرد. تا اوایل دهه ۱۹۹۰، گنو از مجموعه ابزارهای ارزشمندی بهره میبرد؛ از کامپایلر و بش گرفته تا کتابخانهها، ویرایشگر و ابزارهای خط فرمان. فقط کرنل سیستم که با نام GNU Hurd شناخته میشد، به بلوغ عملی نرسیده بود.
کرنل یا هسته، بخش مرکزی سیستمعامل را تشکیل میدهد و پردازنده، حافظه و دستگاههای سختافزاری را مدیریت میکند. به بیان ساده آنچه ما سیستمعامل لینوکس مینامیم، فقط کرنل نیست. توزیعهایی مثل دبیان یا اوبونتو کرنل را با ابزارهای گنو، کتابخانهها، پکیجمنیجرها و رابطهای کاربری پیوند میزنند و سیستمی قابلنصب میسازند.
لینوکس برای تبدیل شدن به یک سیستمعامل واقعی، به ابزارها و کامپایلرهای پروژهی گنو نیاز داشت
نخستین مجوز توروالدز اجازه نمیداد در قبال توزیع لینوکس پولی ردوبدل شود. این محدودیت، ساخت محصول و خدمات تجاری پیرامون پروژه را دشوار میکرد. لینوس در نسخهی ۰٫۱۲ فرمان را چرخاند و کرنل لینوکس را تحت لیسانس «مجوز عمومی همگانی گنو» یا همان GPL منتشر کرد.
GPL به همه اجازه میداد نرمافزار را اجرا کنند، کدهایش را بخوانند، تغییرش دهند و بازتوزیع کنند، اما نسخهی تغییریافته نیز باید همان آزادیها را برای دریافتکنندگان حفظ میکرد. این مجوز راه کسبوکار را باز کرد، بیآنکه شرکتها بتوانند نسخههای توزیعشده را برای همیشه پشت درهای بسته ببرند.
ابزارهای گنو به کرنل جوان لینوکس محیطی قابلاستفاده دادند و کرنل لینوکس نیز جای خالی هستهی سیستم آزاد را پر کرد. پروژهای که توروالدز با سختافزار معمولیاش آغاز کرد، وارث مجموعهای از ابزارها و قواعد همکاری شد که سالها پیش وجود داشتند.
وقتی استاد دانشگاه، لینوکس را «منسوخ» خواند!
در سالهای اول، برخی چهرههای مشهور فناوری اصلاً لینوکس را متعلق به آینده نمیدانستند. ۲۹ ژانویه ۱۹۹۲ اندرو تننبام، خالق مینیکس و استاد برجستهی علوم کامپیوتر، رشتهبحثی را با عنوان «لینوکس ازردهخارج است» باز کرد. نقد او صرفاً پروژهای دانشجویی را زیر سؤال نمیبرد و به یکی از جدیترین اختلافنظرهای علوم کامپیوتر اشاره داشت.
لینوکس بر پایه معماری یکپارچه (Monolithic) ساخته شد، یعنی مدیریت حافظه، فایلسیستم، درایورها و بخش بزرگی از خدمات پایهای سیستم، همگی در فضای ممتاز کرنل و درون یک مجموعهی بزرگ کار میکردند. تننبام از الگوی میکروکرنل سخن میگفت، جایی که هسته تا حد ممکن کوچک میماند و بسیاری از خدمات بهصورت فرایندهای جداگانه بیرون از هسته اجرا میشدند و از طریق ارسال پیام با یکدیگر ارتباط میگرفتند.
بسیاری از چهرههای آکادمیک لینوکس را سیستمی محدود و بدون آینده میدانستند
روی کاغذ، میکروکرنلها بهخاطر جداسازی اجزا و جلوگیری از فروپاشی کل سیستم هنگام بروز خطا، مزیت روشنی داشتند؛ اما طراحی یکپارچه معمولاً مسیر سادهتر و سریعتری برای ساخت یک سیستم کارآمد روی سختافزار موجود فراهم میکرد.
تننبام اعتقاد داشت پژوهشهای سیستمعامل از طراحیهای یکپارچه عبور کردهاند و وابستگی شدید لینوکس به خانوادهی ۳۸۶ نیز آیندهاش را محدود میکند. او حتی نوشت پنج سال بعد همه سیستمعامل آزاد گنو روی کامپیوترهای قدرتمند اجرا خواهند کرد و سیستمعاملی وابسته به پردازندههای اینتل راه به جایی نمیبرد.
لینوس توروالدز پاسخ داد که انعطافپذیری و انتقالپذیری مینیکس به قیمت ازدسترفتن کاراییاش تمام شده و او آگاهانه از امکانات ۳۸۶ برای کارایی و سادگی طراحی استفاده کرده است. توروالدز در برابر «آیندهی تمیز روی کاغذ» تننبام، سیستمی را روی میز گذاشت که همین حالا و امروز روی سختافزارهای در دسترس کاربران کار میکرد.
انعطافپذیری بینظیر کدهای لینوکس تمام پیشبینیهای بدبینانه را شکست داد
بحث بهشدت بالا گرفت و پای برنامهنویسان بزرگ دیگری هم به این جنگ لفظی کشیده شد.
میکروکرنلها هرگز از بین نرفتند و هنوز هم کاربردهای مهم خودشان را دارند؛ از طرفی لینوکس هم با معرفی ماژولهای قابلبارگذاری و تفکیک زیرسیستمها؛ ساختار یکپارچهاش را منعطفتر کرد. اما یکی از فرضهای اصلی تننبام شکست خورد؛ زیرا لینوکس روی معماری ۳۸۶ متوقف نماند و راهش را به Alpha ،ARM و PowerPC باز کرد.
کاربران به کدهایی دسترسی داشتند که همان روز اجرا و اصلاح میشد. هر کاربر جدید، تست دیگری برای طراحی لینوکس و نیرویی برای انتقال آن به سختافزارهای بعدی محسوب میشد.
فتح بیسروصدای اتاق سرورها؛ عبور از مرزهای آکادمیک به دنیای تجارت
سال ۱۹۹۳ توزیعهایی مثل Slackware نصب مجموعهی پراکندهی کرنل و ابزارها را منظمتر کردند. همان سال، ایان مرداک با فراخوانی عمومی پروژهی دبیان را کلید زد تا توزیعی کاملاً باز بسازد. مارس ۱۹۹۴، انتشار نسخهی ۱٫۰ از پایان دوران آزمایشی خبر میداد. به لطف این توزیعها، کاربران دیگر مجبور نبودند کدها را قطعهبهقطعه کامپایل کنند.
در نیمهی دوم دههی ۹۰ میلادی، با رشد انفجاری وب، این سیستمعامل آزاد ناگهان رسالت اصلی خودش را پیدا کرد. آپاچی (Apache)، وبسروری که خودش هم از ردوبدلکردن وصلههای نرمافزاری بین یک گروه کوچک متولد شده بود، تا اواخر سال ۱۹۹۶ پرکاربردترین وبسرور اینترنت شد.
با ظهور وب، لینوکس و آپاچی به زوجی طلایی برای راهاندازی سرورهای اینترنتی تبدیل شدند
ترکیب آپاچی و لینوکس روی کامپیوترهای ارزان و معمولی x86، به مدیران شبکه اجازه میداد سرورهای جدید را بدون انتظار برای سختافزار اختصاصی یونیکس بالا بیاورند. اینترنت علاوه بر محل توسعه، نخستین بازار بزرگ لینوکس هم بهشمار میرفت.
شرکتهایی مانند Red Hat نشان دادند میتوان خود کد را آزاد نگه داشت و از بستهبندی، بهروزرسانی و پشتیبانی درآمد کسب کرد. سپس نوبت به نامهای بزرگتری رسید. سال ۱۹۹۹ شرکت IBM پشتیبانی از لینوکس روی سرورهایش را آغاز کرد و در سال ۲۰۰۰ یک میلیارد دلار به توسعه، پشتیبانی و گسترش تجاری آن اختصاص داد.
حمایت آیبیام به مدیران فناوری پیام میداد که برای استفاده از لینوکس لازم نیست خدمات و مهندسی سازمانی را کنار بگذارند.
از اندروید تا ابرکامپیوترها؛ حاکمیت لینوکس بر سختافزارها
لینوکس در بخش کامپیوترهای شخصی، حریفانی مانند ویندوز یا macOS را کنار نزد. اما پیروزی بزرگش دور از چشم کاربران عادی رقم خورد؛ جایی که امکان تغییر کد از ظاهر رابط دسکتاپ اهمیت بیشتری داشت. سرورها و سپس زیرساختهای ابری، میتوانستند لینوکس را متناسب کار خود تنظیم کنند.
اندروید حضور خاموش سیستمعامل را مستقیماً به جیب میلیاردها نفر برد. گوگل در ۲۰۲۵ شمار دستگاههای فعال اندرویدی را بیش از ۲٫۵میلیارد اعلام کرد. شاید محیط گوشیها، ساعتها و تلویزیونهای هوشمند اندرویدی هیچ شباهتی به محیط آشنای لینوکس نداشته باشد، اما کرنل زیرینشان از همان پروژه میآید.
از طرف دیگر، در فهرست ۵۰۰ ابررایانهی برتر جهان (TOP500) در ژوئن ۲۰۲۶، نام توزیعهای مختلف لینوکس در سراسر جدول میدرخشد. فاصلهی شگفتانگیز بین یک ساعت هوشمند کوچک تا ماشینهایی با صدها هزار هستهی پردازشی، نشان میدهد که چطور انتقالپذیریای که توروالدز ناممکن میپنداشت، باعث ماندگاری پروژه شد.
امروز قدرتمندترین ابررایانههای جهان روی پایههای همین سیستمعامل متنباز پردازش میکنند
گسترش لینوکس از سرورها به زیرساختهای ابری فقط نتیجهی زیادشدن تعداد ماشینها نبود. کرنل لینوکس این امکان را فراهم کرد که چند برنامه روی یک سرور، جدا از هم اجرا شوند و هرکدام سهم مشخصی از پردازنده و حافظه داشته باشند.
سال ۲۰۱۳، پروژهای به نام داکر با استفاده از همین قابلیتها، مفهوم کانتینر را به استانداردی جهانی تبدیل کرد؛ بستههایی سبک و مستقل که بهجای اجرای یک سیستمعامل سنگین، کرنل میزبان را با هم شریک میشدند. تنها یک سال بعد، مهندسان گوگل Kubernetes را برای ادارهی برنامههای کانتینری در خوشهها معرفی کردند.
همگام با عصر پردازش هوش مصنوعی
مدلهای بزرگ هوش مصنوعی امروز روی خوشههای عظیم غولپیکری آموزش میبینند که هزاران پردازندهی گرافیکی، شبکههای پرسرعت و فضاهای ذخیرهسازی عظیم را با یکدیگر هماهنگ میکنند. ارزش اقتصادی صنعت امروز بیشتر به GPU، داده و مدل نسبت داده میشود، ولی لینوکس در پسزمینه نقش کلیدیاش را ایفا میکند.
انویدیا از سال ۲۰۲۲ بخشی از ماژولهای کرنل درایور خود را با مجوز آزاد منتشر کرد. این روند در جولای ۲۰۲۴ با معرفی نسخه R560 وارد مرحله تازهای شد و شرکت اعلام کرد که ماژولهای متنباز از این نسخه به بعد بهعنوان گزینهی پیشفرض و پیشنهادی در نظر گرفته میشوند.
ازسویدیگر انویدیا سیستمعامل DGX OS 7 را برای ابرکامپیوترهای هوش مصنوعی خود مستقیماً بر پایهی اوبونتو ۲۴٫۰۴ توسعه داد و درایورها و تنظیمات مخصوص سختافزار را به آن افزود. گوگل کلود و آمازون (AWS) نیز برای ماشینهای یادگیری عمیق خود، ایمیجهای آمادهی ابونتو مجهز به درایورهای GPU ارائه میدهند.
در خوشههای عظیم محاسباتی، کوبرنیتیز وظایف سنگین پردازشی را میان هزاران شتابدهندهی انویدیا و AMD تقسیم میکند، کانتینرها نرمافزار را به دوش میکشند؛ اما این کرنل و درایورهای لینوکس هستند که دسترسی واقعی به سختافزار را ممکن میسازند.
۲۵ آگوست ۱۹۹۱، لینوس توروالدز پیام سادهای در یوزنت فرستاد و از کاربران پرسید چه قابلیتهایی میخواهند. آن روزها نه خبری از رایانش ابری بود، نه گوشی هوشمند و نه خوشههای هوش مصنوعی.
پیامی ساده، کد را از کامپیوتر شخصی لینوس بیرون کشید و با نیازهای بقیهی انسانها پیوند داد. سیوپنج سال بعد، تصویر آغازین پروژهای با یک کامپیوتر ۳۸۶ در هلسینکی و چند خط متن روی یک صفحه سیاه هنوز زیبا و الهامبخش بهنظر میرسد. لینوکس بزرگ شد، چون هیچگاه به شرکتی خاص تعلق نداشت و توانست مسئلهی هر نسل از فناوری را به دعوتی تازه برای تغییر کد تبدیل کند.