MirageOS 4.0 шығарылымы, гипервизордың үстіндегі қолданбаларды іске қосу платформасы

Бір жарым жылдан кейін әзірлеуден кейін MirageOS 4.0 жобасының шығарылымы жарияланды, ол бір қолданба үшін операциялық жүйелерді құруға мүмкіндік береді, онда қолданба дербес жұмыс істей алатын «унидирек» ретінде жеткізіледі. операциялық жүйелерді, жеке ОЖ ядросын және кез келген қабаттарды пайдалану. OCaml тілі қолданбаларды әзірлеу үшін қолданылады. Жоба коды тегін ISC лицензиясы бойынша таратылады.

Операциялық жүйеге тән барлық төмен деңгейлі функционалдылық қосымшаға тіркелген кітапхана түрінде жүзеге асырылады. Қолданбаны кез келген ОЖ-де әзірлеуге болады, содан кейін ол Xen, KVM, BHyve және VMM (OpenBSD) гипервизорларының жоғарғы жағында, мобильді платформалардың жоғарғы жағында тікелей жұмыс істей алатын арнайы ядроға (unikernel тұжырымдамасы) құрастырылады. 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 құралдар жинағы және жергілікті репозиторийлер (монорепо) пайдаланылады. Осындай репозиторийлерді жасау үшін пакетті басқаруды құрылыстан бастапқы кодтан бөлуге мүмкіндік беретін жаңа қызметтік бағдарлама, opam-monorepo қосылды. Opam-monorepo утилитасы жобаға қатысты тәуелділіктер үшін құлыптау файлдарын жасау, тәуелділік кодын жүктеу және шығару және dune құрастыру жүйесін пайдалану үшін ортаны орнату сияқты жұмыстарды орындайды. Нақты құрастыруды dune құралдар жинағы орындайды.
  • Қайталанатын құрастыру процесі қамтамасыз етілген. Құлыптау файлдарын пайдалану тәуелділік нұсқаларына сілтеме береді және кез келген уақытта бірдей кодпен құрастыру процесін толығымен қайталауға мүмкіндік береді.
  • Жаңа кросс-компиляция процесі енгізілді және бір ортақ құрастыру ортасынан барлық қолдау көрсетілетін мақсатты платформалар үшін кросс-компиляциялау мүмкіндігі қамтамасыз етілген, ол сондай-ақ C байланыстырулары бар тәуелділіктер мен кітапханаларды осы байланыстыруларды қосудың қажетінсіз айқас құрастырады негізгі пакет. Кросс-компиляция dune құрастыру жүйесі қамтамасыз ететін жұмыс кеңістігі арқылы ұйымдастырылады.
  • Жаңа мақсатты платформаларға қолдау қосылды, мысалы, Raspberry Pi 4 тақталарында жұмыс істеуге арналған дербес қосымшаларды құрудың эксперименттік мүмкіндігі қамтамасыз етілді.
  • Unikernel түріндегі қосымшаларды құрастыруды жеңілдету үшін MirageOS бөліктерін OCaml тілінде әзірлеуге байланысты экожүйелерге біріктіру бойынша жұмыс жүргізілді. Көптеген MirageOS пакеттері dune құрастыру жүйесіне ауыстырылды. Opam-monorepo утилитасы opam пакетінің менеджері арқылы орнату үшін қол жетімді және оны dune құрастыру жүйесін пайдаланатын жобаларда пайдалануға болады. Dune-де тәуелділіктерді құру мәселелерін шешетін патчтарды қолдау үшін екі репозиторий жасалды: mirage CLI утилитасын пайдалану кезінде әдепкі бойынша қосылатын dune-universe/opam-overlays және dune-universe/mirage-opam-қабаттасулары.
  • C және Rust кітапханаларымен MirageOS интеграциясы жеңілдетілді.
  • libcсіз (libcсіз) жасауға мүмкіндік беретін жаңа OCaml жұмыс уақыты ұсынылды.
  • Стандартты біріктірілген әзірлеу орталарымен біріктіру үшін Merlin қызметін пайдалануға болады.

Ақпарат көзі: opennet.ru

пікір қалдыру