مقدمة حول توزيعة Fedora Silverblue

مقدمة:

العديد من مستخدمي أنظمة جنو لينكس سمعوا عن Fedora Silverblue. حيث يعتبر نظام ثابتًا (نظام الملفات للقراءة فقط) هذا يعني أن نظام التشغيل الأساسي هو نفسه مثل أي تثبيت آخر لـ Fedora Silverblue.

يهدف تصميم Silverblue غير القابل للتغيير إلى جعله أكثر استقرارًا وأقل عرضة للأخطاء ويسهل اختباره وتطويره. كما أن التصميم الثابت لـ Silverblue يجعلها منصة ممتازة لاستعمال أو تطوير التطبيقات المعبأة في حاويات منفصلة عن النظام الأساسي.

بنية فيدورا Silverblue:

قبل مناقشة كيفية عملها، يجب أن نفهم ماهية Silverblue، والتي لها قواعد مختلفة تمامًا عن فيدورا محطة العمل، على الرغم من كونها جزءًا من نفس العائلة.

الفكرة العامة لـ Silverblue هي الاقتراب من بنية النظام بطريقة أكثر حداثة، لزيادة الأمان والأداء. وبالتالي فإن هذا النوع من التوزيعات يعتمد على مفهومين عامين: قاعدة غير قابلة للتغيير وحاويات.

تأتي هذه القاعدة غير القابلة للتغيير (immutable) من الطريقة التي يُدار بها النظام نفسه. على عكس الإصدار التقليدي من فيدورا، لا تحتوي Silverblue على مجموعة من حزم rpm التي يتم تثبيتها منفصلة. قاعدة النظام هي في الواقع صورة موحدة يتم نسخها على قرص الجهاز أثناء مرحلة التثبيت.

أثناء تحديث النظام يتم تطبيق التصحيحات على نسخة من صورة النظام. يتم وضع هذه التغييرات قيد الانتظار حتى إعادة التشغيل. ثم تحل صورة النظام الجديدة محل النسخة السابقة وتصبح النظام النشط. يتم تنفيذ هذه العمليات بواسطة rpm-ostree.

صورة النظام هي شجرة نظام ملفات للقراءة فقط، وبالتالي لا يمكن تعديلها. بحيث إذا فشلت عملية التحديث لأي سبب كان مثل انقطاع النت أو الكهرباء، فلن يكون هناك أي تأثير على Silverblue حيث يتم تنفيذ العمليات على صورة منفصلة. بالإضافة إلى ذلك ، يمكن العودة بسهولة إلى الحالة السابقة للجهاز من خلال التمهيد باستخدام صورة النظام السابقة.

يمكن أن تمثل هذه النقطة الأخيرة مشكلة اعتمادًا على الاستخدام الذي تريده لـ Silverblue. يتم تقديم هذه التوزيعة في الغالب على أنها تستهدف سطح المكتب وليس الخوادم. حيث كانت تسمى محطة العمل الذرية سابقا. بالنسبة للخوادم التي تركز على حاويات البرامج، يوجد Fedora CoreOS التي تطبق نفس المفاهيم إلى حد كبير، ولكن بنهج أكثر بساطة.

قاعدة النظام الثابتة ليست خاصة بـ Silverblue، ولا حتى وليدة اليوم، حيث تستخدم في أنظمة التشغيل مثل أندرويد و Chrome os.

الجانب الآخر من Silverblue هو الحاويات وهي بشكل عام حزم معزولة عن باقي النظام مع جميع اعتمادياتها، حيث لا يتعين على المطورين القلق بشأن إصدارات المكتبات المستخدمة وبالتالي مشاكل التوافق.

يتطابق كل تثبيت لـ Silverblue مع أي تثبيت آخر من نفس الإصدار. نظام التشغيل الموجود على القرص هو نفسه تمامًا من جهاز إلى آخر ، ولا يتغير أبدًا أثناء استخدامه.

بعض المفاهيم حول Silverblue والتقنيات التي تستخدمها:

OSTree:

يُعرف هذا المشروع الآن باسم libostree، وهو عبارة عن مكتبة مشتركة ومجموعة من أدوات سطر الأوامر التي تجمع بين نموذج “git-like” لتنزيل وإدارة وتحديث صور النظام القابلة للإقلاع.

