Muen 1.0, avoimen lähdekoodin mikroytimen julkaisu erittäin luotettavien järjestelmien rakentamiseen

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.

Muen 1.0, avoimen lähdekoodin mikroytimen julkaisu erittäin luotettavien järjestelmien rakentamiseen

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

Lisää kommentti