Tso tawm ntawm MirageOS 4.0, lub platform rau khiav cov ntawv thov nyob rau sab saum toj ntawm hypervisor

Tom qab ib xyoos thiab ib nrab ntawm txoj kev loj hlob, qhov kev tso tawm ntawm MirageOS 4.0 qhov project tau raug luam tawm, uas tso cai rau kev tsim cov haujlwm ua haujlwm rau ib daim ntawv thov, uas daim ntawv thov raug xa tawm raws li tus kheej muaj "unikernel", muaj peev xwm khiav tsis tau. kev siv cov kev khiav hauj lwm systems, cais OS kernel thiab tej txheej. Cov lus OCaml yog siv los tsim cov ntawv thov. Txoj haujlwm code raug faib raws li daim ntawv tso cai pub dawb ISC.

Tag nrho cov kev ua haujlwm qis uas muaj nyob rau hauv lub operating system yog siv nyob rau hauv daim ntawv ntawm lub tsev qiv ntawv uas txuas nrog rau daim ntawv thov. Daim ntawv thov tuaj yeem tsim los ntawm txhua OS, tom qab ntawd nws tau muab tso ua ke rau hauv cov ntsiav tshwj xeeb (unikernel tswvyim), uas tuaj yeem khiav ncaj qha rau saum Xen, KVM, BHyve thiab VMM (OpenBSD) hypervisors, nyob rau sab saum toj ntawm mobile platforms, hauv daim ntawv ntawm cov txheej txheem hauv POSIX-raws li ib puag ncig lossis hauv huab ib puag ncig Amazon Elastic Compute Cloud thiab Google Compute Engine.

Qhov chaw tsim khoom tsis muaj ib yam dab tsi superfluous thiab cuam tshuam ncaj qha nrog tus hypervisor yam tsis muaj cov tsav tsheb lossis cov txheej txheem txheej txheem, uas tso cai rau txo qis ntawm cov nqi siv nyiaj thiab kev nyab xeeb ntxiv. Ua hauj lwm nrog MirageOS los mus rau peb theem: npaj cov kev teeb tsa nrog kev txhais cov pob khoom OPAM siv nyob rau hauv ib puag ncig, sib sau ua ke ib puag ncig, thiab tso tawm ib puag ncig. Txhawm rau kom muaj kev ua haujlwm nyob rau sab saum toj ntawm hypervisors, Runtime yog tsim los ntawm Solo5 kernel.

Txawm tias muaj tseeb tias cov ntawv thov thiab cov tsev qiv ntawv tau tsim nyob rau hauv qib siab OCaml lus, qhov tshwm sim ib puag ncig ua rau pom kev ua tau zoo thiab qhov loj me me (piv txwv li, DNS server siv tsuas yog 200 KB). Kev saib xyuas ntawm ib puag ncig kuj yooj yim, txij li yog tias nws tsim nyog los hloov kho qhov kev pab cuam lossis hloov qhov kev teeb tsa, nws txaus los tsim thiab tsim ib qho chaw tshiab. Ob peb lub tsev qiv ntawv hauv OCaml tau txais kev txhawb nqa rau kev ua haujlwm hauv network (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN, thiab lwm yam), ua haujlwm nrog kev khaws cia thiab muab cov ntaub ntawv sib luag.

Kev txhim kho tseem ceeb:

  • Cov txheej txheem ntawm kev sau cov haujlwm thiab unikerel tau hloov pauv. Hloov chaw ua ntej siv ocamlbuild los ua ke, cov khoom siv dune thiab cov chaw khaws cia hauv zos (monorepo) tau siv. Txhawm rau tsim cov chaw khaws khoom zoo li no, cov khoom siv hluav taws xob tshiab, opam-monorepo, tau ntxiv, uas ua rau nws muaj peev xwm cais cov kev tswj hwm pob ntawm lub tsev los ntawm qhov chaws. Cov khoom siv opam-monorepo ua haujlwm xws li tsim cov ntaub ntawv xauv rau qhov kev cuam tshuam txog kev ua haujlwm, kev thauj khoom thiab rho tawm cov cai tswjfwm, thiab teeb tsa ib puag ncig siv lub dune tsim. Kev sib dhos tiag tiag yog ua los ntawm dune toolkit.
  • Cov txheej txheem tsim rov ua dua tau muab. Siv cov ntaub ntawv xauv muab qhov txuas mus rau qhov kev vam khom versions thiab tso cai rau koj rov ua tiav cov txheej txheem tsim nrog tib txoj cai txhua lub sijhawm.
  • Cov txheej txheem sib sau ua ke tshiab tau raug coj los siv thiab muaj peev xwm sib sau ua ke rau txhua qhov kev txhawb nqa lub hom phiaj los ntawm ib qho chaw tsim kho, uas tseem muaj kev sib koom ua ke thiab cov tsev qiv ntawv uas muaj C bindings, tsis tas yuav ntxiv cov bindings rau. lub ntsiab pob. Kev sib sau ua ke yog tsim los ntawm cov chaw ua haujlwm uas muab los ntawm dune build system.
  • Kev them nyiaj yug rau lub hom phiaj tshiab tau ntxiv, piv txwv li, kev sim muaj peev xwm los tsim cov ntawv thov tus kheej rau kev khiav ntawm Raspberry Pi 4 boards tau muab.
  • Kev ua haujlwm tau ua tiav los sib sau ua ke ntawm MirageOS rau hauv ecosystems ntsig txog kev txhim kho hauv OCaml hom lus kom yooj yim rau kev sib dhos ntawm cov ntawv thov hauv daim ntawv unikernel. Ntau lub pob MirageOS tau raug xa mus rau lub dune build system. Cov khoom siv opam-monorepo muaj rau kev teeb tsa siv tus thawj tswj hwm pob opam thiab tuaj yeem siv rau hauv cov haujlwm uas siv lub dune tsim. Txhawm rau tswj thaj chaw uas daws teeb meem nrog lub tsev nyob hauv dune, ob qhov chaw khaws cia tau tsim: dune-universe/opam-overlays thiab dune-universe/mirage-opam-overlays, uas tau qhib los ntawm lub neej ntawd thaum siv mirage CLI qhov hluav taws xob.
  • MirageOS kev koom ua ke nrog C thiab Rust cov tsev qiv ntawv tau ua kom yooj yim.
  • Ib qho tshiab OCaml runtime tau raug thov uas tso cai rau koj ua yam tsis muaj libc (libc-dawb).
  • Nws tuaj yeem siv Merlin kev pabcuam rau kev koom ua ke nrog cov qauv kev tsim kho ib puag ncig.

Tau qhov twg los: opennet.ru

Ntxiv ib saib