Solaris وillumos: كيف أبقى الفرع حياً؟
اكتشف كيف صممت Sun ZFS وDTrace داخل Solaris، ثم أوقفت Oracle نشر الشيفرة في 2010، ولماذا يتيح illumos تشغيلها حتى اليوم.
ما هو Solaris وillumos
Solaris وillumos فرعان من شجرة مصدر Unix واحدة. طوّرت Sun Microsystems نظام Solaris ونشرت معظم شيفرته المصدرية في 2005. اشترت Oracle شركة Sun في 2010، ثم توقفت عن نشر تلك الشيفرة. لذلك واصل المطورون خارج Oracle تطوير الشيفرة المفتوحة تحت اسم جديد هو illumos. نظام التشغيل نفسه محدود الانتشار في 2026. لكن طبقة التخزين وأداة التتبّع المضمّنة فيه ليستا كذلك. ولهذا تستحق هذه القصة وقتك.
إذا كنت تشغّل ZFS على Linux أو FreeBSD، فأنت تشغّل شيفرة كتبتها Sun لنظام Solaris، واستمرت بعد زوال الشركة وخط المنتجات والخلاف حول الترخيص. يروي هذا المنشور كيف حدث ذلك، مع التحقق من التواريخ.
من أين جاء Solaris: BSD وSystem V وSVR4
تأسست Sun Microsystems في 24 فبراير 1982 على يد Scott McNealy وAndy Bechtolsheim وVinod Khosla وBill Joy. وكان نظام تشغيلها SunOS مشتقاً من BSD (Berkeley Software Distribution)، وهو فرع Unix الجامعي الذي عمل عليه Bill Joy قبل تأسيس Sun. أما فرع Unix الآخر فكان System V من AT&T، الذي بيع تجارياً. هذان الفرعان هما الانقسام الموضح في شجرة عائلة Unix التي تنتهي بـ Linux، وظلت Sun في جانب BSD منه لمدة عقد.
في 1987 أعلنت Sun وAT&T عن مشروع مشترك لدمج BSD وSystem V وXenix في إصدار واحد: UNIX System V Release 4، ويُكتب عادةً SVR4. في 4 سبتمبر 1991 أعلنت Sun أن SunOS 4 سيُستبدل بنظام مشتق من SVR4 تحت اسم تسويقي جديد هو Solaris 2. صدر Solaris 2.0 في يونيو 1992، وكان متاحاً على أجهزة SPARC فقط. كانت Sun قد انتقلت إلى الجانب الآخر من انقسام Unix، واضطر عملاؤها إلى نقل برامجهم للعمل على النظام الجديد.
لم يختفِ الاسم القديم قط. احتفظت النواة بترقيم SunOS، لذلك كان Solaris 2.6 يشغّل SunOS 5.6، وما زال Oracle Solaris 11.4 يعرّف نفسه بأنه SunOS 5.11. شغّل uname -a على جهاز يعمل بـ illumos في 2026، وستظل الكلمة الأولى المطبوعة هي SunOS، لأن illumos ورث الاسم مع الشفرة البرمجية.
ما قدّمته Solaris 10 في 2005
أُصدر Solaris 10 في 31 January 2005. وتكمن أهميته هنا في أن كل ما بقي من الشركة كان موجوداً في ذلك الإصدار أو أتى مع أحد تحديثاته.
طوّر Bryan Cantrill وMike Shapiro وAdam Leventhal أداة DTrace في Sun، وأصبحت متاحة للمرة الأولى في November 2003. وهي تضيف أدوات القياس إلى kernel قيد التشغيل وعمليات المستخدم قيد التشغيل من دون إعادة ترجمة أي شيء، ومن دون إعادة تشغيل العملية التي تراقبها. ولا تكلّف probe التي لم تفعّلها شيئاً، لأن instrumentation لا تُضاف إلا عندما يطلبها script. لذلك كان المسؤولون مستعدين لاستخدامها على أجهزة الإنتاج. فازت DTrace بالجائزة الأولى في The Wall Street Journal's 2006 Technology Innovation Awards، كما فازت بجائزة من USENIX STUG (Software Tools User Group) في 2008.
صمّم Jeff Bonwick وBill Moore وMatthew Ahrens نظام ZFS في Sun، وأُعلن عنه في 14 September 2004. وقد دمج volume manager وfilesystem في طبقة واحدة، مما يتيح له التحقق من checksum لكل block عند قراءته وإصلاح block تالف من نسخة زائدة. تُنفَّذ عمليات الكتابة بأسلوب copy on write: فلا يُستبدل block في موضعه أبداً. لذلك يترك التعطل أثناء الكتابة البيانات القديمة سليمة بدلاً من ترك filesystem مكتوباً جزئياً. ولا تكلّف snapshots شيئاً تقريباً، لأن snapshot هي ببساطة مجموعة blocks التي لم تلمسها عمليات الكتابة اللاحقة. لم يتضمن الإصدار الأولي من Solaris 10 نظام ZFS. أُدرج في تحديث Solaris 10 6/06 في June 2006.
كانت Zones القطعة الثالثة. تمنح zone واحدة kernel عدة user spaces معزولة، ولكل منها root filesystem وجدول عمليات وإعدادات شبكة خاصة بها. ظهرت Zones في إصدار تجريبي من Solaris 10 في February 2004، ثم أُدرجت في الإصدار الكامل. وكانت FreeBSD قد وصلت إلى الفكرة نفسها في وقت أبكر ومن اتجاه مختلف، ولا تزال المقارنة بين jails وحاويات Docker أوضح طريقة لفهم ماهية العزل على مستوى kernel فعلياً. ولا تزال Zones موجودة في illumos اليوم، وهي الأساس الذي تستند إليه توزيعة واحدة على الأقل أدناه.
لماذا فتحت Sun الشفرة المصدرية لـSolaris
قدّمت Sun ترخيص CDDL (ترخيص التطوير والتوزيع المشترك) إلى OSI (مبادرة المصدر المفتوح) في 1 December 2004، واعتمدته OSI في 14 January 2005. يستند CDDL إلى الإصدار 1.1 من MPL (ترخيص Mozilla العام). يعمل بند الحقوق المتروكة فيه على مستوى الملف الفردي: يجب أن يبقى الملف المصدر المرخّص بـCDDL خاضعاً لـCDDL، لكن يمكن دمج الملف الثنائي المبني منه مع شفرة خاضعة لشروط أخرى.
جاء DTrace أولاً. أُصدرت شفرته المصدرية بموجب CDDL في 25 January 2005، على موقع opensolaris.org الذي أُطلق حديثاً، أي قبل 6 أيام من إصدار Solaris 10 نفسه. وتبعتها معظم شفرات نظام Solaris في 14 June 2005. أُدمج ZFS في فرع التطوير الرئيسي لـSolaris في 31 October 2005، ووصل إلى مطوري OpenSolaris في build 27 في 16 November 2005. وأصبح OpenSolaris أيضاً توزيعة يمكن تثبيتها: وصل الإصدار 2008.05 في 5 May 2008 على هيئة live CD، ووصل الإصدار 2009.06 في 1 June 2009 مع دعم SPARC.
ما زال اختيار الترخيص يحدد ما يمكنك تشغيله اليوم. تصنّف Free Software Foundation ترخيص CDDL على أنه ترخيص للبرمجيات الحرة غير متوافق مع GPL (رخصة GNU العمومية)، وهي حالة عدم توافق موروثة من MPL 1.1. نواة Linux مرخّصة بموجب GPLv2. لذلك يُبنى ZFS on Linux كوحدة نواة خارج شجرة الشفرة المصدرية للنواة بدلاً من دمجه فيها، ولهذا السبب لا يوجد في النواة الرئيسية. إن قرار النشر بموجب أي ترخيص مفتوح هو العامل الأهم في بقية هذه القصة، وتشرح تاريخ تراخيص المصدر المفتوح سبب اتخاذ شركة لهذا القرار أصلاً.
ماذا حدث عندما اشترت Oracle شركة Sun
أعلنت Oracle في 20 April 2009 أنها ستستحوذ على Sun مقابل US$7.4 billion، أو US$5.6 billion بعد خصم النقد والديون لدى Sun. اكتملت الصفقة في 27 January 2010.
في 13 August 2010، جرى تداول مذكرة داخلية في Oracle كتبها Mike Shapiro وBill Nesheim وChris Armes داخل الشركة، ثم تسرّبت إلى الخارج. عرضت المذكرة السياسة الجديدة بوضوح: «لن نوزّع بعد الآن الشيفرة المصدرية لنظام التشغيل Solaris بأكمله في الوقت الفعلي أثناء تطويره، على أساس يومي ليلي». واستبعدت إصدارات المجتمع اللاحقة: «لن نطرح أي توزيعات ثنائية أخرى، مثل الإصدارات الليلية أو الإصدارات التي تصدر كل أسبوعين من الملفات الثنائية لـSolaris، أو توزيعة OpenSolaris 2010.05 أو أي إصدار لاحق». وبدلاً من ذلك، ستتبع إصدارات المصادر المفتوحة المنتجات التي تُطرح: «سنوزّع تحديثات الشيفرة المرخّصة بموجب CDDL أو أي ترخيص آخر للمصادر المفتوحة بعد الإصدارات الكاملة لنظام التشغيل Solaris المخصّص للمؤسسات».
في 23 August 2010، أقرّ مجلس إدارة OpenSolaris قراراً سجّل أن Oracle لم تعيّن مسؤول اتصال بالمجلس، وأنها أعلنت في 13 August انتهاء شراكة التطوير. وصوّت المجلس على إعادة إدارة المجتمع إلى Oracle بموجب النظام الأساسي الذي وضعته Sun في الأصل، ما أدى إلى حلّ المجلس.
أُصدر Oracle Solaris 11 في 9 November 2011. وفي 2 September 2017، سرّحت Oracle معظم فرق Solaris. أُصدر Oracle Solaris 11.4 في 28 August 2018، وما يزال الإصدار الحالي. وبموجب سياسة الدعم مدى الحياة لدى Oracle، يستمر Premier Support للإصدار 11.4 حتى November 2031، ويستمر Extended Support حتى November 2037. لذلك يُعد Solaris منتجاً تجارياً مدعوماً وله تاريخ نهاية معلن، ويعتمد على إصدار ظلّ حالياً منذ 2018.
كيف بدأ illumos ولماذا يُسمّى تفرعاً
في 3 August 2010، أي قبل عشرة أيام من تسرّب المذكرة، أعلن Garrett D'Amore عن illumos. يجمع الاسم بين illum، وهي كلمة لاتينية تعني الضوء، وOS اختصاراً لنظام التشغيل. ويكتب المشروع الاسم ككلمة واحدة، مع كتابة الحرف الأول فقط بحرف كبير.
كان الهدف هو OS/Net، الذي يُكتب عادةً ON: وهو التجميع الذي يضم النواة وأدوات النظام الأساسية. لم يكن OpenSolaris مفتوحاً بالكامل قط. فقد كانت عدة أجزاء تُطرح كملفات ثنائية مغلقة لا يستطيع أحد خارج Sun إعادة بنائها، ومنها شيفرة التدويل داخل مكتبة C (libc_i18n)، ومدير أقفال NFS، وإطار العمل التشفيري، وبرامج تشغيل مثل mpt الخاصة بمهايئات الناقل المضيف من LSI، وبعض شيفرة منصات SPARC. كان استبدال هذه الأجزاء أول مهمة للمشروع، لأن نظام التشغيل الذي لا يمكنك بناؤه من المصدر ليس نظاماً يمكنك صيانته.
كان D'Amore حذراً في استخدام كلمة fork. كتب: «لسنا تفرعاً اليوم، بسبب طريقة تتبّعنا لـOS/Net»، واصفاً مستودعاً تابعاً يتبع شجرة Oracle ويمكنه إعادة التغييرات إلى المستودع الأساسي. بعد عشرة أيام، توقف المستودع الأساسي عن النشر. أصبح illumos تفرعاً بحكم الواقع، لأنه لم يعد هناك شيء يمكن تتبّعه. تجاوزت الشجرة الأساسية، illumos-gate، 23,000 عملية إيداع حتى August 2026، وما زالت تستقبل المزيد منها.
ما التوزيعات التي تأتي من illumos
لا تُثبّت illumos بحد ذاتها. فهي شجرة النواة الأساسية، وتبني التوزيعات نظاماً قابلاً للاستخدام فوقها. وهذه هي التوزيعات التي ما زالت تُصدر إصدارات.
- أُطلِقت OpenIndiana رسمياً في 14 September 2010 في JISC Centre في London، وهي أقرب سلالة إلى توزيعة OpenSolaris القديمة لسطح المكتب والخوادم. وهي إصدار متتابع باسم Hipster، وقد نُشرت اللقطة 2026.04 في 5 May 2026.
- OmniOS توزيعة للخوادم، ويصونها مجتمعها الآن باسم OmniOS CE بعد أن أوقف مورّدها الأصلي العمل عليها.
- SmartOS منصة hypervisor مبنية على zones. أنشأتها Joyent، وأعلنت في April 2022 أن SmartOS وTriton سينتقلان إلى MNX Solutions اعتباراً من 1 May 2022.
- استخدمت NexentaStor الأساس نفسه لأجهزة التخزين، وهي الخط التجاري الذي خرجت منه illumos.
- Tribblix توزيعة صغيرة يصونها Peter Tribble، كما هو موضح أدناه.
- تضع DilOS أدوات إدارة الحزم الخاصة بـDebian فوق نواة illumos.
كيف يبدو تثبيت نظام illumos اليوم
يُعد Tribblix مثالاً مفيداً لأنه صغير، وموثَّق علناً، وما زال يصدر إصدارات جديدة. نُشر Milestone 41 لمعمارية x86 في 5 August 2026، ووصل خط SPARC إلى Milestone 34 في 21 April 2026. يصف المشروع نفسه بأنه يستخدم أسلوباً قديماً مع مكوّنات حديثة، وقد حافظ على تنسيق حزم SVR4 الذي استخدمه Solaris بدلاً من الانتقال إلى نظام حزم أحدث.
يُجرى التثبيت من صورة حية. شغّل النظام من ملف ISO، وسجّل الدخول باسم المستخدم jack باستخدام كلمة المرور jack، ثم انتقل إلى حساب root وشغّل المثبّت على جهاز قرص. هذا هو الأمر الوارد في وثائق التثبيت الرسمية للمشروع:
./live_install.sh -G c1t0d0يكتب الخيار -G تخطيط أقسام EFI (واجهة البرامج الثابتة الموسَّعة)، بينما يحدّد -b تخطيط MBR (سجل الإقلاع الرئيسي) القديم. تتبع أسماء الأقراص اصطلاح Solaris cXtYdZ بدلاً من /dev/sda، وهذا أول ما سيبدو غير مألوف إذا كنت قادماً من Linux. تُسمّى مجموعات البرامج overlays، ويمكن تحديد أسمائها في السطر نفسه:
./live_install.sh -G c1t0d0 develop desktopبعد التثبيت، تكون أداة الحزم هي zap، وهي تعمل على overlays بحيث تُعالج التبعيات نيابةً عنك:
zap refresh
zap install-overlay develop
zap update-overlay -aهذه هي الأوامر التي ينشرها Tribblix. وهي تعمل على أجهزة أو hypervisor تتحكم فيه. لن تجدها خلف صورة بنقرة واحدة في لوحة تحكم VPS، وهذه الفجوة هي الحالة الفعلية لنشر illumos في 2026.
سبب بقاء ZFS وDTrace بعد Solaris
غادر ZFS نظام Solaris تقريباً فور نشر المصدر. نقله Pawel Jakub Dawidek إلى FreeBSD، حيث أصبح جزءاً من النظام منذ FreeBSD 7.0 في 2008. بدأ العمل على ZFS الأصلي لنظام Linux في 2008، وأنتج أول إصدار مستقر له في 2013. بين 2010 و2013، احتفظ illumos بالنسخة المرجعية من مصدر ZFS، لأن شجرة Oracle كانت مغلقة، ولأن كل منفذ آخر كان يحتاج إلى مصدر يسحب منه التغييرات. هذه هي القيمة العملية للتفرع: لولاه، لما امتلكت المنافذ نقطة سلف مشتركة تدمج التغييرات معها.
أُعلن مشروع OpenZFS في 17 September 2013 لتنسيق هذه المنافذ، وكان Matt Ahrens، أحد المؤلفين الأصليين لـZFS، من مؤسسيه. صدر OpenZFS 2.0 في 30 November 2020، وتوضح ملاحظات الإصدار النتيجة مباشرة: "أُعيدت تسمية مشروع ZFS on Linux إلى OpenZFS! أصبح كل من Linux وFreeBSD مدعومين الآن من المستودع نفسه، ما يوفّر جميع ميزات OpenZFS على كلا النظامين." أزال FreeBSD 13.0 نسخته المشتقة من illumos وانتقل إلى تلك الشجرة المشتركة.
اختلف خطا ZFS على مستوى القرص. توقف الخط المفتوح عند إصدار pool 28، وهو آخر إصدار نشرته Sun، وانتقل إلى feature flags مسماة ضمن الإصدار البديل 5000. لذلك يعلن pool عن الميزات التي يستخدمها بدلاً من رقم واحد. واصلت Oracle زيادة أرقام إصداراتها الخاصة خلف مصدر مغلق. لا يمكن استيراد pool أُنشئ بعد الإصدار 28 في أحد الجانبين إلى الجانب الآخر. إذا كنت تختار مكان تشغيله، فراجع كيفية عمل OpenZFS على FreeBSD مقارنةً بـLinux لمعرفة الفروق الفعلية بين المضيفين.
قطع DTrace مسافة أقصر. أصبح قياسياً في FreeBSD بحلول الإصدار 7.1 في January 2009، وأضافته Apple إلى Mac OS X 10.5 Leopard. نشرت Oracle شيفرة نواة DTrace بموجب GPLv2 في August 2017، ولاحظ كثيرون هذا التغيير في February 2018، ما أزال عائق الترخيص أمام Linux. لكنه لم يُدمج قط في النواة الرئيسية. يعتمد التتبع في Linux عملياً على eBPF، ويمنحه bpftrace لغة برمجة قريبة عمداً من D الخاصة بـDTrace.
الفكرة العامة هي النمط نفسه، وليست خاصة بـSolaris. نشرت Sun ZFS وDTrace بموجب ترخيص سمح للآخرين بالاحتفاظ بنسخة ومواصلة العمل عليهما. عندما توقفت الشركة التي موّلت العمل، استمر العمل لأن الشيفرة كانت موجودة بالفعل في أشجار وأيدي أخرى. أما أجزاء Solaris التي لم تُفتح قط، بما فيها الملفات الثنائية المغلقة التي اضطر illumos إلى إعادة كتابتها، فقد انتهت مع الشركة. هذا هو أثر فتح المصدر، وهو الآلية نفسها التي تقف وراء طريقة اشتقاق توزيعات Linux من بعضها.
هل ينبغي تشغيل illumos على VPS؟
بالنسبة إلى الجميع تقريباً، الإجابة هي لا، ولا يُعدّ أي مما سبق توصية بتجربته. يدعم illumos نطاقاً ضيقاً من الأجهزة، لأن مجموعة التعريفات فيه تتكون مما كانت Sun تدعمه، إضافة إلى ما كتبته مجموعة صغيرة من المطورين منذ ذلك الحين. يوفّر مزودو VPS صور Linux وBSD، لذلك يتطلب تثبيت illumos عادةً رفع ISO الخاص بك إلى مزود يسمح بالصور المخصصة، ثم التحقق من تعرف النظام على القرص الافتراضي وأجهزة الشبكة. تأتي البرمجيات من جهات خارجية من مجموعة الحزم الخاصة بالتوزيعة أو من المترجم الذي تبنيه بنفسك.
توجد أسباب فعلية لتشغيله: حمل عمل خاص بـSolaris تحتاج إلى إبقائه قيد التشغيل، أو نشر قائم على zones تديره بالفعل، أو اهتمام بقراءة الشيفرة المصدرية. التوزيعات المذكورة أعلاه تخضع للصيانة، وتجيب قوائمها البريدية عن الأسئلة. وهذا يختلف عن كونه خياراً افتراضياً لخادم جديد.
إذا وصلت إلى هنا بسبب ZFS، فلست بحاجة إلى illumos للحصول عليه. شغّل OpenZFS على Linux أو FreeBSD، حيث يتوفر ضمن الحزم، وتتوفر له الوثائق، ويُستخدم على نطاق واسع. إذا كنت تقيّم جانب BSD من العائلة نفسها لخادم، فإن المقارنة العملية بين Linux وFreeBSD كمنصة خادم توضّح ما يتغير في التشغيل اليومي. يمثّل illumos أصل هذه الأدوات، ومعرفة مصدرها تفسّر كثيراً من سلوكها، بدءاً من سبب اختلاف zpool وzfs تماماً عن بقية منظومة التخزين في Linux.
FAQ
هل illumos هو OpenSolaris نفسه؟
لا. كان OpenSolaris مشروعاً وتوزيعةً تابعةً لـSun، ثم ورثته Oracle وأنهته في 2010. أما illumos فهو مشروع مستقل أُعلن عنه في 3 August 2010، وبُني من آخر مصدر منشور لنواة OpenSolaris، وهو تجميع OS/Net. كانت مهمته الأولى استبدال المكونات الثنائية المغلقة التي كان OpenSolaris يوزعها، ومنها libc_i18n، ومدير أقفال NFS، وإطار العمل التشفيري، وعدة برامج تشغيل. لا يأتي أي كود في illumos من Oracle بعد 2010، لأن Oracle توقفت عن نشره.
لماذا لا يستطيع Linux تضمين ZFS في نواته؟
التراخيص غير متوافقة. يخضع ZFS لترخيص CDDL، وتصنّفه Free Software Foundation على أنه ترخيص للبرمجيات الحرة غير متوافق مع GPL، وهي حالة ورثها ترخيص CDDL من MPL 1.1. تخضع نواة Linux لترخيص GPLv2. والنتيجة العملية هي أن OpenZFS على Linux يُوزَّع على هيئة وحدة نواة خارج شجرة المصدر، ويُبنى عادةً بواسطة DKMS لكل نواة تثبّتها، أو يُوزَّع على هيئة حزمة وحدة مبنية مسبقاً. وهو يعمل جيداً، لكن يجب إعادة بناء الوحدة لكل نواة جديدة، لذلك قد يتأخر عن إصدار نواة جديد من عدة أيام إلى أسابيع.
هل ما زالت Oracle Solaris مدعومة؟
نعم. أُصدرت Oracle Solaris 11.4 في 28 August 2018، وهي الإصدار الحالي. يستمر Premier Support حتى November 2031، ويستمر Extended Support حتى November 2037، وفق سياسة Oracle للدعم طوال دورة الحياة. سرّحت Oracle معظم فرق Solaris في 2 September 2017، ومنذ ذلك الحين تلقّت 11.4 تحديثات لمستودع الدعم بدلاً من إصدار رئيسي جديد. ولا يُنشر المصدر الكامل بالطريقة التي كان OpenSolaris ينشره بها.
هل يمكنني تثبيت illumos على VPS؟
أحياناً، لكن نادراً ما يتوفر ذلك ضمن قائمة صور مزود الخدمة. تحتاج عموماً إلى مزود يتيح لك إرفاق ISO مخصص واستخدام وحدة تحكم، ثم تتحقق من أن برامج تشغيل القرص الافتراضي والشبكة في شجرة illumos تتعرف على أجهزة hypervisor. يُعد OpenIndiana وTribblix نقطتي بداية معتادتين للتثبيت العام، بينما صُمم SmartOS ليكون مضيف hypervisor لا نظاماً ضيفاً. اختبره في آلة افتراضية محلية قبل دفع أي مبلغ.
هل يستحق DTrace التعلم إذا كنت أستخدم Linux فقط؟
ينتقل النموذج رغم أن الأداة نفسها لا تنتقل غالباً. أصدرت Oracle كود نواة DTrace بموجب GPLv2 في August 2017، وتحتفظ بمنفذ لـOracle Linux، لكنه لم يُدمج قط في النواة الرئيسية، ويعتمد تتبع Linux عملياً على eBPF. صُممت اللغة التي تستخدمها bpftrace لتشبه D في DTrace، لذلك تعني probes وpredicates وaggregations الشيء نفسه في كليهما. ويجعل تعلم طريقة التفكير في DTrace نصوص bpftrace البرمجية قابلة للقراءة من المحاولة الأولى.