انتشار MirageOS 4.0، پلتفرمی برای اجرای برنامه‌ها در بالای Hypervisor

پس از یک سال و نیم توسعه، انتشار پروژه MirageOS 4.0 منتشر شده است که امکان ایجاد سیستم عامل برای یک برنامه را فراهم می کند، که در آن برنامه به عنوان یک "unikernel" مستقل ارائه می شود، که قادر به اجرا بدون آن است. استفاده از سیستم عامل، هسته سیستم عامل مجزا و هر لایه. زبان Ocaml برای توسعه برنامه ها استفاده می شود. کد پروژه تحت مجوز رایگان ISC توزیع می شود.

تمام عملکردهای سطح پایین ذاتی سیستم عامل در قالب یک کتابخانه که به برنامه متصل شده است پیاده سازی می شود. این برنامه را می توان بر روی هر سیستم عاملی توسعه داد، پس از آن به یک هسته تخصصی (مفهوم unikernel) کامپایل می شود، که می تواند مستقیماً در بالای هایپروایزرهای Xen، KVM، BHyve و VMM (OpenBSD)، در بالای پلتفرم های تلفن همراه، اجرا شود. شکلی از یک فرآیند در یک محیط سازگار با POSIX یا در محیط های ابری Amazon Elastic Compute Cloud و Google Compute Engine.

محیط تولید شده حاوی هیچ چیز اضافی نیست و به طور مستقیم با هایپروایزر بدون درایور یا لایه های سیستم تعامل دارد، که امکان کاهش قابل توجه هزینه های سربار و افزایش امنیت را فراهم می کند. کار با MirageOS به سه مرحله خلاصه می شود: آماده سازی پیکربندی با تعریف بسته های OPAM مورد استفاده در محیط، مونتاژ محیط و راه اندازی محیط. برای اطمینان از عملکرد بالای هایپروایزرها، Runtime بر اساس هسته Solo5 ساخته شده است.

علیرغم این واقعیت که برنامه ها و کتابخانه ها به زبان OCaml سطح بالا ایجاد می شوند، محیط های حاصل عملکرد نسبتاً خوب و حداقل اندازه را نشان می دهند (به عنوان مثال، سرور DNS تنها 200 کیلوبایت اشغال می کند). نگهداری از محیط ها نیز ساده شده است، زیرا در صورت نیاز به به روز رسانی برنامه یا تغییر پیکربندی، ایجاد و راه اندازی یک محیط جدید کافی است. چندین صد کتابخانه به زبان OCaml برای انجام عملیات شبکه (DNS، SSH، OpenFlow، HTTP، XMPP، Matrix، OpenVPN و غیره)، کار با ذخیره سازی و ارائه پردازش موازی داده پشتیبانی می شوند.

پیشرفت های کلیدی:

  • روند کامپایل پروژه ها و یونیکرنل تغییر کرده است. به جای سیستم مونتاژ ocamlbuild که قبلا استفاده شده بود، از جعبه ابزار dune و مخازن محلی (monorepo) استفاده می شود. برای ایجاد چنین مخازنی، ابزار جدیدی به نام opam-monorepo اضافه شده است که امکان جداسازی مدیریت بسته از ساخت و کد منبع را فراهم می کند. ابزار opam-monorepo مانند ایجاد فایل‌های قفل برای وابستگی‌های مربوط به پروژه، بارگیری و استخراج کد وابستگی و تنظیم محیط برای استفاده از سیستم ساخت dune عمل می‌کند. مونتاژ واقعی توسط جعبه ابزار dune انجام می شود.
  • یک فرآیند ساخت قابل تکرار ارائه شده است. استفاده از فایل‌های قفل، پیوندی به نسخه‌های وابستگی ایجاد می‌کند و به شما امکان می‌دهد تا در هر زمان فرآیند ساخت را با همان کد تکرار کنید.
  • یک فرآیند کامپایل متقابل جدید پیاده سازی شده است و امکان کامپایل متقابل برای همه پلتفرم های هدف پشتیبانی شده از یک محیط ساخت مشترک فراهم شده است که همچنین وابستگی ها و کتابخانه هایی را که دارای پیوندهای C هستند، بدون نیاز به اضافه کردن این پیوندها به یکدیگر کامپایل می کند. بسته اصلی . کامپایل متقابل با استفاده از فضاهای کاری ارائه شده توسط سیستم ساخت تپه سازماندهی می شود.
  • پشتیبانی از پلتفرم های هدف جدید اضافه شده است، به عنوان مثال، یک توانایی آزمایشی برای ساخت برنامه های کاربردی مستقل برای اجرا بر روی بردهای Raspberry Pi 4 ارائه شده است.
  • کار برای ادغام بخش‌هایی از MirageOS در اکوسیستم‌های مربوط به توسعه در زبان OCaml انجام شده است تا مونتاژ برنامه‌ها در قالب unikernel ساده شود. بسیاری از بسته های MirageOS به سیستم ساخت dune منتقل شده اند. ابزار opam-monorepo برای نصب با استفاده از مدیر بسته opam در دسترس است و می تواند در پروژه هایی که از سیستم ساخت dune استفاده می کنند استفاده شود. برای حفظ وصله‌هایی که مشکلات مربوط به وابستگی‌های ساختمانی در dune را حل می‌کنند، دو مخزن ایجاد شده‌اند: dune-universe/opam-overlays و dune-universe/mirage-opam-overlays، که به‌طور پیش‌فرض هنگام استفاده از ابزار میراژ CLI فعال می‌شوند.
  • ادغام MirageOS با کتابخانه های C و Rust ساده شده است.
  • یک زمان اجرا OCaml جدید پیشنهاد شده است که به شما امکان می دهد بدون libc (بدون libc) کار کنید.
  • امکان استفاده از سرویس مرلین برای ادغام با محیط های توسعه یکپارچه استاندارد وجود دارد.

منبع: opennet.ru

اضافه کردن نظر