Rhyddhau MirageOS 4.0, llwyfan ar gyfer rhedeg cymwysiadau ar ben hypervisor

Ar ôl blwyddyn a hanner o ddatblygiad, mae rhyddhau prosiect MirageOS 4.0 wedi'i gyhoeddi, sy'n caniatáu creu systemau gweithredu ar gyfer un cymhwysiad, lle mae'r cymhwysiad yn cael ei gyflwyno fel “unikernel” hunangynhwysol, sy'n gallu rhedeg hebddo. y defnydd o systemau gweithredu, cnewyllyn OS ar wahân ac unrhyw haenau. Defnyddir yr iaith OCaml i ddatblygu cymwysiadau. Mae cod y prosiect yn cael ei ddosbarthu o dan y drwydded ISC rhad ac am ddim.

Mae'r holl swyddogaethau lefel isel sy'n gynhenid ​​i'r system weithredu yn cael eu gweithredu ar ffurf llyfrgell sydd ynghlwm wrth y rhaglen. Gellir datblygu'r cymhwysiad ar unrhyw OS, ac ar ôl hynny caiff ei lunio'n gnewyllyn arbenigol (cysyniad unikernel), a all redeg yn uniongyrchol ar ben hypervisors Xen, KVM, BHyve a VMM (OpenBSD), ar ben llwyfannau symudol, yn y ffurf o broses mewn amgylchedd sy'n cydymffurfio â POSIX neu mewn amgylcheddau cwmwl Amazon Elastic Compute Cloud a Google Compute Engine.

Nid yw'r amgylchedd a gynhyrchir yn cynnwys unrhyw beth diangen ac mae'n rhyngweithio'n uniongyrchol â'r hypervisor heb yrwyr na haenau system, sy'n caniatáu gostyngiad sylweddol mewn costau gorbenion a mwy o ddiogelwch. Mae gweithio gyda MirageOS yn dod i lawr i dri cham: paratoi'r cyfluniad gyda diffinio'r pecynnau OPAM a ddefnyddir yn yr amgylchedd, cydosod yr amgylchedd, a lansio'r amgylchedd. Er mwyn sicrhau gweithrediad ar ben hypervisors, mae Runtime wedi'i adeiladu ar sail cnewyllyn Solo5.

Er gwaethaf y ffaith bod cymwysiadau a llyfrgelloedd yn cael eu creu yn yr iaith OCaml lefel uchel, mae'r amgylcheddau canlyniadol yn dangos perfformiad eithaf da a maint lleiaf (er enghraifft, dim ond 200 KB y mae'r gweinydd DNS yn ei gymryd). Mae cynnal a chadw amgylcheddau hefyd yn cael ei symleiddio, oherwydd os oes angen diweddaru'r rhaglen neu newid y ffurfweddiad, mae'n ddigon creu a lansio amgylchedd newydd. Cefnogir cannoedd o lyfrgelloedd yn yr iaith OCaml ar gyfer cyflawni gweithrediadau rhwydwaith (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN, ac ati), gan weithio gyda storio a darparu prosesu data cyfochrog.

Gwelliannau allweddol:

  • Mae'r broses o lunio prosiectau ac unikernel wedi'i newid. Yn lle'r system cydosod ocamlbuild a ddefnyddiwyd yn flaenorol, defnyddir y pecyn cymorth twyni a'r ystorfeydd lleol (monorepo). Er mwyn creu ystorfeydd o'r fath, mae cyfleustodau opam-monorepo newydd wedi'i ychwanegu, sy'n ei gwneud hi'n bosibl gwahanu rheolaeth pecynnau oddi wrth adeiladu o'r cod ffynhonnell. Mae'r cyfleustodau opam-monorepo yn gweithio fel creu ffeiliau clo ar gyfer dibyniaethau sy'n gysylltiedig â phrosiect, llwytho a thynnu cod dibyniaeth, a sefydlu'r amgylchedd i ddefnyddio'r system adeiladu twyni. Perfformir y cynulliad gwirioneddol gan y pecyn cymorth twyni.
  • Darperir proses adeiladu ailadroddadwy. Mae defnyddio ffeiliau clo yn darparu dolen i fersiynau dibyniaeth ac yn caniatáu ichi ailadrodd y broses adeiladu yn llwyr gyda'r un cod ar unrhyw adeg.
  • Mae proses draws-grynhoi newydd wedi'i rhoi ar waith a darperir y gallu i draws-grynhoi ar gyfer yr holl lwyfannau targed a gefnogir o un amgylchedd adeiladu cyffredin, sydd hefyd yn traws-grynhoi dibyniaethau a llyfrgelloedd sydd â rhwymiadau C, heb fod angen ychwanegu'r rhwymiadau hyn at y prif becyn. Trefnir traws-grynhoi gan ddefnyddio mannau gwaith a ddarperir gan y system adeiladu twyni.
  • Ychwanegwyd cefnogaeth ar gyfer llwyfannau targed newydd, er enghraifft, darparwyd gallu arbrofol i adeiladu cymwysiadau hunangynhwysol ar gyfer rhedeg ar fyrddau Raspberry Pi 4.
  • Mae gwaith wedi'i wneud i integreiddio rhannau o MirageOS i ecosystemau sy'n gysylltiedig â datblygiad yn yr iaith OCaml er mwyn symleiddio'r broses o gydosod cymwysiadau ar ffurf unikernel. Mae llawer o becynnau MirageOS wedi'u cludo i'r system adeiladu twyni. Mae'r cyfleustodau opam-monorepo ar gael i'w osod gan ddefnyddio'r rheolwr pecyn opam a gellir ei ddefnyddio mewn prosiectau sy'n defnyddio'r system adeiladu twyni. Er mwyn cynnal clytiau sy'n datrys problemau gydag adeiladu dibyniaethau mewn twyni, mae dwy gadwrfa wedi'u creu: troshaenau twyni-bydysawd/opam-bydysawd a throshaenau twyni-bydysawd/mirage-opam-opam, sy'n cael eu galluogi yn ddiofyn wrth ddefnyddio cyfleustodau CLI mirage.
  • Mae integreiddio MirageOS â llyfrgelloedd C a Rust wedi'i symleiddio.
  • Mae amser rhedeg OCaml newydd wedi'i gynnig sy'n caniatáu ichi wneud heb libc (di-libc).
  • Mae'n bosibl defnyddio gwasanaeth Merlin ar gyfer integreiddio ag amgylcheddau datblygu integredig safonol.

Ffynhonnell: opennet.ru

Ychwanegu sylw