Keluaran MirageOS 4.0, platform untuk menjalankan aplikasi di atas hipervisor

Selepas satu setengah tahun pembangunan, keluaran projek MirageOS 4.0 telah diterbitkan, yang membolehkan penciptaan sistem pengendalian untuk satu aplikasi, di mana aplikasi itu dihantar sebagai "unikernel" serba lengkap, mampu berjalan tanpa penggunaan sistem pengendalian, kernel OS yang berasingan dan sebarang lapisan. Bahasa OCaml digunakan untuk membangunkan aplikasi. Kod projek diedarkan di bawah lesen ISC percuma.

Semua fungsi peringkat rendah yang wujud pada sistem pengendalian dilaksanakan dalam bentuk perpustakaan yang dilampirkan pada aplikasi. Aplikasi ini boleh dibangunkan pada mana-mana OS, selepas itu ia disusun menjadi kernel khusus (konsep unikernel), yang boleh berjalan terus di atas hypervisor Xen, KVM, BHyve dan VMM (OpenBSD), di atas platform mudah alih, dalam bentuk proses dalam persekitaran yang mematuhi POSIX atau dalam persekitaran awan Amazon Elastic Compute Cloud dan Google Compute Engine.

Persekitaran yang dijana tidak mengandungi apa-apa yang berlebihan dan berinteraksi secara langsung dengan hipervisor tanpa pemacu atau lapisan sistem, yang membolehkan pengurangan ketara dalam kos overhed dan peningkatan keselamatan. Bekerja dengan MirageOS terbahagi kepada tiga peringkat: menyediakan konfigurasi dengan mentakrifkan pakej OPAM yang digunakan dalam persekitaran, memasang persekitaran dan melancarkan persekitaran. Untuk memastikan operasi di atas hypervisor, Runtime dibina berdasarkan kernel Solo5.

Walaupun fakta bahawa aplikasi dan perpustakaan dicipta dalam bahasa OCaml peringkat tinggi, persekitaran yang terhasil menunjukkan prestasi yang agak baik dan saiz minimum (contohnya, pelayan DNS mengambil hanya 200 KB). Penyelenggaraan persekitaran juga dipermudahkan, kerana jika perlu untuk mengemas kini program atau menukar konfigurasi, ia sudah cukup untuk mencipta dan melancarkan persekitaran baharu. Beberapa ratus perpustakaan dalam bahasa OCaml disokong untuk melaksanakan operasi rangkaian (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN, dll.), bekerja dengan storan dan menyediakan pemprosesan data selari.

Penambahbaikan utama:

  • Proses penyusunan projek dan unikernel telah diubah. Daripada sistem pemasangan ocamlbuild yang digunakan sebelum ini, kit alat dune dan repositori tempatan (monorepo) digunakan. Untuk mencipta repositori sedemikian, utiliti baharu, opam-monorepo, telah ditambah, yang memungkinkan untuk memisahkan pengurusan pakej daripada membina daripada kod sumber. Utiliti opam-monorepo berfungsi seperti mencipta fail kunci untuk kebergantungan berkaitan projek, memuatkan dan mengekstrak kod kebergantungan, dan menyediakan persekitaran untuk menggunakan sistem binaan gundukan. Perhimpunan sebenar dilakukan oleh kit alat bukit pasir.
  • Proses binaan berulang disediakan. Menggunakan fail kunci menyediakan pautan kepada versi pergantungan dan membolehkan anda mengulang sepenuhnya proses binaan dengan kod yang sama pada bila-bila masa.
  • Proses kompilasi silang baharu telah dilaksanakan dan keupayaan untuk menyusun silang untuk semua platform sasaran yang disokong daripada satu persekitaran binaan biasa disediakan, yang juga menyusun silang kebergantungan dan perpustakaan yang mempunyai pengikatan C, tanpa perlu menambah pengikatan ini kepada pakej utama. Penyusunan silang disusun menggunakan ruang kerja yang disediakan oleh sistem binaan bukit pasir.
  • Sokongan untuk platform sasaran baharu telah ditambah, contohnya, keupayaan percubaan untuk membina aplikasi serba lengkap untuk dijalankan pada papan Raspberry Pi 4 telah disediakan.
  • Kerja telah dilakukan untuk menyepadukan bahagian MirageOS ke dalam ekosistem yang berkaitan dengan pembangunan dalam bahasa OCaml untuk memudahkan pemasangan aplikasi dalam bentuk unikernel. Banyak pakej MirageOS telah dialihkan ke sistem binaan dune. Utiliti opam-monorepo tersedia untuk pemasangan menggunakan pengurus pakej opam dan boleh digunakan dalam projek yang menggunakan sistem binaan dune. Untuk mengekalkan tampalan yang menyelesaikan masalah dengan kebergantungan bangunan di dune, dua repositori telah dibuat: dune-universe/opam-overlays dan dune-universe/mirage-opam-overlays, yang didayakan secara lalai apabila menggunakan utiliti mirage CLI.
  • Penyepaduan MirageOS dengan perpustakaan C dan Rust telah dipermudahkan.
  • Masa jalan OCaml baharu telah dicadangkan yang membolehkan anda melakukan tanpa libc (bebas libc).
  • Anda boleh menggunakan perkhidmatan Merlin untuk penyepaduan dengan persekitaran pembangunan bersepadu standard.

Sumber: opennet.ru

Tambah komen