MirageOS 4.0 релиз, гипервизордун үстүндөгү тиркемелерди иштетүү үчүн платформа

Иштеп чыгуудан бир жарым жыл өткөндөн кийин MirageOS 4.0 долбоорунун релизи жарыкка чыкты, ал бир тиркеме үчүн операциялык системаларды түзүүгө мүмкүндүк берет, мында тиркеме өз алдынча иштөөгө жөндөмдүү "уни-ядро" катары жеткирилет. операциялык системаларды, өзүнчө OS ядросун жана каалаган катмарларды колдонуу. OCaml тили тиркемелерди иштеп чыгуу үчүн колдонулат. Долбоордун коду бекер ISC лицензиясы боюнча таратылат.

Операциялык системага мүнөздүү бардык төмөнкү деңгээлдеги функциялар тиркемеге тиркелген китепкана түрүндө ишке ашырылат. Тиркемени каалаган ОСте иштеп чыгууга болот, андан кийин ал 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 ж.

Негизги жакшыртуулар:

  • Долбоорлорду жана unikernel түзүү процесси өзгөртүлдү. Мурда колдонулган ocamlbuild чогултуу тутумунун ордуна, dune инструменттери жана жергиликтүү репозиторийлер (monorepo) колдонулат. Мындай репозиторийлерди түзүү үчүн жаңы opam-monorepo утилитасы кошулду, бул пакетти башкарууну курулуштан баштапкы коддон бөлүүгө мүмкүндүк берет. Opam-monorepo утилитасы долбоорго байланыштуу көз карандылыктар үчүн кулпу файлдарын түзүү, көз карандылыктын кодун жүктөө жана алуу жана dune куруу системасын колдонуу үчүн чөйрөнү орнотуу сыяктуу иштерди аткарат. Иш жүзүндө монтаждоо дуне инструменттери тарабынан аткарылат.
  • Кайталануучу куруу процесси каралган. Кулпу файлдарын колдонуу көз карандылык версияларына шилтемени камсыз кылат жана каалаган убакта бир эле код менен куруу процессин толугу менен кайталоого мүмкүндүк берет.
  • Жаңы кайчылаш компиляция процесси ишке ашырылды жана бир жалпы куруу чөйрөсүнөн бардык колдоого алынган максаттуу платформалар үчүн кайчылаш компиляциялоо мүмкүнчүлүгү берилет, ал ошондой эле C байланыштары бар көз карандылыктарды жана китепканаларды кайчылаш компиляциялайт, бул байланыштарды кошуунун зарылдыгы жок негизги пакет. Кайчылаш компиляция дюн куруу системасы тарабынан берилген жумушчу мейкиндиктерди колдонуу менен уюштурулат.
  • Жаңы максаттуу платформаларды колдоо кошулду, мисалы, Raspberry Pi 4 такталарында иштөө үчүн өз алдынча тиркемелерди түзүү үчүн эксперименталдык мүмкүнчүлүк берилди.
  • Unikernel түрүндөгү тиркемелерди чогултууну жөнөкөйлөтүү үчүн MirageOS бөлүктөрүн OCaml тилинде өнүктүрүүгө байланыштуу экосистемага интеграциялоо боюнча иштер аткарылды. Көптөгөн MirageOS пакеттери dune куруу системасына көчүрүлгөн. Opam-monorepo утилитасы opam пакет менеджери аркылуу орнотуу үчүн жеткиликтүү жана dune куруу тутумун колдонгон долбоорлордо колдонулушу мүмкүн. Dune'де көз карандылыкты куруу көйгөйлөрүн чечүүчү патчтарды колдоо үчүн эки репозиторий түзүлдү: dune-universe/opam-overlays жана dune-universe/mirage-opam-overlays, алар mirage CLI утилитасын колдонууда демейки боюнча иштетилет.
  • C жана Rust китепканалары менен MirageOS интеграциясы жөнөкөйлөштүрүлдү.
  • libcсиз (libc-эркин) жасоого мүмкүндүк берген жаңы OCaml иштөө убактысы сунушталды.
  • Стандарттык интеграцияланган иштеп чыгуу чөйрөлөрү менен интеграциялоо үчүн Merlin кызматын колдонууга болот.

Source: opennet.ru

Комментарий кошуу