Muen 1.0 kaleratzea, sistema fidagarriak eraikitzeko kode irekiko mikrokernel bat

Zortzi urteko garapenaren ondoren, Muen 1.0 proiektua kaleratu zen, Separation kernel-a garatuz, zeinaren iturburu-kodean akatsik eza fidagarritasun formalaren egiaztapen metodo matematikoen bidez baieztatu zen. Nukleoa x86_64 arkitekturarako eskuragarri dago eta fidagarritasun-maila handiagoa eta hutsegiterik ez izateko bermea eskatzen duten misio kritikoko sistemetan erabil daiteke. Proiektuaren iturburu-kodea Ada hizkuntzan eta bere dialekto egiaztagarrian idatzita dago SPARK 2014. Kodea GPLv3 lizentziapean banatzen da.

Bereizketa nukleoa mikrokernel bat da, elkarrengandik isolatutako osagaiak exekutatzeko ingurune bat eskaintzen duena, eta horien elkarrekintza arauek zorrozki arautzen dute. Isolamendua Intel VT-x birtualizazio-luzapenen erabileran oinarritzen da eta segurtasun-mekanismoak barne hartzen ditu ezkutuko komunikazio-kanalen antolaketa blokeatzeko. Banaketa nukleoa beste mikrokernel batzuk baino minimalistagoa eta estatikoagoa da, eta horrek hutsegitea eragin dezakeen egoera kopurua murrizten du.

Nukleoa VMX erro moduan exekutatzen da, hipervisor baten antzera, eta gainerako osagai guztiak VMX ez erro moduan exekutatzen dira, sistema gonbidatuen antzera. Ekipamendurako sarbidea Intel VT-d DMA luzapenak eta etenen birmapaketa erabiliz egiten da, eta horri esker, PCI gailuak Muen-en exekutatzen diren osagaiekin lotura segurua ezartzea posible da.

Muen 1.0 kaleratzea, sistema fidagarriak eraikitzeko kode irekiko mikrokernel bat

Muen-en gaitasunen artean, nukleo anitzeko sistemen laguntza, habiaraturiko memoria-orrialdeak (EPT, Extended Page Tables), MSI (Message Signaled Interrupts) eta memoria-orrietako atributu-taulak (PAT, Page Attribute Table). Muenek Intel VMX prebentzio-tenporizadorean oinarritutako round-robin programatzaile finko bat ere eskaintzen du, errendimenduan eraginik ez duen exekuzio-denbora trinkoa, hutsegiteen auditoretza sistema, arauetan oinarritutako baliabide estatikoen esleipen-motor bat, gertaerak kudeatzeko sistema eta partekatutako memoria kanalak. exekutatzen diren osagaien arteko komunikazioa.

64 biteko makina kodea duten osagaiak exekutatzen ditu, 32 edo 64 biteko makina birtualak, 64 biteko aplikazioak Ada eta SPARK 2014 lengoaietan, Linux makina birtualak eta MirageOS-en oinarritutako "unikernel" autonomoak Muen-en gainean.

Muen 1.0 bertsioan eskainitako berrikuntza nagusiak:

  • Dokumentuak argitaratu dira nukleorako (gailua eta arkitektura), sistema (sistema-politikak, Tau0 eta tresna-kit) eta osagaien zehaztapenekin, proiektuaren alderdi guztiak dokumentatzen dituztenak.
  • Tau0 (Muen System Composer) tresna-tresna gehitu da, sistemaren irudiak osatzeko eta Muen-en gainean exekutatzen diren zerbitzu estandarrak garatzeko prest dauden egiaztatutako osagai multzo bat barne. Emandako osagaien artean AHCI (SATA) kontrolatzailea, gailuen kudeatzailea (DM), abio-kargatzailea, sistema kudeatzailea, terminal birtuala, etab.
  • muenblock Linux kontrolatzailea (Muen partekatutako memoriaren gainean exekutatzen den bloke-gailu baten inplementazioa) blockdev 2.0 APIa erabiltzeko bihurtu da.
  • Jatorrizko osagaien bizi-zikloa kudeatzeko tresnak ezarri dira.
  • Sistemaren irudiak SBS (Signed Block Stream) eta CSL (Command Stream Loader) erabiltzeko bihurtu dira osotasuna babesteko.
  • Egiaztatutako AHCI-DRV kontrolatzaile bat inplementatu da, SPARK 2014 hizkuntzan idatzia eta ATA interfazea edo banakako disko partizioak onartzen dituzten unitateak osagaietara konektatzeko aukera ematen duena.
  • MirageOS eta Solo5 proiektuen unikernel laguntza hobetua.
  • Ada hizkuntza-tresna-tresna eguneratu da GNAT Community 2021 bertsiorako.
  • Etengabeko integrazio sistema Bochs emuladoretik QEMU/KVM habiaraturiko inguruneetara transferitu da.
  • Linux osagaien irudiek Linux 5.4.66 nukleoa erabiltzen dute.

Iturria: opennet.ru

Gehitu iruzkin berria