Ukukhutshwa kwe-Muen 1.0, umthombo ovulekileyo we-microkernel wokwakha iinkqubo ezithembekileyo kakhulu

Emva kweminyaka eyisibhozo yophuhliso, iprojekthi ye-Muen 1.0 yakhululwa, iphuhlisa i-kernel yoKwahlula, ukungabikho kweempazamo kwikhowudi yomthombo oye waqinisekiswa ngokusebenzisa iindlela zemathematika zokuqinisekisa ukuthembeka okusemthethweni. I-kernel iyafumaneka kwi-x86_64 architecture kwaye ingasetyenziselwa kwiinkqubo ezibaluleke kakhulu ze-mission ezifuna inqanaba elongezelelweyo lokuthembeka kunye nesiqinisekiso sokungaphumeleli. Ikhowudi yomthombo weprojekthi ibhalwe ngolwimi lwe-Ada kunye ne-dialect yayo eqinisekisiweyo SPARK 2014. Ikhowudi isasazwa phantsi kwelayisensi ye-GPLv3.

I-kernel yokwahlula i-microkernel ebonelela ngokusingqongileyo ekuqhutyweni kwamacandelo ahlukeneyo omnye komnye, intsebenziswano elawulwa ngokungqongqo yimithetho enikeziweyo. I-Isolation isekelwe ekusebenziseni i-Intel VT-x ye-virtualization extensions kwaye iquka iindlela zokukhusela ukuvimba umbutho weendlela zokunxibelelana ezifihlakeleyo. I-kernel yokwahlula i-minimalistic kwaye i-static kunezinye ii-microkernels, ezinciphisa inani leemeko ezinokubangela ukungaphumeleli.

I-kernel isebenza kwimowudi yengcambu yeVMX, efana ne-hypervisor, kunye nazo zonke ezinye iikhomponethi eziqhutywa kwimowudi engeyiyo ye-VMX, efana neenkqubo zeendwendwe. Ukufikelela kwizixhobo zenziwa ngokusebenzisa i-Intel VT-d DMA izandiso kunye nokuphazamisa ukuphindaphinda, okwenza kube lula ukuphumeza ukubopha okukhuselekileyo kwezixhobo ze-PCI kumacandelo asebenza phantsi kwe-Muen.

Ukukhutshwa kwe-Muen 1.0, umthombo ovulekileyo we-microkernel wokwakha iinkqubo ezithembekileyo kakhulu

Ubuchule beMuen buquka inkxaso yeenkqubo ezininzi ezingundoqo, amaphepha enkumbulo afakwe kwindlwana (EPT, iiTheyibhile zePhepha Ezandisiweyo), i-MSI (Isiphazamisi esisayiniweyo somyalezo), kunye neetafile zeempawu zephepha lememori (PAT, Itheyibhile yeMbali yePhepha). I-Muen ikwabonelela ngomcwangcisi we-robin esisigxina esekelwe kwi-Intel VMX preemptive timer, ixesha lokubaleka elihlangeneyo elingenampembelelo ekusebenzeni, inkqubo yokuhlolwa kwengozi, i-injini yonikezelo lwesixhobo esisekelwe kumgaqo, inkqubo yokusingatha umcimbi, kunye nemijelo yememori ekwabelwana ngayo. unxibelelwano phakathi kwamacandelo asebenzayo.

Ixhasa amacandelo asebenzayo kunye nekhowudi yomatshini we-64-bit, i-32- okanye i-64-bit ye-virtual machine, i-64-bit yezicelo kwi-Ada kunye ne-SPARK yeelwimi ze-2014, oomatshini be-Linux virtual kunye ne-self-contained "unikernels" esekelwe kwi-MirageOS phezu kwe-Muen.

Iinguqulelo eziphambili ezibonelelweyo ekukhutshweni kwe-Muen 1.0:

  • Amaxwebhu apapashiwe kunye neenkcukacha zekernel (isixhobo kunye noyilo lwezakhiwo), inkqubo (imigaqo-nkqubo yenkqubo, i-Tau0 kunye nezixhobo zokusebenza) kunye namacandelo, abhala yonke imiba yeprojekthi.
  • I-toolkit ye-Tau0 (i-Muen System Composer) yongezwa, equka isethi yamacandelo aqinisekisiweyo esele enziwe ngokuqulunqa imifanekiso yenkqubo kunye nokuphuhlisa iinkonzo ezisemgangathweni ezihamba phezu kwe-Muen. Amacandelo anikezelweyo abandakanya umqhubi we-AHCI (SATA), uMphathi weSixhobo (DM), umlayishi we-boot, umphathi wenkqubo, i-terminal ye-virtual, njl.
  • Umqhubi we-Linux we-muenblock (ukuphunyezwa kwesixhobo sebhloko esisebenza phezu kwenkumbulo ekwabelwana ngayo ye-Muen) uguqulwe wasebenzisa i-blockdev 2.0 API.
  • Izixhobo eziphunyeziweyo zokulawula umjikelo wobomi bamalungu emveli.
  • Imifanekiso yenkqubo iguqulwe ukuze isebenzise i-SBS (i-Signed Block Stream) kunye ne-CSL (Command Stream Loader) ukukhusela ingqibelelo.
  • Umqhubi we-AHCI-DRV oqinisekisiweyo uphunyeziwe, ubhalwe ngolwimi lwe-SPARK 2014 kwaye ikuvumela ukuba udibanise iidrive ezixhasa ujongano lwe-ATA okanye izahlulo zedisk nganye kumacandelo.
  • Ukuphuculwa kwenkxaso ye-unikernel evela kwi-MirageOS kunye neeprojekthi ze-Solo5.
  • Isixhobo solwimi lwe-Ada sihlaziywe kuluntu lwe-GNAT ngo-2021.
  • Inkqubo yokudibanisa eqhubekayo idluliselwe kwi-emulator ye-Bochs ukuya kwi-QEMU/KVM eneendawo zokuhlala.
  • Imifanekiso yecandelo leLinux isebenzisa iLinux 5.4.66 kernel.

umthombo: opennet.ru

Yongeza izimvo