يختلف OSTree عن git بطريقة ملحوظة للغاية، حيث أن الملفات المستنسخة غير قابلة للتغيير. تتم الترقية عن طريق استنساخ صورة جديدة تمامًا يتم دمجها بعد ذلك مع الصورة الحالية. هذا يضمن بقاء صورة النظام التي هي قيد التشغيل دون تغيير، ولا تصبح النسخة الجديدة التي تمت ترقيتها نشطة حتى يتم إعادة تمهيد النظام واختيارها.

التوزيعات التي تستخدم OSTree ستستخدمها عادةً لتثبيت وصيانة نظام أساسي قابل للتمهيد، كما أنه يسمح بفصل مساحة النظام عن مساحة المستخدم. يمكن للمستخدمين تثبيت حزم إضافية باستخدام فلاتباك على سبيل المثال.

يتم استخدامه من قبل أنظمة تشغيل مثل Endless os , fedora silverblue وتقنيات أخرى مثل فلاتباك.

- rpm-ostree:

هو نظام صورة/حزمة هجين يجمع بين إدارة الحزم rpm وإدارة الصور من OSTree، يستخدم libostree بشكل افتراضي لنسخ نظام التشغيل الأساسي ذريًا، ثم يضيف حزم rpm على شكل طبقة فوق صورة النظام.

معظم حزم rpm من فيدورا يمكن تثبيتها من خلال rpm-ostree. يمكنك استخدام rpm-ostree لتثبيت أي حزمة rpm تريدها، وسيؤدي ذلك إلى إنشاء نظام ملفات جذر جديد قابل للتمهيد. هذا يعني أن نظام ملفات الجذر السابق لا يزال سليماً ، ويمكنك إعادة تشغيل تلك الصورة السابقة إذا كان هناك خطأ ما، وهذه وظيفة مشابهة لالتقاط صور للنظام باستخدام Btrfs أو ZFS أو LVM.

يمكن التفكير في طبقات الحزم على أنها إعادة صياغة لحزم rpm كـ “إضافات لنظام التشغيل” ، يمكن استخدامها للحزم التي لا يمكن وضعها في حاويات بسهولة.

فلاتباك:

هو نظام تحزيم عالمي يمكن من خلاله تثبيت البرامج في أي توزيعة تدعم فلاتباك دون أي تعديل مما يؤدي إلى تبسيط إدارة حزم البرمجيات، مكتوب بلغة C. كما يسمح للمستخدم بتثبيت وتشغيل التطبيقات في بيئة معزولة في مساحة المستخدم (لا يحتاج صلاحيات الجذر). يمكنك متابعة مقالنا: مقدمة حول فلاتباك لمزيد من المعلومات.

تعد تطبيقات فلاتباك الطريقة الأساسية التي يتم بها تثبيت التطبيقات على Silverblue، ويعد وضع حزم rpm على شكل طبقات على النظام الأساسي كحل أخير.

Toolbox:

هي أداة تمكن من عمل حاويات قابلة للتعديل(mutable). مبنية على Podman وتقنيات الحاويات القياسية الأخرى من OCI.

تجعل الطبيعة الثابتة لـ Silverblue من الصعب تثبيت الحزم بصيغة rpm على نظام التشغيل. إنه مصمم لتثبيت تطبيقات رسومية مثل برامج فلاتباك، هذا له العديد من المزايا، بينما تقدم rpm-ostree طريقة للتغلب على هذا ، لكنك تضطر إلى إعادة التشغيل في كل مرة تقوم فيها بتغيير مجموعة الحزم على النظام ، وهذا يتعارض مع قابلية الاستخدام وزيادة إنتاجية العمل في المقام الأول.

يحل Toolbox هذه المشكلة من خلال توفير حاوية قابلة للتغيير بالكامل يمكن من خلالها تثبيت البرامج التي لا توجد على فلاتباك، بحيث من الممكن أن تقوم بإنشاء حاوية بسهولة وبسرعة من خلال تثبيت فيدورا محطة العمل بدون التأثير على نظام التشغيل الأساسي.

كما أنها تتيح لك استخدام الحاويات لجعل التطوير أبسط وأفضل. حيث تسمح لك بوضع كل مشروع تعمل عليه في حاوية منفصلة ولديك مجموعة مختلفة من الأدوات والمكتبات المثبتة له.

يستخدم Toolbox محرك حاوية Podman الذي يهدف إلى أن يكون بديلاً عن دوكر يمكن استخدامه بدون الحاجة لصلاحيات الجذر.

لا تتطلب هذه الأداة استخدام نظام قائم على OSTree. فهو يعمل بشكل جيد على فيدورا محطة العمل.

ميزات فيدورا Silverblue:

