از آزمایشگاه‌های بل تا اتاق دانشجویی فنلاند

داستان کرنل لینوکس به سال ۱۹۹۱ و یک خوابگاه دانشجویی در هلسینکی ختم نمی‌شود. ریشه‌های این سیستم به آزمایشگاه‌های بل نیوجرسی و به سال ۱۹۶۹ بازمی‌گردد. لینوکس یک پیاده‌سازی آزاد و متن‌باز از فلسفه یونیکس است که مسیر اختصاصی خود را پیموده است. برای درک چرایی پیدایش این هسته قدرتمند، باید به معماری سیستم‌عامل‌های اولیه و زیرساخت تکنولوژیک آن دهه نگاه کنیم.

برخاستن یونیکس: جانشینی ساده‌تر و بازتر

مالتیکس پروژه‌ای طموش‌مند اما ناکام بود که آرزوی ساخت یک سیستم‌عامل چندکاربره پیچیده را دنبال می‌کرد. در سال ۱۹۶۹، کن تامپسون و دنسی ریچی در آزمایشگاه‌های بل، طراحی یک فایل‌سیستم جدید را کلید زدند که پایه‌گذار یک سیستم‌عامل با معماری کاملا متفاوت شد. جذابیت اولیه یونیکس در سادگی و باز بودن آن نهفته بود. برخلاف سایر سیستم‌ها که هزاران فرمان با سربار سنگین ارائه می‌دادند، یونیکس چندصد تابع سیستمی را در یک ساختار مینیمال و شفاف عرضه می‌کرد.

اصل همه‌چیز فایل است نه تنها مدیریت داده‌ها و سخت‌افزارها را یکپارچه کرد، بلکه با توزیع آزاد کد منبع، آزمایشگاه‌های تحقیقاتی و دانشگاه‌ها را به توسعه آن تشویق کرد. نقش دانشگاه برکلی کالیفرنیا در تکثیر نسخه‌های BSD نقش محوری داشت. لایسنس تساهلی این نسخه‌ها اجازه می‌داد دانش‌آموختگان و شرکت‌ها نرم‌افزار را برای کاربردهای تجاری کاملاً تغییر دهند. میراث این نسخه‌ها در سیستم‌های مدرن متعددی زنده است.

یونیکس مفاهیم پیشرفته‌ای چون چندوظیفگی پیش‌گیرانه، چندریسمانی، کتابخانه‌های اشتراکی، حافظه مجازی و شبکه‌های TCP/IP را به دنیای کامپیوتر معرفی کرد. نسخه‌های آن از سخت‌افزارهای نهفته کوچک تا سرورهای چندپردازنده‌ای مقیاس می‌گرفتند و از نظر تجاری کاملاً اثربخش بودند. اما فضای کامپیوتر شخصی هنوز جای خالی یک نسخه سبک، رایگان و قابل ویرایش را حس می‌کرد.

خلأ سیستم‌عامل‌های آزاد در اواخر دهه ۱۹۸۰

