Qsarpress

ما في ذلك السياسة والأعمال والتكنولوجيا والحياة والرأي والرياضة.

نظام Linux مصمم للأجهزة الافتراضية • التسجيل

نظام Linux مصمم للأجهزة الافتراضية • التسجيل

فوديم 2024 ما مدى صعوبة خنق نظام Linux إذا كنت تعلم أنه لن يعمل على المعدن العاري؟ أبعد من أي بائع توزيع نعرفه حاول الذهاب.

المادة الرابعة بناء على هذه المقالة ريج محاضرة لمكتب البرمجيات الحرة والمفتوحة المصدر في FOSDEM 2024. تحدث الجزء الأول عن مشكلة الانتفاخ البرمجي، والثاني عن تاريخ يونكس، والثالث عما فعله مخترعو يونكس بعد ذلك: المشروع 9.

في جزء سابق من المحادثة، شرحت سبب عدم تسمية الخطة 9 باسم يونكس: لأن تصميمها المختلف تمامًا جعلها غير متوافقة مع يونكس. لقد اقترحت كيف يمكن أن يكون أحفادها الحديثون مثل 9Front منتهي متوافق ليس فقط مع Unix بشكل عام، ولكن مع Linux بشكل خاص. ليس من خلال زيادتها بطبقات التوافق أو المحاكيات، ولكن باستخدام أجهزة microVM.

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

أحد جوانب هذه المقالة التي قد يهتم بها القراء هو اختراق توزيعات Linux، وليس برمجة kernel أو برنامج Hypervisor أو أي أشياء متطرفة. هذا القسم مفتوح جدًا لأي شخص قام بتخصيص توزيعة Linux الخاصة به أو قام بإنشاء واحدة من البداية.

مبدأ التصميم الذي يوحد Unix وLinux وBSTs وبالفعل Project 9 هو استخدام نظام الملفات كطريقة أساسية ليس فقط للتخزين ولكن أيضًا للتواصل بين البرامج والأنظمة الفرعية. يأخذ المشروع 9 هذا أبعد من Unix، لذا فهو يستحق التركيز عليه هنا. وهذا يختلف عن أجهزة microVM الموجودة مثل Amazon's Fireworks.

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

READ  Samsung: لا تنتهي مسؤوليتنا عن حماية المستخدمين بمجرد أن يصبح الجهاز في أيديهم

الإلهام: نظام تشغيل مصمم للتشغيل في جهاز افتراضي

وبدلاً من ذلك، نقترح نموذجًا مفاهيميًا مختلفًا: وهو النموذج الذي استخدمته شركة IBM عندما اخترعت برامج Hypervisor في منتصف الستينيات. كان الشيء الجديد المثير آنذاك هو فكرة الحوسبة التفاعلية: الأشخاص الذين يعملون في المحطات الطرفية، بدلاً من تقديم البطاقات المثقوبة. أنشأ معهد ماساتشوستس للتكنولوجيا نظام تشغيل جديدًا للقيام بذلك: Multix، والذي يُذكر الآن على أنه مصدر إلهام لنظام Unix. توصلت شركة IBM إلى نهج مختلف، يعتمد على استثماراتها الحالية في أجهزة الكمبيوتر المركزية.

ما تقوم IBM بتعيينه لكل مستخدم في الجهاز الطرفي لجلسته التفاعلية الفردية هو أجهزة افتراضية، تحتوي كل منها على مثيل خاص بها من نظام تشغيل المستخدم النهائي المخصص لهذا الفرد. بدلاً من إعادة الكتابة التفاعلية لأنظمة تشغيل حاسبها المركزي الكبيرة والمعقدة القائمة على الكتلة، قامت شركة IBM بإنشاء شريحة زمنية للحاسب المركزي بين العديد من المثيلات الأصغر لنظام تشغيل متخصص. نظام مراقبة المحادثة، كل منها يعمل في جلسة مستقلة خاصة به. على الرغم من أن نظام إدارة المحتوى (CMS) تم تصميمه في الأصل ليعمل على المعدن، إلا أنه تم شحن الإصدارات كجزء منه آي بي إم سي بي/CMS مخصص للتشغيل داخل VM.

كتجربة فكرية، دعونا الآن نفكر في الشكل الذي سيبدو عليه نظام Linux إذا تم تصميمه مع أخذ ذلك في الاعتبار. إنه دائمًا ضيف فقط، ويعمل ضمن نظام التشغيل الأصلي. (لجعل الحياة أسهل، يمكن تقييد أي إصدار معين بمشرف افتراضي مضيف.)

لينكس بلا رأس وبدون أقراص

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

ويمكن القيام بالكثير من هذا باستخدام الأدوات الموجودة. على سبيل المثال، حتى في الثمانينيات، كان من الشائع تركيب أجهزة يونكس متعددة كصناديق شمسية. /home على NFS. لا يزال من الممكن لينكس اليوم على الرغم من أنها أقل من ذلك الآن. يمكنك أيضًا التحميل الدليل الجذر على NFSأن يكون لديك جهاز افتراضي بدون أقراص خاصة به.

READ  يظهر برنامج Joker الضار مرة أخرى في تطبيق تم تنزيله أكثر من 500000 مرة

