تاریخچه سیستم عامل یونیکس (Unix)؛ از آزمایشگاه بل تا تسخیر دنیای فناوری 🖥️
هنگامی که امروز از سرورهای پایدار لینوکسی، گوشیهای هوشمند (اندروید و iOS) یا سیستمعامل مک (macOS) استفاده میکنید، در واقع در حال لمس میراثی هستید که بیش از نیم قرن پیش پایهگذاری شد. سیستم عامل یونیکس (Unix) تنها یک نرمافزار نیست؛ بلکه یک فلسفه و معماری شاهکار است که مسیر تاریخ کامپیوتر را برای همیشه تغییر داد.
بدون یونیکس، اینترنت به شکلی که امروز میشناسیم وجود نداشت و زیرساختهای میزبانی وب (مانند سرورهای قدرتمند نگارنوین) هرگز به این سطح از پایداری و امنیت نمیرسیدند. در این مقاله، به بررسی جامع و جذاب تاریخچه سیستم عامل یونیکس، از اولین جرقهها در دهه ۶۰ میلادی تا تبدیل شدن به استاندارد جهانی سرورها میپردازیم.
۱. پیشزمینه: پروژه جاهطلبانه اما شکستخورده Multics
داستان یونیکس در اواسط دهه ۱۹۶۰ میلادی آغاز میشود. در آن زمان، موسسه فناوری ماساچوست (MIT)، شرکت جنرال الکتریک (GE) و آزمایشگاههای بل (Bell Labs) متعلق به شرکت AT&T، تصمیم گرفتند یک سیستمعامل اشتراک زمانی (Time-Sharing) به نام Multics بسازند. هدف این پروژه، ایجاد سیستمی بود که بتواند به صورت همزمان به صدها کاربر سرویس دهد.
اما Multics بسیار پیچیده، سنگین و پرهزینه شد. به همین دلیل، در سال ۱۹۶۹، مدیران آزمایشگاه بل تصمیم گرفتند از این پروژه خارج شوند. این تصمیم، تیمی از نوابغ برنامهنویسی بل را بدون پروژه رها کرد.

