إجراء تغييرات في Thinux
تأتي مجموعات منتجاتنا Neo وMicro مثبتًا عليها مسبقًا نظام التشغيل Thinux Embedded Linux الخاص بنا.
يعتمد Thinux على Ubuntu Linux. في وقت كتابة هذا النص، يعتمد على Ubuntu 20.04.4 LTS في Micro 5 وUbuntu 22.04.1 في Micro 6. ومع ذلك، يختلف Thinux عن Ubuntu في بعض الجوانب المهمة. أولاً، نُضمّن برامج تشغيل خاصة بالأجهزة لدينا غير متوفرة في المستودعات الرسمية. كما نُضمّن خدمات نظامية تحمي الأجهزة من التلف. قد يبدو هذا غير معتاد للأشخاص المعتادين على أجهزة الكمبيوتر المزودة بـ BIOS. تتمتع معالجات Intel وAMD بحماية حرارية مدمجة: فهي تقلل سرعة الساعة وتُغلق بعض الأنوية عند اقترابها من الحرارة المفرطة. في أسوأ الحالات، يقوم المعالج وBIOS بإيقاف تشغيل الكمبيوتر فجأة لمنع التلف. لا توفر معالجات ARM هذا المستوى من الحماية حتى الآن. لا يبقى محمّل الإقلاع U-Boot المستخدم في أنظمة ARM في الذاكرة بعد نقل التحكم إلى Linux، لذلك لا يحمي مكونات الأجهزة من الحرارة أو غیرها من الأضرار في الخلفية.
لهذا السبب، عندما يطلب منا العملاء تعطيل أو استبدال Thinux على منتجاتنا المبنية على ARM، نُبلغهم بأن هذا سيُبطل ضمان الأجهزة. هذه السياسة مشابهة لسياسة مصنّعي هواتف Android فيما يتعلق بإلغاء قفل محمّلات الإقلاع. للحصول على كلمة مرور الجذر للنظام، يجب عليك الاتصال بنا أو مراسلتنا. إذا كان جهازك مبنياً على ARM، يجب علينا تعليمه كملغى الضمان قبل أن نمنحك كلمة المرور.
الفرق الرئيسي بين Thinux وUbuntu هو أن Thinux يُركّب نظام ملفاته الجذري للقراءة فقط. لذلك لا يمكنك استخدام apt والأوامر الأخرى لإجراء تغييرات على نظام التشغيل. إذا كانت لديك كلمة مرور الجذر، يمكنك إجراء تغييرات على /etc و/var. تقوم العمليات التي تعمل بصلاحيات الجذر أيضاً بإجراء تغييرات على /etc و/var، حتى عندما لا يملك المستخدم كلمة مرور الجذر. يخزّن Thinux هذه التغييرات في قسم /overlay، وليس في قسم /. يمكنك قراءة المزيد عن نظام ملفات overlay على kernel.org.
لإجراء تغييرات على /، يجب أولاً إعادة تركيب نظام ملفات / في وضع القراءة والكتابة. شغّل الأوامر التالية في الطرفية:
su - # enter the root password when prompted
umount -l /etc
umount -l /var
mount -o rw,remount /
يمكنك الآن إجراء تغييرات على /. عند الانتهاء، أعد تشغيل النظام لإعادة نظام الملفات الجذري إلى وضع القراءة فقط (ro).
إذا لم تعد ترغب في استخدام ميزة الجذر للقراءة فقط في Thinux، يمكنك إيقاف تشغيلها بشكل دائم بإجراء التغييرات التالية على /etc/fstab. أولاً، ألغِ تركيب /etc بشكل مؤجل كما هو موضح في كتلة الكود السابقة. يبدو ملف /etc/fstab النموذجي كما يلي:
proc /proc proc defaults 0 0
LABEL=thinux / ext4 defaults,ro,noatime 0 1
LABEL=data /overlay data defaults,noatime 0 2
mount_over /etc over defaults,x-systemd.requires-mounts-for=/overlay 0 0
mount_over /var over defaults,x-systemd.requires-mounts-for=/overlay 0 0
mount_over /home over defaults,x-systemd.requires-mounts-for=/overlay 0 0
mount_over /tmp over defaults,x-systemd.requires-mounts-for=/overlay 0 0
/overlay/swapfile swap swap pri=-1,x-systemd.requires-mounts-for=/overlay 0 0
غيّره ليصبح كما يلي:
proc /proc proc defaults 0 0
LABEL=thinux / ext4 defaults,rw,noatime 0 1
LABEL=data /overlay data defaults,noatime 0 2
#mount_over /etc over defaults,x-systemd.requires-mounts-for=/overlay 0 0
#mount_over /var over defaults,x-systemd.requires-mounts-for=/overlay 0 0
mount_over /home over defaults,x-systemd.requires-mounts-for=/overlay 0 0
mount_over /tmp over defaults,x-systemd.requires-mounts-for=/overlay 0 0
/overlay/swapfile swap swap pri=-1,x-systemd.requires-mounts-for=/overlay 0 0
نستخدم نظام ملفات جذرياً للقراءة فقط للأسباب التالية. أكثر من 99% من عملائنا لا يحتاجون إلى تثبيت برامج جديدة على أجهزتهم. يستخدمون أجهزتهم كعملاء نحيفين أو حواسيب سحابية، ويؤدون معظم أعمالهم في عميل RDP أو متصفح الويب. البرامج المثبتة مسبقاً، مثل LibreOffice، كافية لعملهم. بدلاً من تحديث الحزم الفردية باستخدام apt، نقوم بترقية نظام الملفات الجذري بالكامل دفعة واحدة، كصورة ثنائية واحدة. تُحدَّث أنظمة التشغيل المدمجة الأخرى، مثل Android وiOS، بطريقة مشابهة (رغم أن لديها تطبيقات وThinux لا يملك ذلك). يتيح لنا هذا اختبار كل تحديث بدقة على أجهزتنا الخاصة قبل إصداره، وضمان أن جميع التغييرات والتطبيقات المحدّثة في التحديث تعمل معاً بشكل جيد. كما يمنع جهاز المستخدم من أن يصبح غير قابل للاستخدام عند انقطاع ترقية apt أو dpkg، حيث يتعامل نظام التحديث لدينا مع انقطاع الطاقة المفاجئ بأمان.