على مستوى أعمق من NFS، يتفاعل Project 9 مع أنظمة الملفات الموجودة على القرص بروتوكول يسمى 9p. 9p مدعوم بالفعل بشكل مباشر في Linux kernel v9fs. في Project 9، يعد 9p جزءًا أساسيًا من النواة، ولكن في Linux، يعد وسيلة لتركيب أنظمة ملفات عن بعد عبر الشبكة – ولكن النقطة المهمة هي أنها موجودة بالفعل. ضمن QEMU، الأجهزة الافتراضية الضيف الوصول إلى الدلائل على المضيف خلال الإصدار 9fs، يتضمن ذلك الاحتفاظ بالدليل الجذر بأكمله في مشاركة الملف أعلى من 9p. وثائق كيمو تصف هذه الطريقة كيفية تثبيت دبيان.

لا يعني عدم وجود أقراص ثابتة افتراضية عدم وجود تنسيقات أقراص أو تخزين لوحدات التخزين. لا يتطلب النواة ext4 أو Btrfs أو ZFS أو أي نظام ملفات آخر. إذا كنت تعرف التكوين الدقيق للجهاز الافتراضي الذي سيعمل عليه نظام التشغيل الخاص بك في الوقت الذي تقوم فيه بإنشاء نظام التشغيل، فيمكنك تجميع برامج التشغيل اللازمة لهذا الجهاز الافتراضي ولا شيء آخر، مما يجعل من الممكن ليس فقط بناء نواة مدمجة، ولكن أيضًا تسليمها. مع initrd أو initramfs. هناك بعض التقنية السابقة بهذا التنسيق أجهزة افتراضية بدون أقراص المعالج، الذي يغطي تشغيل الأجهزة الافتراضية من المضيف iPXEحتى أنه يحل محل أداة تحميل التشغيل GRUB.

وبصرف النظر عن التفاعلات مع برنامج Hypervisor المضيف، فإن توزيع الضيف المخصص لا يتطلب برامج تشغيل للأجهزة. virtio السائقين. لا توجد حاجة إلى شبكات أخرى أو أي شيء آخر، ولا توجد أجهزة إدخال/إخراج. لا تحتاج إلى دعم وحدة تحكم أو مخزن مؤقت للإطارات لأنه لن يكون هناك واحد: أجهزة microVM هذه تكون دائمًا مقطوعة الرأس ويمكنها التحدث إلى المضيف. وحدة التحكم الفاضلة. يمكّن خادم X11 الذي يعمل على المضيف التطبيقات من الحصول على واجهات المستخدم الرسومية بالألوان والصوت. وايلاند لديها WayPipe.

خذ برامج الجيل السابق وقم بدمجها

لماذا؟

حسنًا، الأمر ليس كذلك فقط حول المشروع 9. سيساعد هذا أي شخص يستخدم Linux في بنية تحتية افتراضية. بصرف النظر عن Android وبضعة ملايين من أجهزة Chromebook، أصبح Linux المعدني الآن مكانًا صغيرًا. تعمل معظم خوادم Linux على أحد برامج Hypervisor، حتى لو تم توفيرها بواسطة توزيعة Linux أخرى.

READ  جهاز MacBook Air الذي تبلغ تكلفته 1199 دولارًا أمريكيًا يقطع الكثير من الزوايا

(وهي في صعود. تحركات Broadcom منذ استحواذها على VMware، بما في ذلك إنهاء الإصدار المجاني، أعادت إلى الأذهان أخطاء Citrix المعترف بها، مما أدى إلى XCP-ng، الذي ازدهر بسرعة. Linux على Linux آخذ في الارتفاع.)

المفتاح لهذا المسعى هو أن التوزيعة التي تستهدف برنامج Hypervisor معين يمكن أن تكون صغيرة وبسيطة للغاية. لا داعي لمحاولة تعميم الأمر: يمكنك الحصول على إصدار واحد لـ KVM، وإصدار واحد لـ Xen، وإصدار واحد لـ VMX، أيًا كان ما يستخدمه هذا المطور. حتى الإصدارات المخصصة لـ Hyper-V أو WSL2: إذا كانت هذه هي المشكلة، فلا بأس.

فوق الخطة 9، يمكن لأجهزة MicroVM الرأسية وبدون أقراص جلب تطبيقات Linux إلى الخطة 9 دون الحاجة إلى المحاكاة. إذا كان VM يحتوي على كل شيء مباشرة على نظام ملفات نظام التشغيل الأصلي بدون أقراص افتراضية، فيمكن لثنائيات Linux الخاصة بوحدة التحكم التواصل مع ثنائيات Plan 9 عبر الملفات تمامًا مثل أي برنامج آخر.

حتى لو لم يكن أحد مهتمًا في النهاية ببناء نظام تشغيل من الجيل التالي على Project 9، فإن نفس نمط MicroVM سيجلب توافق تطبيقات Linux مع أنظمة تشغيل الجيل التالي الأخرى، مما يحررها من عبء التوافق مع الإصدارات السابقة. انتقل إلى الموقع الجديد، ولكن استمر في تشغيل التطبيقات الهامة حتى يتم نقلها.

لقد أصبح Linux ناضجًا الآن. لذلك، في هذا الصدد، BSDs الرئيسية، وWindows وmacOS. لم يغيروها بشكل جذري بعد، وهم يتراجعون بشكل مطرد عن دعم الأجهزة القديمة… لكن الكم الهائل من التعليمات البرمجية المتضمنة يمنع الابتكار الحقيقي.

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