۲. سال ۱۹۶۹: تولد یونیکس روی یک کامپیوتر متروکه
پس از لغو پروژه، کن تامپسون (Ken Thompson)، یکی از محققان آزمایشگاه بل، تصمیم گرفت یک بازی فضایی به نام Space Travel را که خودش نوشته بود، روی یک کامپیوتر قدیمی و ضعیفتر به نام PDP-7 اجرا کند.
برای اجرای این بازی، او به یک سیستمعامل نیاز داشت. تامپسون با کمک همکارش دنیس ریچی (Dennis Ritchie)، شروع به نوشتن یک سیستمعامل کوچک، ساده و کارآمد کردند که ایدههای خوب Multics را داشت، اما پیچیدگیهای آن را دور ریخته بود. همکار دیگر آنها، برایان کرنیگان، به شوخی نام این سیستم جدید را Unics گذاشت (به معنای سیستمی که برخلاف Multics، تنها روی یک کار تمرکز دارد). این نام بعدها به Unix تغییر یافت.
۳. انقلاب زبان C (سالهای ۱۹۷۲ تا ۱۹۷۳)
شاید مهمترین نقطه عطف در تاریخچه سیستم عامل یونیکس، بازنویسی آن باشد. در نسخههای اولیه، یونیکس با زبان اسمبلی (Assembly) نوشته شده بود که مستقیماً به سختافزار کامپیوتر PDP وابسته بود؛ یعنی برای اجرای یونیکس روی یک کامپیوتر دیگر، باید کل سیستمعامل از نو نوشته میشد!
برای حل این مشکل، دنیس ریچی زبان برنامهنویسی C را اختراع کرد. در سال ۱۹۷۳، تامپسون و ریچی هسته (Kernel) یونیکس را با زبان C بازنویسی کردند. این کار یک شاهکار مهندسی بود؛ زیرا برای اولین بار در تاریخ، یک سیستمعامل به پدیدهای قابل حمل (Portable) تبدیل شد و میتوانست با کمترین تغییرات روی هر سختافزاری اجرا شود.
۴. جنگهای یونیکس (Unix Wars) در دهه ۸۰ میلادی
در اواخر دهه ۷۰ و اوایل دهه ۸۰، به دلیل قوانین ضدانحصار آمریکا، شرکت AT&T حق فروش تجاری یونیکس را نداشت. بنابراین، آنها کدهای منبع یونیکس را با قیمت بسیار پایین (تقریباً رایگان) در اختیار دانشگاهها قرار دادند.
دانشگاه کالیفرنیا در برکلی (Berkeley)، تغییرات و بهبودهای شگرفی روی یونیکس اعمال کرد و نسخه خود را با نام BSD (Berkeley Software Distribution) منتشر کرد. BSD ویژگیهای انقلابی مانند شبکه TCP/IP (پایه و اساس اینترنت امروزی) را به یونیکس اضافه کرد. پس از مدتی، AT&T مجوز فروش تجاری را به دست آورد و نسخه خود را با نام System V روانه بازار کرد. رقابت شدید بین نسخه تجاری AT&T و نسخه آکادمیک BSD به «جنگهای یونیکس» معروف شد که در نهایت منجر به ایجاد استانداردی به نام POSIX برای یکپارچهسازی سیستمهای مبتنی بر یونیکس گردید.
۵. میراث یونیکس در دنیای مدرن
یونیکس به صورت مستقیم و غیرمستقیم، پدر سیستمعاملهای مدرن محسوب میشود:
-
لینوکس (Linux): در سال ۱۹۹۱، یک دانشجوی فنلاندی به نام لینوس توروالدز، با الهام از یونیکس و سیستمعامل آموزشی Minix، هسته لینوکس را خلق کرد. لینوکس دقیقاً مشابه یونیکس کار میکند (Unix-like) اما کدهای آن کاملاً از صفر نوشته شده و متنباز (Open Source) است.
-
مک او اس (macOS) و iOS: هسته سیستمعاملهای شرکت اپل (Darwin)، مستقیماً بر پایه کدهای پروژه FreeBSD (یکی از نوادگان اصلی یونیکس) بنا شده است. بنابراین آیفون و مکبوک شما، در قلب خود یک یونیکس واقعی را حمل میکنند.
امروز، فلسفه یونیکس مبنی بر «انجام یک کار، اما به بهترین شکل ممکن» (Do one thing and do it well) و ساختار فایلمحور آن (Everything is a file)، به قانون نانوشته مهندسی نرمافزار تبدیل شده است. اگر وبسایت شما روی سرورهای پایدار، پرسرعت و امن لینوکسی در نگارنوین میزبانی میشود، این پایداری و امنیت، ریشه در تلاشهای تامپسون و ریچی در سال ۱۹۶۹ دارد. سیستمعاملهایی مانند اوبونتو، دبیان و آلما لینوکس که روی سرورهای مجازی و اختصاصی استفاده میکنید، همگی فرزندان خلف این معماری باشکوه هستند.
سوالات متداول
پیشزمینه: پروژه جاهطلبانه اما شکستخورده Multics؟
داستان یونیکس در اواسط دهه ۱۹۶۰ میلادی آغاز میشود. در آن زمان، موسسه فناوری ماساچوست (MIT)، شرکت جنرال الکتریک (GE) و آزمایشگاههای بل (Bell Labs) متعلق به شرکت AT&T، تصمیم گرفتند یک سیستمعامل اشتراک زمانی (Time-Sharing) به نام Multics بسازند. هدف این پروژه، ایجاد سیستمی بود که بتواند به صورت همزمان به صدها کاربر سرویس دهد.
اما Multics بسیار پیچیده، سنگین و پرهزینه شد. به همین دلیل، در سال ۱۹۶۹، مدیران آزمایشگاه بل تصمیم گرفتند از این پروژه خارج شوند. این تصمیم، تیمی از نوابغ برنامهنویسی بل را بدون پروژه رها کرد.
سال ۱۹۶۹: تولد یونیکس روی یک کامپیوتر متروکه؟
پس از لغو پروژه، کن تامپسون (Ken Thompson)، یکی از محققان آزمایشگاه بل، تصمیم گرفت یک بازی فضایی به نام Space Travel را که خودش نوشته بود، روی یک کامپیوتر قدیمی و ضعیفتر به نام PDP-۷ اجرا کند.
برای اجرای این بازی، او به یک سیستمعامل نیاز داشت. تامپسون با کمک همکارش دنیس ریچی (Dennis Ritchie)، شروع به نوشتن یک سیستمعامل کوچک، ساده و کارآمد کردند که ایدههای خوب Multics را داشت، اما پیچیدگیهای آن را دور ریخته بود. همکار دیگر آنها، برایان کرنیگان، به شوخی نام این سیستم جدید را Unics گذاشت (به معنای سیستمی که برخلاف Multics، تنها روی یک کار تمرکز دارد). این نام بعدها به Unix تغییر یافت.