من بين خصائص هذا النظام البارزة والتي ذكرنا معضمها أعلى المقال يمكن أن نذكر ما يلي:

  • تصميم ثابت لمزيد من الاستقرار، وأقل عرضة للأخطاء، وبالتالي يسهل اختبارها وتطويرها.

  • منصة ممتازة لتطبيقات الحاويات بالإضافة إلى تطوير البرامج المستندة إليها.

  • فصل التطبيقات عن النظام المضيف ، مما يؤدي إلى تحسين الاستقرار.

  • خلافا لأنظمة جنو/لينكس الأخرى ، لا يمكنك ترقية الحزم الفردية واحدة تلو الأخرى. إنما تقوم بترقية صورة نظام التشغيل بالكامل، بالإضافة إلى ذلك هذه الترقيات ذرية.

  • إمكانية العودة إلى إصدار سابق في حال مواجهة مشاكل في الإصدار الأحدث.

خاتمة:

نظام غير قابل للتغيير يتم فيه استخدام الحاويات كطريقة أساسية لنشر التطبيقات، هذا هو توجه Silverblue، كما لا يتردد مطورو فيدورا في الإعلان أن هذا البديل يمثل مستقبل توزيعات جنو/لينكس، والذي سيعوض فيدورا محطة العمل مستقبلا.

ما رأيك في هذه التوزيعة وعن فكرة جعل الحاويات المصدر الأساسي لتوزيع البرامج.

هذا الموضوع فائز بجائزة أسس للكتابة

هذا الموضوع فائز بجائزة أسس للكتابة وهي اول جائزة عربية مخصصة للكتابة عن البرمجيات الحرة والمفتوحة.

الموضوع متوفر على مدونة gnulinuxsa هنا:

10 إعجابات

رأيي انها للإستخدام لغرض معين فقط لانها تضرب فكرة الحرية في التصرف في النظام في الصميم .
فكرة أنها بديل لتوزيعات لينكس أراها فكرة شطح أصحابها كثيرا.

إعجابَين (2)

هي تركز بالأساس على الحاويات وهو توجه فيدورا حاليا وقد تصبح فيدورا محطة العمل من الماضي في المستقبل.

حقيقة هي توزيعة دسمة من حيث التقنيات التي تستعملها لكني ما زلت أفضل التوزيعات التقليدية.

إعجابَين (2)

ذكرتني بأندرويد، هي مشكلة حقا أن تجد نفسك تتعامل مع صدفة فارغة.

إعجابَين (2)

@saleh_oukiki
أرجو أن يكون الموضوع قد نال إعجابك رغم أنها مقدمة تعريفية سأحاول بإذن الله تعالى كتابة موضوع آخر حول كيفية التعامل مع النظام ostree, rpm-ostree, toolbx.

هدفها الثبات.
فاشهر الانظمة في العالم تستخدم نفس البنية, اندرويد و iOS وماك و ChromeOS.
تجعل كل شيء معزول عن النظام الاساسي. بحيث لو حصلت اي مشكله تستطيع ان ترجع الى اصدار قديم بدون التاثير على البرمجيات.
والتحديثات سهله وتلقائيه ليس لها علاقه ببرامج المستخدمين.
هذه الفكره طبقت في السيرفر مع حاويات دوكر وكانت لها نتائج رهيبه. ونفس الشيء سيكون في المكتبي.
لا يوجد فرق في الحريه فهي لينكس في النهايه لا فرق.

وايضا اذا لديك حزم عاديه تريد تثبيتها فتستخدم distrobox او toolbx وتعمل توزيعه داخل حاويه تعمل كل ماتريد دون تعديل النظام الاساسي. وفي حاله distrobox حتى تشغل تطبيقات gui ايضا

إعجابَين (2)

المشكلة ليست في الأشهر، فهل أندرويد وماك و chrome os يعطيك نفس القدرة على التخصيص التي يعطيها لك جنو/لينكس فإذا أصبح مثلهم فماهي الفائدة إذا.

يمكن القيام بهذا الأمر عن طريق btrfs على سبيل المثال.

الخوادم ليست هي نفسها سطح المكتب إن كنت سأشغل الخادم وأتركه فحاسوبي الشخصي أستعمله كل يوم.

لست ضد فكرة silverblue كتوزيعة لكن أنا ضد تحول توزيعات جنو/لينكس في هذا الاتجاه

إعجابَين (2)

لا أستطيع تقبل الفكرة على إطلاقها إلا في أغراض محدده فقط.

