القائمة الرئيسية

الصفحات

واحدة من أكثر التقنيات صعودا في السنين الأخيرة في عالم توزيعات لينكس هي الـ ImmutableOS وعلى الأغلب ستجد سيرفرات أو أجهزة مستقرة تتعامل معها بطريقة أو بأخرى

 

 واحدة من أكثر التقنيات صعودا في السنين الأخيرة في عالم توزيعات لينكس هي الـ ImmutableOS وعلى الأغلب ستجد سيرفرات أو أجهزة مستقرة تتعامل معها بطريقة أو بأخرى

 

 

واحدة من أكثر التقنيات صعودا في السنين الأخيرة في عالم توزيعات لينكس هي الـ ImmutableOS وعلى الأغلب ستجد سيرفرات أو أجهزة مستقرة تتعامل معها بطريقة أو بأخرى

 

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

بافتراض أن أحد توزيعات الـ Immutable تشتغل على جهازه فالفكرة هنا أن أساس النظام (Base OS) يكون للقراءة فقط (Read-only) ومحمي، ووقت ما تكون هناك حاجة لتحديث النظام ، فبطريقة ما سيتم التأكد من أن التحديث سينزل ككتلة واحدة (Atomic Update)، العملية هذه مُختصر خطواتها كما يلي:

1- التأكد من أن التحديث كامل بدون ملفات ناقصة.
2- التأكد من أن التحديث لا يتعارض مع ملفات النظام الأساسية.
3- لو التحديث سليم، النظام يجهزه في الخلفية وبمجرد ما المستخدم يعمل ريستارت يتم التبديل للنسخة الجديدة.
 
هنا أنت كمستخدم عادي يُهمك أمرين، الأول هو استقرار النظام والثاني سهولة استرجاع النظام، بمعنى لو التحديث فيه مشكلة، فبسهولة يمكن عمل Rollback للنسخة القديمة بضغطة زر من غير فورمات.
فبغض النظر عن التفاصيل التقنية لمفهوم الـ Immutable، أنت كمستخدم أولويتك الأمرين المذكورين سابقا.
من منظور تقني!
في البداية نستعرض بعض المصطلحات لتسهيلها والجميل أن المصطلحات هذه ثابتة في أغلب التوزيعات سواء كنت تستخدم  FedoraSilverblue أو Ubuntu Core أو  NixOS، الاختلاف فقط في مقدمين الخدمات وأسمائهم.
النظام الأساسي (Base OS)
هو قلب نظام التشغيل ويكون مقفول (Read-only)، لا يمكن التعديل عليه أثناء تشغيل النظام لضمان استقراره.
التحديثات الذرية (Atomic Updates)
هي العملية التي تضمن أن التحديث يُطبق ككتلة واحدة، إما ينجح بالكامل ويُنفذ، أو يفشل بالكامل ويُعاد كل شيء كما كان دون ترك النظام في حالة غير مستقرة.
حزم التطبيقات (Flatpak / Snaps)
الطريقة التي نُثبت بها تطبيقات واجهة المستخدم الرسومية (GUI) بحيث تكون معزولة (Sandboxed) عن ملفات النظام الأساسية.
الحاويات (Toolbox / Containers)
بيئة معزولة يمكنك فيها تثبيت أدواتك وكتابة وتعديل الكود دون التأثير على نظام التشغيل الأساسي (Base OS)
مدير النُسخ (ostree)
إن جاز التعبير يُمكن أن نشبهه بالـ Git لكن لنظام التشغيل. هو الأداة التي تحفظ نُسخ النظام وتسمح بالتنقل بينها (Rollback).
نكمل الشرح!
لما نستخدم توزيعات  لينكس العادية هنا عملية تثبيت البرامج والتحديث هي نفسها عملية تعديل ملفات النظام في نفس اللحظة. بينما في توزيعات الـ Immutable، تعديل النظام لا يعني تغيير الملفات الحالية مباشرة، كيف؟
السر في كون التعديل المباشر عملية تؤدي إلى تراكم مخلفات البرامج واختلاط الإعدادات مع مرور الوقت. فمن غير المقبول أن يترك تثبيت أو إزالة برنامج آثارا تبطئ النظام أو تكسر حُزم أخرى ولذلك هذه الأنظمة تعمل فصل تام بين النظام وبين بيانات المستخدم.

وبالتالي هنا عملية التحديث تنقسم لخطوتين:

1- عملية تجهيز (Staging): وفيها مدير الحزم (مثل rpm-ostree) يقوم بتحميل التحديثات وبناء صورة جديدة من النظام في الخلفية، بينما النظام الحالي يشتغل بشكل عادي.
2- عملية التبديل (Reboot & Switch): وفيها يتم تحويل مسار الإقلاع (Boot) للنسخة الجديدة بمجرد عمل ريستارت.
يعني بالمختصر لو حصلت أي مشكلة، عملية الـ Rollback تحصل دائما بشكل سريع لأن النسخة القديمة موجودة بالفعل وتنتظر أن تختارها من الـ Boot Menu.
في الختام!
المفارقة هنا هي استحالة أن يكون نظام التشغيل غير قابل للتغيير بنسبة 100%، وإلا فلن تستطيع حفظ صورة أو تثبيت برنامج، الذكاء في التقنية هذه هو التوازن يعني النظام يُقفل الأساس ليضمن الاستقرار وفي الوقت نفسه يُوفر لك بيئة مرنة (مثل الـ Containers) لتعمل وتعدل بحرية دون المساس بأساس النظام.
على الرغم من طول المنشور، نتمنى أن تكون الصورة قد وصلت ولو بشيء القليل.
هذا ما لدينا اليوم.


Mohamed Elarby
Mohamed Elarby
A tech blog focused on blogging tips, SEO, social media, mobile gadgets, pc tips, how-to guides and general tips and tricks

تعليقات