هایکو؛ سیستمعاملی که بیستوپنج سال است هنوز به نسخهٔ یک نرسیده
سوم شهریور ماه ۱۳۸۰، گروهی از طرفداران BeOS تصمیم گرفتند سیستمعاملی را که شرکتش تازه ورشکسته شده بود از صفر بازنویسی کنند. بیستوپنج سال بعد، هنوز در نسخهٔ بتا هستند، و این عجیبترین بخش ماجرا نیست.

بگذارید با عددی شروع کنم که باورش سخت است: هایکو بیستوپنج سال است در حال توسعه است و هنوز به نسخهٔ ۱٫۰ نرسیده.
آخرین انتشار رسمیاش، ۲۲ شهریور ۱۳۹۶، اسمش R1/beta5 است. یعنی پنجمین بتای نسخهٔ اول.
این میتواند نشانهٔ شکست باشد. ولی وقتی نصبش کنید، که کار پنج دقیقهای است، چیزی میبینید که با هیچ تعریفی از پروژهٔ شکستخورده نمیخواند: یک سیستمعامل کامل، سریع، منسجم، که در چند ثانیه بوت میشود و روی سختافزاری کار میکند که اوبونتو رویش نفسنفس میزند.
برای فهمیدن این تناقض باید سی سال به عقب برگردیم.
قبل از هایکو: BeOS
سال ۱۹۹۰، ژان-لویی گَسه، مدیر سابق اپل که بعد از اختلاف با جان اسکالی رفته بود، شرکتی بهنام Be Inc. تأسیس کرد.
هدفش عجیب بود: ساختن سیستمعاملی از صفر، در دورانی که همه میدانستند ساختن سیستمعامل تازه دیوانگی است.
ولی گَسه یک استدلال داشت که آن زمان کسی جدیاش نمیگرفت. سیستمعاملهای موجود، مکاواس کلاسیک، ویندوز ۹۵، حتی یونیکسهای آن دوره، همه روی معماریای بنا شده بودند که برای دنیای تکپردازنده و تککاره طراحی شده بود. او میگفت آینده چندپردازنده و چندرسانهای است و سیستمی لازم است که از ابتدا برای آن نوشته شود.
چه چیزی متفاوت بود
نخکشی همهجا حاضر. در BeOS هر پنجره thread خودش را داشت. اگر برنامهای گیر میکرد، رابط کاربریاش هم قفل نمیشد. امروز بدیهی است؛ در ۱۹۹۵ نبود.
BFS. سیستم فایلی که علاوه بر فایل، فراداده نگه میداشت و روی آن ایندکس میساخت. یعنی میشد از سیستم فایل پرسوجو گرفت، درست مثل یک پایگاه داده: «همهٔ ایمیلهایی که فرستندهشان فلانی است». نتیجه، پوشهای بود که محتوایش زنده بهروز میشد.
Media Kit. زیرسیستم رسانهای که میتوانست چندین جریان ویدیو را همزمان و بدون پرش پخش کند، روی سختافزار سال ۱۹۹۶. نمایش معروفشان در کنفرانسها همین بود و مردم باور نمیکردند.
BeBox. سختافزار خودشان با دو پردازندهٔ PowerPC، که یک ردیف چراغ LED روی پنل جلویی داشت و بار هر پردازنده را زنده نشان میداد. ماشین زیبایی بود که تقریباً هیچکس نخرید.
و چرا شکست خورد
BeOS از نظر فنی درخشان بود و از نظر تجاری فاجعه.
۱۹۹۶، اپل دنبال جانشین برای مکاواس کلاسیک میگشت و BeOS یکی از دو گزینه بود. گَسه قیمتی خواست که اپل قبول نکرد، رقم دقیقش هنوز محل بحث است و اپل بهجایش NeXT استیو جابز را خرید. آن معامله جابز را به اپل برگرداند و مسیر تاریخ فناوری را عوض کرد.
Be بعد از آن به سمت دستگاههای اینترنتی چرخید و در سال ۱۳۸۰ داراییهایش را به Palm فروخت. BeOS تمام شد.
۲۷ مرداد ۱۳۸۰
همان سال، مایکل فیپس پروژهای بهنام OpenBeOS اعلام کرد.
ایده ساده و بیرحمانه بود: BeOS مرده، کدش را هم نمیشود گرفت، پس از صفر بازنویسیاش کنیم، طوری که برنامههای BeOS بدون تغییر رویش اجرا شوند.
این کار چقدر بزرگ است؟ به این فکر کنید: هسته، درایور، سیستم فایل، سرور گرافیکی، جعبهابزار رابط کاربری، زیرسیستم رسانه، مرورگر، همه، توسط داوطلبان، بدون دسترسی به کد اصلی، با تنها راهنمای موجود یعنی مستندات API.
در ۲۰۰۴ نامش به هایکو تغییر کرد؛ هم بهخاطر نگرانی از علامت تجاری Palm و هم چون پیامهای خطای BeOS بهشکل هایکوی ژاپنی نوشته میشدند.
چرا اینقدر طول کشیده
سه دلیل و هیچکدام «تنبلی» نیست.
اول، حجم کار: بازنویسی یک سیستمعامل کامل با شاید بیست تا سی نفر داوطلب، کاری است که شرکتها با صدها مهندس تماموقت انجام میدهند.
دوم، هدف سازگاری باینری: هایکو نمیخواست «شبیه BeOS» باشد؛ میخواست برنامههای کامپایلشدهٔ BeOS R5 بدون تغییر رویش اجرا شوند. این یعنی هر جزئیات رفتاری باید بازتولید میشد، حتی باگها.
سوم و جالبترین، یک بحث فلسفی.: توسعهدهندگان بر سر اینکه بعد از R1 چه کنند توافق ندارند. تا وقتی R1 منتشر نشده، این پرسش را میشود عقب انداخت. یکی از کاربران قدیمی LWN همین را چنین صورتبندی کرد: تا R1 را منتشر نکنند، هرگز لازم نیست دربارهٔ R2 تصمیم بگیرند.
کجای کار است
جدول کوتاه بیستوپنج سال:
| سال | اتفاق |
|---|---|
| ۲۰۰۱ | اعلام OpenBeOS |
| ۲۰۰۴ | تغییر نام به هایکو |
| ۲۰۰۸ | خودمیزبان شد، یعنی میشد هایکو را روی خود هایکو کامپایل کرد |
| ۲۰۰۹ | نخستین آلفا |
| ۲۰۱۸ | نخستین بتا، نُه سال بعد |
| ۲۰۲۴ | بتای پنجم |
آن ۲۰۰۸ مهمترین سطر جدول است. «خودمیزبانی» نقطهای است که یک سیستمعامل از پروژهٔ تحقیقاتی به چیز واقعی تبدیل میشود.
هایکوی امروز چطور است
نصبش کردم و صادقانه بگویم: بهتر از انتظارم بود.
سریع است. نه «سریع برای یک پروژهٔ داوطلبانه»، واقعاً سریع. بوت در چند ثانیه، رابط کاربری بدون کوچکترین تأخیر. حداقل نیازش ۳۸۴ مگابایت رم است.
منسجم است. این چیزی است که در دنیای گنو/لینوکس کمیاب است. همهٔ برنامههای سیستمی از یک جعبهابزار، یک راهنمای طراحی و یک منطق پیروی میکنند، چون همه را یک تیم نوشته. هیچ برنامهای شبیه مهمان ناخوانده بهنظر نمیرسد.
مدیریت بستهٔ غیرمعمولی دارد. بستهها در هایکو استخراج نمیشوند،
packagefs آنها را مثل یک سیستم فایل سوار میکند. یعنی نصب و حذف
تقریباً آنی است و هیچ فایلی روی سیستم پخش نمیشود. اگر بسته را جدا کنید،
انگار هرگز نصب نشده.
BFS هنوز آنجاست با همان پرسوجوهای ایندکسشده، چیزی که سی سال بعد، هنوز هیچ سیستم میزکار دیگری به این تمیزی ندارد.
نرمافزار کم دارد، ولی نه بهاندازهای که فکر میکنید. HaikuDepot
بستههای زیادی دارد و پورتهای LibreOffice، GIMP، Inkscape و حتی Wine
موجودند. مرورگر بومیاش WebPositive بر پایهٔ
WebKit است و برای وب امروز گاهی کم میآورد؛ فایرفاکس هم پورت شده.
و چه چیزی سخت است
انصاف حکم میکند اینها را هم بگویم:
سختافزار. درایورها محدودند. وایفای گاهی کار میکند و گاهی نه. احتمالش زیاد است که روی لپتاپ امسالتان چیزهایی کار نکنند.
هنوز بتاست، و واقعاً بتاست. پروژه صریح میگوید تضمینی در برابر از دست رفتن داده نمیدهد.
اکوسیستم کوچک است. وقتی به مشکلی بخورید، تعداد آدمهایی که همان را داشتهاند اندک است.
پس چرا اهمیت دارد
اینجا جایی است که بهنظرم ماجرا جالب میشود.
هایکو تنها سیستمعامل میزکار متنباز جدی است که نه گنو/لینوکس است نه یونیکس. هستهٔ خودش را دارد، معماری خودش را و به هیچکدام از دو تبار غالب وصل نیست.
در دنیایی که تقریباً هر چیزی یا از یونیکس آمده یا از ویندوز، وجود یک راه سوم، که کار هم میکند، ارزش فنی دارد، حتی اگر هرگز کاربر انبوه پیدا نکند.
و شرطبندی اصلی BeOS، جواب داد. نخکشی همهجا حاضر، پشتیبانی بومی از چندپردازنده، سیستم فایل با فراداده، زیرسیستم رسانهای که زیر بار نمیشکند، همهٔ اینها امروز از هر سیستمعامل جدی انتظار میرود. مکاواس با ترکیب Mach و BSD به آنجا رسید، گنو/لینوکس با سالها کار روی NPTL و بقیه، ویندوز با خط NT.
BeOS در ۱۹۹۵ آنجا بود — روی سختافزاری که تقریباً هیچکس نخرید.
امتحانش کنید
توصیهام این است که در ماشین مجازی نصبش کنید. فایل ISO حدود یک گیگابایت است و نصب در VirtualBox یا QEMU چند دقیقه طول میکشد.
انتظار جایگزین سیستم اصلیتان را نداشته باشید. ولی نیمساعت با آن کار کنید و ببینید سیستمعاملی که از ابتدا با یک ایدهٔ منسجم طراحی شده چه حسی دارد، تجربهای که در دنیای گنو/لینوکس، با آن همه تنوع و انتخاب، کمیاب است.
پروانه و مشارکت
هایکو تحت MIT منتشر میشود، یعنی بسیار بازتر از GPL؛ میشود کدش را برداشت و در محصولی بسته به کار برد.
پشتش Haiku, Inc. است، یک نهاد غیرانتفاعی که در ۲۰۰۳ توسط خود فیپس تأسیس شد و گاهی توانسته یک توسعهدهنده را تماموقت استخدام کند.
اگر میخواهید مشارکت کنید، پروژه یکی از مستندترینها برای تازهواردهاست و بهطور غیرمعمولی به کسانی که تازه شروع میکنند صبور است، شاید چون خودشان بیستوپنج سال است دارند صبر میکنند.
- وبسایت: haiku-os.org (پیوند بیرونی، در تب تازه باز میشود)
- مخزن: git.haiku-os.org (پیوند بیرونی، در تب تازه باز میشود)
- پروانه: MIT
- معماریها: x86، x86-64، RISC-V؛ پورت ARM در دست توسعه
این مطلب بهمناسبت بیستوپنجمین سالگرد آغاز پروژه نوشته شده. تقویم سالگردهای نرمافزار آزاد را ببینید.