الصراحه لا ارى فرق في هذا سواء مع silverblue او بدونه. فتخصيص الواجهات و تغيير الايقونات وغيره كله سيكون ممكن. مجلد home الخاص بك سيبقى مثل ماهو تماما.

ما تفعله silverblue هو ضمان عمل النظام 100% وعدم حصول اي تضارب تحزيم او تضارب تحديثات.
تعطيك ضمانه 100%, وتريح المستخدم من اي مشاكل. بالاضافه الى تحسين الامان بحيث الان اصبح كل شيء فعليا معزول.

محدود وليس بنفس قوه silverblue.
هو ياخذ صوره من نظامك الخاص وليس صوره من النظام الاصلي.
انت مازلت لديك مشاكل التحزيم, تضارب الحزم مثلا و ان التعديل على النظام اذا حصل واخر snapshot قديم ستضيع الملفات.

في silverblue. هو يعزل النظام وبنيته التحتيه, التي صدقني لا انا ولا انت نستخدمها كثير غير الحزم العاديه, عن الملفات الهامه للمستخدم.
في حاله تعطل النظام بسبب تحديثات او تضارب حزم او غيرة. لا يفرق معك ارجع للصوره الي قبلها فملفاتك مفصوله عنها.

صدقني خاصه في لينكس تشابه بين السيرفر والمكتبي جدا كبير. فهم نفس الشيء, الفرق تثبيت حزم رسوميه لا غير.

ما تفعله silverblue هو نفس ما فعلته توزيعات مركزه على الحاويات مثل Flatcar Linux و Fedora Core os.

الفرق ان الحاويات قبل كانت محدوده لخدمات سيرفر. اما الان فالحاويات موجوده لكل شيء. برامج عاديه وانظمه وغيره.

دائما سيكون هناك بديل. انظر ما حصل مع systemD.
مع انه حل الكثير من المشاكل و فك ازمه في التطوير بين التوزيعات, الا انه مازالت هناك توزيعات لا تستخدمة.

النقطه الان في تبني التوزيعات العاديه هذا المنطق, وهذا يعتمد على نجاح الفكرة.
على المكتبي تحتاج تطور كبيير في flatpak, مازال هناك حدود عليه, انظر مثلا مستودع متصفح كروم و بريف التجريبي على flathub. مليئ بالمشاكل الصغيرة. لكن اتوقع سيحلوها كما حلو مشكله proton و جعلو ستيم flatpak بديل كامل.

لديك استخدامات متقدمه مثل VScode, مازال محدود داخل فلاتباك و لا يمكنه وصول ل shell النظام.

ايضا دعم برمجيات اكثر. وقد يضرهم ان المزعج snap موجود. فsnap لا يتبنى نفس الافكار و طريقة عمله مختلفه, لا اعلم كميه توافقها مع read-only system.
هل ubuntu core قريب لفكره sliverblue/core OS ?

بالنسبه لنسخ السيرفرات من هذه التوزيعات. فهو شيء ممكن بلا شك, حاليا التوزيعات التي تتبنى الحاويات بشكل اساسي هي Fedora Core OS و OpenSUSE microOS.
الاولى تثبيتها معقد, الثانيه توزيعه للاسف دعمها ضعيف والحزم فيها قديمه لو تريد تثبيت دوكر من داخل مستودعاتهم مثلا.
للمعلوميه ايضا microOS يعملون على دعم المكتبي.

إعجابَين (2)

فكرة جيدة وقد نرى المزيد من التبني لها في المستقبل لكن قد لا تناسب جميع الإستخدامات.

على الأغلب لن استخدم هذا المفهوم مطلقا, لقطات النظام كافي ومناسب أكثر … ربما افكر بهذا الشكل بسبب جهلي بهذه التقنية الجديدة ؟ .

هذا جيد بلا ريب خاصة للبرامج الإحتكارية أما الحرة لا يوجد سبب عدى المرونة وتضارب الإعتماديات ؟, وهذا سيء أيضا لأن تضارب الإعتماديات بسبب قدم الإصدار أو لأي سبب أخر يجبر المجتمع أو المطور على تحديث شفرة البرنامج لحل علة التوافق أيا كانت, وعند استخدام الحاوية لا يحدث هذا السبب.

أجد فكرة عزل برنامج حر لا يتصل بالشبكة أمر غريب. في النهاية هو برنامج حر لا داعي للقلق, أنا أستخدم Flatpak غالبا, ليس بسبب العزل (بالنسبة للبرمجيات الحرة) ولكن لمرونة التثبيت .

على أي حال فكرة الحاويات جميله بشكل عام.

3 إعجابات