إصدار MirageOS 4.0 ، وهو نظام أساسي لتشغيل التطبيقات فوق برنامج Hypervisor

بعد عام ونصف من التطوير ، تم نشر إصدار مشروع MirageOS 4.0 ، والذي يسمح لك بإنشاء أنظمة تشغيل لتطبيق واحد ، حيث يتم تسليم التطبيق باعتباره "unikernel" مكتفي ذاتيًا يمكن تشغيله بدون استخدام أنظمة التشغيل ونواة نظام تشغيل منفصلة وأي طبقات. لغة تطوير التطبيق هي OCaml. يتم توزيع كود المشروع بموجب ترخيص ISC مجاني.

يتم تنفيذ جميع الوظائف ذات المستوى المنخفض الأصلية لنظام التشغيل كمكتبة ملحقة بالتطبيق. يمكن تطوير التطبيق على أي نظام تشغيل ثم تجميعه في نواة متخصصة (مفهوم unikernel) يمكن تشغيلها مباشرة فوق برامج Hypervors Xen و KVM و BHyve و VMM (OpenBSD) ، على الأنظمة الأساسية للجوّال ، كعملية في POSIX- بيئة متوافقة ، أو في بيئات سحابة Amazon Elastic Compute Cloud و Google Compute Engine.

لا تحتوي البيئة التي تم إنشاؤها على أي شيء غير ضروري وتتفاعل مباشرة مع برنامج Hypervisor بدون برامج تشغيل وطبقات النظام ، مما يسمح بتحقيق خفض كبير في التكاليف العامة وزيادة الأمان. ينقسم العمل مع MirageOS إلى ثلاث مراحل: إعداد التكوين مع تحديد حزم OPAM المستخدمة في البيئة ، وبناء البيئة ، وإطلاق البيئة. تم إنشاء وقت التشغيل لتوفير العمل على برامج Hypervisor على أساس Solo5 kernel.

على الرغم من حقيقة أن التطبيقات والمكتبات يتم تشكيلها بلغة OCaml عالية المستوى ، فإن البيئات الناتجة تظهر أداءً جيدًا إلى حد ما وأقل حجم (على سبيل المثال ، يستغرق خادم DNS 200 كيلو بايت فقط). يتم أيضًا تبسيط صيانة البيئات ، لأنه إذا كنت بحاجة إلى تحديث البرنامج أو تغيير التكوين ، فهذا يكفي لإنشاء بيئة جديدة وتشغيلها. يتم دعم عدة مئات من مكتبات OCaml لإجراء عمليات الشبكة (DNS و SSH و OpenFlow و HTTP و XMPP و Matrix و OpenVPN وما إلى ذلك) ، والعمل مع المستودعات وتوفير معالجة بيانات متوازية.

التحسينات الرئيسية:

  • تم تغيير عملية تجميع المشاريع و unikernel. بدلاً من نظام بناء ocamlbuild المستخدم سابقًا ، يتم استخدام مجموعة أدوات الكثبان الرملية والمستودعات المحلية (monorepo). لإنشاء مثل هذه المستودعات ، تمت إضافة أداة مساعدة جديدة opam-monorepo ، مما سمح بفصل إدارة الحزم عن البناء من المصدر. تقوم الأداة المساعدة opam-monorepo بعمل إنشاء ملفات قفل للتبعيات المتعلقة بالمشروع ، وتنزيل واستخراج رمز التبعية ، وإعداد البيئة لاستخدام نظام إنشاء الكثبان الرملية. يتم البناء نفسه بواسطة مجموعة أدوات الكثبان الرملية.
  • يتم توفير عملية بناء قابلة للتكرار. يوفر استخدام ملفات القفل ارتباطًا بإصدارات التبعية ويسمح لك بتكرار عملية الإنشاء بالكامل في أي وقت باستخدام نفس الرمز.
  • تم تنفيذ عملية تجميع متقاطع جديدة ومن الممكن إجراء ترجمة مشتركة لجميع الأنظمة الأساسية المستهدفة المدعومة من بيئة بناء مشتركة واحدة ، حيث يتم ، من بين أمور أخرى ، تجميع التبعيات والمكتبات ذات الارتباطات C دون الحاجة إلى إضافة هذه الارتباطات بالحزمة الرئيسية. يتم تنظيم التجميع المتقاطع باستخدام مساحات العمل التي يوفرها نظام بناء الكثبان الرملية.
  • تمت إضافة دعم للمنصات المستهدفة الجديدة ، على سبيل المثال ، تم توفير القدرة التجريبية لبناء تطبيقات قائمة بذاتها للعمل على لوحات Raspberry Pi 4.
  • تم العمل على دمج أجزاء من MirageOS في النظم البيئية المتعلقة بتطوير OCaml لتبسيط تطبيقات البناء في شكل unikernel. تم نقل العديد من حزم MirageOS إلى نظام إنشاء الكثبان الرملية. تتوفر الأداة المساعدة opam-monorepo للتثبيت مع مدير حزمة opam ويمكن استخدامها في المشاريع التي تستخدم نظام إنشاء الكثبان الرملية. للحفاظ على التصحيحات التي تحل المشكلات المتعلقة ببناء التبعيات في الكثبان الرملية ، تم إنشاء مستودعين Dune-universe / opam-overays و dune-universe / mirage-opam-overays ، والتي يتم تمكينها افتراضيًا عند استخدام الأداة المساعدة mirage CLI.
  • تكامل مبسط لـ MirageOS مع مكتبات C و Rust.
  • تم اقتراح وقت تشغيل OCaml جديد للاستغناء عن libc (خالٍ من libc).
  • توفير القدرة على استخدام خدمة Merlin للتكامل مع بيئات التطوير المتكاملة القياسية.

المصدر: opennet.ru

إضافة تعليق