بن‌بست مهندسی در عصر کلاسیک مک

اواسط دهه ۹۰ میلادی، سیستم‌عامل اصلی مکینتاش که بعدها به کلاسیک مک او اس معروف شد، به بن‌بست معماری مطلق رسیده بود. طراحی اولیه برای سخت‌افزار ضعیف مکینتاش ۱۲۸ کیلوبایت در سال ۱۹۸۴، هرگز برای دنیای نرم‌افزارهای سنگین آینده مناسب نبود. این سیستم فاقد زیرساخت‌های پیشرفته‌ای مثل چندوظیفگی پیش‌گیرانه، حافظه محافظت‌شده و مدیریت کارآمد حافظه مجازی بود. برنامه‌ها در حالتی همیار اجرا می‌شدند که در آن یک خطای کوچک برنامه‌نویسی، کل ماشین را از پا درمی‌آورد. مدیریت منابع چنان شکننده بود که سقوط یک نرم‌افزار، کل سیستم‌عامل را با خود می‌کشید. تیم‌های مهندسی اپل سال‌ها روی پروژه‌های بازطراحی مثل کوپلند سرمایه‌گذاری کردند، اما پیچیدگی غیرقابل بازگشتی کد قدیمی، مسیر نوسازی پلکانی را مسدود کرد. مک او اس کلاسیک در ادامه مسیر نشان داد که بازسازی پیمانه‌ای آن دیگر ممکن نیست.

قمار سرنوژساز؛ بازگشت استیو جابز با میراث NeXT

در دسامبر ۱۹۹۶، در آستانه ورشکستگی مالی و رکود فناورانه، هیئت مدیره اپل تصمیمی غیرمعمول گرفت. شرکت استیو جابز، یعنی NeXT Computer، به قیمت ۴۲۹ میلیون دلار جذب شد. این معامله فراتر از کسب استعدادهای کلیدی بود؛ اپل در واقع یک سیستم‌عامل کامل و آماده را به داخل خود منتقل کرد. NeXTSTEP با معماری شیءگرا و بلوغ فنی که از سال ۱۹۸۹ روی ایستگاه‌های کاری پرچم‌دار می‌درخشید، دقیقاً همان قطعه گمشده پازل اپل محسوب می‌شد. هسته ترکیبی این سیستم‌عامل که میکروهسته Mach را با زیرساخت BSD Unix پیوند داده بود، مسیر آینده مک را برای همیشه تغییر داد. با این خرید، استیو جابز به اپل بازگشت و اوی تواِنیان، خالق اصلی هسته Mach در دانشگاه کارنگی ملون، به عنوان معاون مهندسی نرم‌افزار، کلید معماری جدید را در دست گرفت. دستورالعمل شفاف بود: آینده مک بر پایه یونیکس خواهد چرخید.

میراث میکروهسته Mach و ایده‌ای پیش‌گامانه

برای درک عمق این تغییر، باید ریشه‌های میکروهسته Mach را کالبدشکافی کرد. پروژه‌ای که در سال ۱۹۸۵ در دانشگاه کارنگی ملون آغاز شد، با هدف حل گره‌های پیچیده هسته‌های سنتی یونیکس شکل گرفت. برخلاف هسته‌های یکپارچه که تمام سرویس‌ها را در فضای特权 اجرا می‌کردند، Mach دست به کاهش سطح دسترسی زد و حداقل اجزای ممکن را در خود نگه داشت. این معماری سه ستون اساسی را بنا نهاد:

  • وظایف و رشته‌ها (Tasks and Threads): اشیاء درجه اول هسته که فضای آدرس و واحدهای اجرای همزمان را مدیریت می‌کنند.
  • حافظه مجازی پیشرفته: پیاده‌سازی مفاهیمی مثل کپی هنگام نوشتن (Copy-on-Write) که بعدها استاندارد سیستم‌عامل‌های مدرن شد.
  • ارتباط بین پردازشی (IPC): مکانیزم‌های پیام‌رسانی مبتنی بر پورت‌های Mach که جدایی فضای کاربر و هسته را تضمین می‌کرد.

نسخه ۳.۰ میکروهسته در اوایل دهه ۹۰، رویای ایزوله کامل را محقق کرد. هسته فقط وظیفه زمان‌بندی و انتقال پیام را بر عهده داشت و فایل‌سیستم‌ها یا درایورهای سخت‌افزاری به سرورهایی در فضای کاربر تبدیل شدند. این جدایی مطلق، پایداری سیستم را به شدت بالا می‌برد، چرا که سقوط یک درایور دیگر به معنای کرش کردن کل سیستم‌عامل نبود.

تولد XNU؛ وقتی مهندسی عمل‌گرا بر ایده‌پردازی می‌چربد

مشکل جایی آغاز شد که تیم مهندسی NeXT با واقعیت‌های سخت‌افزار مواجه شد. سربار ناشی از ارسال پیام‌های مداوم بین سرورهای کاربر و هسته روی سخت‌افزارهای اواخر دهه ۸۰ و اوایل ۹۰، به کندی محسوسی منجر می‌شد. جابجایی حافظه و تغییر کانتکست برای هر فراخوانی سیستم، بهینه‌ای عملی ایجاد نمی‌کرد. معماران سیستم‌عامل مجبور شدند بین بلوغ تئوریک میکروهسته و عملکرد واقعی سخت‌افزار، مصالحه‌ای هوشمندانه انجام دهند.

در همین نقطه، هسته XNU متولد شد. این نام مخفف ترکیبی طنزآمیز از عبارت X is Not Unix بود، اما در عمل به یکی از پایدارترین و انعطاف‌پذیرترین هسته‌های تاریخ تبدیل شد. معماری ترکیبی XNU زیرسیستم‌های BSD را مستقیماً در فضای آدرس هسته قرار داد تا دسترسی به فایل‌سیستم و شبکه با کمترین تأخیر ممکن انجام شود. در عین حال، لایه Mach همچون ستون فقرات، وظیفه زمان‌بندی، مدیریت حافظه مجازی و ارتباطات پیشرفته را بر عهده نگه داشت. این تلفیق، قدرت یونیکس را با انعطاف‌پذیری میکروهسته گره زد.

ارثیه‌ای که دنیای دیجیتال را شکل داد

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