علیرغم موفقیت‌های تجاری یونیکس، یک جایگزین عملیاتی برای رایانه‌های شخصی وجود نداشت. سه عامل موازی این شکاف را ایجاد کردند که لینوکس قرار بود آن را پر کند:

  • پروژه گنو و هسته Hurd: در سال ۱۹۸۳، ریچارد استالمن پروژه گنو را آغاز کرد و مجوز GPL را به عنوان چتر حقوقی آن تدوین نمود. تا اوایل دهه ۹۰ میلادی، این پروژه تقریباً تمام ابزارهای ضروری نظیر کامپایلر GCC، شل bash و کتابخانه‌های پایه را تکمیل کرده بود. اما هسته اصلی پروژه به دلیل پیچیدگی‌های طراحی و مشکلات مدیریتی در مراحل نهایی گیر کرده بود و برای استفاده عملیاتی آماده نبود.
  • محدودیت‌های MINIX: اندرو تانن‌بام در سال ۱۹۸۷ سیستم‌عامل MINIX را برای هدایت تحصیلی دانشجویان منتشر کرد. کد آن در دسترس بود، اما محدودیت‌های سفت‌وسخت مجوز، هرگونه توسعه آزاد یا مشارکت عمومی را مسدود می‌کرد. علاوه بر این، MINIX روی معماری ۱۶ بیتی سوار بود و نمی‌توانست از قدرت پردازنده ۳۲ بیتی اینتل ۳۸۶ به‌خوبی بهره ببرد.
  • انفجار سخت‌افزار اینتل: عرضه میکروپردازنده ۸۰۳۸۶ در سال ۱۹۸۵ با پشتیبانی کامل از حافظه مجازی و قابلیت نشانی‌دهی تا ۴ گیگابایت رم، زیرساخت فنی لازم را فراهم کرد. در مقابل، نسخه‌های تجاری یونیکس برای این معماری قیمت‌های سرسام‌آوری داشتند که برای کاربران عادی دور از دسترس بود.

تکنولوژی پایه و معماری پردازنده‌های اولیه سیستم عامل

لینوس توروالدز و اعلامیه‌ای که محاسبات را تغییر داد

لینوس توروالدز، دانشجوی علوم کامپیوتر دانشگاه هلسینکی، در سال ۱۹۹۱ با یک رایانه شخصی مجهز به پردازنده ۳۸۶ شروع به کار کرد. او در ابتدا از MINIX استفاده می‌کرد اما محدودیت‌های مجوز آن برای ویرایش و گسترش کد، او را به چالش کشیده بود. هدف اولیه توروالدز یادگیری عمیق‌تر تماس‌های سیستمی یونیکس بود. او در ژوئیه ۱۹۹۱ در گروه خبری comp.os.minix درخواست راهنمایی درباره استانداردهای POSIX داشت. پس از بی‌نتیجه ماندن آن تلاش، به مستندات سیستم‌عامل SunOS دانشگاهش روی آورد و از رویکرد کتاب درسی تانن‌بام الگو برداری کرد.

کار را از یک سیستم جابجایی وظیفه به زبان اسمبلی اینتل ۸۰۳۸۶ و یک درایور ترمینال بسیار ساده آغاز کرد. این شروع کوچک به تدریج تبدیل به یک هسته سیستم‌عامل مستقل شد. در ۲۵ اوت ۱۹۹۱، توروالدز پیام تاریخی خود را در گروه خبری comp.os.minix منتشر کرد. او اعلام کرد که در حال توسعه یک سیستم‌عامل شبیه یونیکس به عنوان یک پروژه دانشجویی است و این کد را به صورت رایگان باقی خواهد گذاشت. همین اعلامیه کوتاه، بذر پیدایش یکی از تأثیرگذارترین پروژه‌های متن‌باز تاریخ را کاشت که بعدها وارد مجوز GPL شد و توانست با ترکیب آن با ابزارهای گنو، یک سیستم‌عامل کامل را ارائه دهد.

لینوکس امروز از یک پروژه دانشجویی در یک خوابگاه فنلاندی به ستون فقرات ابررایانه‌ها، دیتاسنترها و حتی خودروهای خودران تبدیل شده است. این مسیر نشان می‌دهد که چگونه ترکیب سادگی معماری یونیکس، انگیزه توسعه‌دهندگان آزاد و شتابگیری سخت‌افزار، می‌تواند اکوسیستم دیجیتال جهان را برای همیشه دگرگون کند. پرسش اصلی این است که در عصر هوش مصنوعی و رایانش ابری، آیا هسته‌های جدیدی با معماری متفاوت توان خواهند داشت که این پیشینه ۵۰ ساله را بازتعریف کنند و نسل بعدی زیرساخت‌های جهانی را رقم بزنند؟