MirageOS 4.0 kaleratzea, hipervisor baten gainean aplikazioak exekutatzeko plataforma

Urte eta erdiko garapenaren ondoren, MirageOS 4.0 proiektua kaleratu da, eta aplikazio bakarrerako sistema eragileak sortzeko aukera ematen du, zeinetan aplikazioa "unikernel" autonomo gisa entregatzen den, funtzionamendurik erabili gabe exekutatzeko gai dena. sistemak, OS kernel bereizia eta edozein geruza. OCaml hizkuntza erabiltzen da aplikazioak garatzeko. Proiektuaren kodea doako ISC lizentziapean banatzen da.

Sistema eragilearen berezko behe-mailako funtzionalitate guztiak aplikazioari atxikitako liburutegi baten moduan ezartzen dira. Aplikazioa edozein OStan garatu daiteke, eta ondoren kernel espezializatu batean konpilatzen da (unikernel kontzeptua), zeina zuzenean exekutatu daitekeen Xen, KVM, BHyve eta VMM (OpenBSD) hiperbissoreen gainean, mugikorren plataforman gainean, prozesu baten forma POSIX-ekin bat datorren ingurunean edo hodeiko inguruneetan Amazon Elastic Compute Cloud eta Google Compute Engine.

Sortutako inguruneak ez du soberan dagoen ezer eta hipervisorearekin zuzenean elkarreragiten du gidaririk edo sistema geruzarik gabe, eta horrek kostu orokorrak nabarmen murriztea eta segurtasuna areagotzea ahalbidetzen du. MirageOS-ekin lan egitea hiru fasetan sartzen da: konfigurazioa prestatzea ingurunean erabiltzen diren OPAM paketeak definituz, ingurunea muntatzea eta ingurunea abiaraziz. Hipervisoren gainean funtzionamendua ziurtatzeko, Runtime Solo5 nukleoan oinarrituta dago.

Aplikazioak eta liburutegiak goi-mailako OCaml hizkuntzan sortzen diren arren, sortzen diren inguruneek nahiko errendimendu ona eta tamaina minimoa erakusten dute (adibidez, DNS zerbitzariak 200 KB baino ez ditu hartzen). Inguruneen mantentze-lanak ere erraztu egiten dira, izan ere, programa eguneratzea edo konfigurazioa aldatzea beharrezkoa bada, nahikoa baita ingurune berri bat sortzea eta abiaraztea. OCaml hizkuntzan ehunka liburutegi onartzen dira sareko eragiketak egiteko (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN, etab.), biltegiratzearekin lan egiten eta datuen prozesamendu paraleloa eskainiz.

Hobekuntza nagusiak:

  • Proiektuak eta unikernel konpilatzeko prozesua aldatu da. Lehen erabilitako ocamlbuild muntaketa-sistemaren ordez, dune tresna-tresna eta tokiko biltegiak (monorepo) erabiltzen dira. Biltegi horiek sortzeko, opam-monorepo utilitate berri bat gehitu da, paketeen kudeaketa eraikitzetik iturburu-kodetik bereiztea posible egiten duena. Opam-monorepo utilitateak funtzionatzen du, hala nola, proiektuarekin lotutako mendekotasunetarako blokeo fitxategiak sortzea, mendekotasun-kodea kargatzea eta ateratzea eta duna eraikitzeko sistema erabiltzeko ingurunea konfiguratzea. Benetako muntaketa duna tresna-kutxak egiten du.
  • Eraikitze prozesu errepikagarria eskaintzen da. Blokeo-fitxategiak erabiltzeak mendekotasun-bertsioetarako esteka eskaintzen du eta edozein unetan eraikitze-prozesua kode berarekin guztiz errepika dezakezu.
  • Zehar-konpilazio prozesu berri bat inplementatu da eta bateragarriak diren helburu-plataforma guztietan zehar-konpilatzeko gaitasuna eskaintzen da eraikitze-ingurune komun batetik, eta horrek C loturak dituzten mendekotasunak eta liburutegiak ere zeharkatzen ditu, lotura hauek gehitu beharrik gabe. pakete nagusia. Zehar-konpilazioa duna eraikitzeko sistemak eskaintzen dituen lan-eremuak erabiliz antolatzen da.
  • Helburu-plataforma berrientzako laguntza gehitu da, adibidez, Raspberry Pi 4 plaketan exekutatzeko aplikazio autonomoak sortzeko gaitasun esperimentala eskaini da.
  • MirageOS-en zatiak OCaml hizkuntzan garapenarekin lotutako ekosistemetan integratzeko lana egin da, aplikazioen muntaketa unikernel moduan errazteko. MirageOS pakete asko duna eraikitzeko sistemara eraman dira. Opam-monorepo erabilgarritasuna opam paketeen kudeatzailea erabiliz instalatzeko dago eta dune eraikitze sistema erabiltzen duten proiektuetan erabil daiteke. Dunen mendekotasunak eraikitzeko arazoak konpontzen dituzten adabakiak mantentzeko, bi biltegi sortu dira: dune-universe/opam-overlays eta dune-universe/mirage-opam-overlays, mirage CLI utilitatea erabiltzean lehenespenez gaituta daudenak.
  • MirageOS C eta Rust liburutegiekin integrazioa erraztu da.
  • OCaml exekuzio-denbora berri bat proposatu da, libc gabe (libc-free) egiteko aukera ematen duena.
  • Merlin zerbitzua garapen-ingurune integratu estandarrekin integratzeko erabil daiteke.

Iturria: opennet.ru

Gehitu iruzkin berria