Kahdeksan vuoden kehitystyön jälkeen julkaistiin Muen 1.0 -projekti, joka kehitti Separation-ytimen, jonka lähdekoodin virheiden puuttuminen varmistettiin käyttämällä muodollisen luotettavuuden todentamisen matemaattisia menetelmiä. Ydin on saatavilla x86_64-arkkitehtuurille, ja sitä voidaan käyttää kriittisissä järjestelmissä, jotka vaativat parempaa luotettavuutta ja takuuta häiriöttömyydestä. Projektin lähdekoodi on kirjoitettu Ada-kielellä ja sen todennettavissa olevalla murteella SPARK 2014. Koodia jaetaan GPLv3-lisenssillä.
Erotusydin on mikroydin, joka tarjoaa ympäristön toisistaan eristettyjen komponenttien suorittamiseen, joiden vuorovaikutusta säätelevät tiukasti annetut säännöt. Eristäminen perustuu Intel VT-x -virtualisointilaajennusten käyttöön ja sisältää suojamekanismeja, jotka estävät salaisten viestintäkanavien järjestämisen. Osiointiydin on minimalistisempi ja staattisempi kuin muut mikroytimet, mikä vähentää tilanteiden määrää, jotka voivat aiheuttaa epäonnistumisen.
Ydin toimii VMX-juuritilassa, kuten hypervisor, ja kaikki muut komponentit toimivat VMX:n ei-root-tilassa, kuten vierasjärjestelmät. Pääsy laitteisiin tapahtuu Intel VT-d DMA -laajennuksilla ja keskeytysremappingilla, mikä mahdollistaa PCI-laitteiden turvallisen sitomisen Muenin alla toimiviin komponentteihin.
Muenin ominaisuuksiin kuuluu tuki moniytimisille järjestelmille, sisäkkäisille muistisivuille (EPT, Extended Page Tables), MSI:lle (Message Signaled Interrupts) ja muistisivun ominaisuustaulukoille (PAT, Page Attribute Table). Muen tarjoaa myös Intelin VMX ennaltaehkäisevään ajastimeen perustuvan kiinteän round-robin-ajastimen, kompaktin suoritusajan, joka ei vaikuta suorituskykyyn, kaatumisen valvontajärjestelmän, sääntöihin perustuvan staattisen resurssien kohdistamismoottorin, tapahtumankäsittelyjärjestelmän ja jaetut muistikanavat viestintä käynnissä olevien komponenttien sisällä.
Se tukee käynnissä olevia komponentteja 64-bittisellä konekoodilla, 32- tai 64-bittisiä virtuaalikoneita, 64-bittisiä sovelluksia Ada- ja SPARK 2014 -kielillä, Linux-virtuaalikoneita ja MirageOS-pohjaisia itsenäisiä "yksikerneleitä" Muenin päällä.
Tärkeimmät Muen 1.0:n julkaisussa tarjotut innovaatiot:
- Asiakirjat on julkaistu ytimen (laite ja arkkitehtuuri), järjestelmän (järjestelmäkäytännöt, Tau0 ja työkalupakki) ja komponenttien spesifikaatioineen, jotka dokumentoivat kaikki projektin näkökohdat.
- Tau0 (Muen System Composer) -työkalusarja on lisätty, joka sisältää joukon valmiita vahvistettuja komponentteja järjestelmäkuvien muodostamiseen ja Muenin päällä toimivien standardipalvelujen kehittämiseen. Toimitettuja osia ovat AHCI (SATA) -ohjain, laitehallinta (DM), käynnistyslatain, järjestelmänhallinta, virtuaalinen pääte jne.
- Muenblock Linux -ohjain (Muenin jaetun muistin päällä toimivan lohkolaitteen toteutus) on muutettu käyttämään blockdev 2.0 API:ta.
- Otettu käyttöön työkaluja alkuperäisten komponenttien elinkaaren hallintaan.
- Järjestelmän kuvat on muunnettu käyttämään SBS:ää (Signed Block Stream) ja CSL:ää (Command Stream Loader) eheyden suojaamiseksi.
- Todennettu AHCI-DRV-ohjain on kirjoitettu SPARK 2014 -kielellä ja jonka avulla voit liittää ATA-liitäntää tukevia asemia tai yksittäisiä levyosioita komponentteihin.
- Parannettu unikernel-tuki MirageOS- ja Solo5-projekteissa.
- Adan kielityökalupaketti on päivitetty GNAT Community 2021 -julkaisua varten.
- Jatkuva integrointijärjestelmä on siirretty Bochs-emulaattorista QEMU/KVM-sisättyihin ympäristöihin.
- Linux-komponenttikuvat käyttävät Linux 5.4.66 -ydintä.
Lähde: opennet.ru