Genode

Genode
Logo
Sculpt-desktopsystemet baseret på Genode.
Sculpt-desktopsystemet baseret på Genode.
Sprog engelsk
Core typen Mikronukleus (NOVA, Genode micronúcleo, SeL4 , Linux , Fiasco OC , Fiasco , OkL4 , Pistachio )
Projektstatus I konstant udvikling
Depositum github.com/genodelabs/genode
Platforme x86 , x86-64 , ARM , RISC-V
Virksomhed /
Udvikler
Genode Labs, et al.
Licens AGPLv3
Kilde stater Open source fri software
Skrevet i C ++ og andre
Første version 8,11 (November 2008)
Seneste stabil version 19.02 (02/28/2019)
Internet side genode.org

Genode er en OS-ramme (arkitektur og sæt af generelle mekanismer, operativsystem eller "værktøjskasse") gratis og gratis . Den består af et abstraktionslag til mikrokerne og en samling af komponenter (tjenester) i brugerrummet . Det er bemærkelsesværdigt, at denne ramme er en af ​​de få i den frie verden, der ikke stammer fra et proprietært operativsystem som Unix . Designretningslinjen er, at det er vigtigt at reducere så meget som muligt antallet af kodelinjer, der udføres i kernetilstand eller i kritisk brugertilstand (de to udgør TCB , Trusted Computing Base , kildekode, som vi skal have tillid til) i et sikkerhedsorienteret operativsystem.

Genode kan bruges som grundlag for oprettelse af et operativsystem med et desktop-miljø eller til et tabletoperativsystem eller til en virtuel maskinskærm til et værtsoperativsystem. Den Genode rammer er allerede blevet brugt som en betroet komponent i sikre virtualisering systemer til x86 og ARM .

Den lille størrelse af Genodes kildekode gør det til et fleksibelt alternativ sammenlignet med mere komplekse operativsystemer, der stammer fra Unix. Af denne grund er denne ramme blevet brugt som grundlag for forskningsarbejde inden for områder som virtualisering, kommunikation mellem processer , isolering af IP-stack , overvågningssystemer og softwareudvikling .

Historisk

Genode har sin oprindelse i "Bastei Operating System Architecture", en forskningsrapport ved det tekniske universitet i Dresden . Denne afhandling fokuserede på den tekniske gennemførlighed af et operativsystem adskilt i komponenter (tjenester) og udstyret med en kapacitetsbaseret sikkerhedsmodel . Det blev til dels motiveret af forskningen på L4 mikronukleus udført i denne periode. Efter succesen med implementeringen af ​​en prototype grundlagde forfatterne af afhandlingen virksomheden Genode Labs, og Bastei blev derefter Genode OS-rammen .

Versioner

Projektet er offentligt udviklet efter open source- modellen under GNU Affero General Public License , med en kommerciel enhed, der tilbyder alternative licenser. Versionerne følger hinanden med tre måneders intervaller for at foretage ændringer i ABI , API'er og opdatere dokumentationen. Kildekoden for rammerne er til rådighed, samt (siden version 18.02) et generelt formål styresystem baseret på Genode, kaldet Sculpt med binær implementering fil.

Arkitektur funktioner

Genode er baseret på mikrokernels generelle filosofi - jo enklere og mindre kildekoden er, jo lettere er det at kontrollere, at den er korrekt og pålidelig. Genode udvider denne filosofi til brugerområdet ved at samle komplekse applikationer fra små komponenter. Hver komponent findes i et strengt hierarki af forældre-barn-forhold. Enhver komponent, der spiller rollen som forælder, kan anvende politikker for adgang til ressourcer og kommunikationsmekanismer ( IPC ) for sine børn. Dette hierarkiske organisationssystem resulterer i intuitiv partitionering og en gradvis reduktion af privilegier, hvor specialiserede undersystemer er underordnet mere generelle systemer, hvilket reducerer risikoen for forvirret stedfortrædende problem endemisk i centraliserede eller superbruger- systemer .

Den rammer er designet til at køre på en mikrokernen; men de fleste mikrokerner har et sæt funktioner til fælles, og hybridkerner implementerer et supersæt af dette fælles fundament. Abstraktion af disse funktioner giver Genode mulighed for at fungere som et brugerrum til en række L4-mikrokerner såvel som til Linux.

Anmeldelser

C ++

Genode kritiseres ofte for at vælge C ++ som implementeringssprog (et valg, der deles af andre operativsystemer, herunder BeOS , Fuchsia , Ghost , Haiku , IncludeOS , OSv , Palm OS , ReactOS , Syllable og alle større webbrowser-motorer). Kritikere hævder generelt, at C ++ er et dårligt valg for systembiblioteker og API'er på grund af dens iboende kompleksitet og vanskelighederne med at kontrollere rigtigheden af ​​implementeringen. Selvom Genode bruger flere arv og skabeloner i systembibliotekerne, er brugen af standard C ++ - biblioteket forbudt der, og funktionerne i C ++, som kræver en implicit global tilstand, såsom TLS og global global, er deaktiveret i løbetiden . C ++ tillader ikke dybdegående statisk analyse, men Genode-projektet implementerer og udgiver enhedstest, der giver empirisk analyse.

XML

Genode-komponenter forbruger og offentliggør deres tilstand via XML i serie, i modsætning til UNIX-derivaternes "almindelige tekst" -model. XML kritiseres ofte for sin komplekse funktionalitet, ineffektive repræsentation og den relative vanskelighed ved manuel redigering af XML-dokumenter. Genode-projektet gør brug af XML i stort set alle dens komponenter, fordi XML er let at analysere og generere af programmer, mens det stadig bevarer muligheden for at blive læst og redigeret i hånden. Dialekten, der bruges af Genode, er en simpel delmængde af fuld XML, men uerfarne brugere nævner ofte redigering af XML som kedelig og tilbøjelig til fejl. Da der ikke bruges nogen XML-specifik funktionalitet, kan Genodes konfigurationssprog potentielt erstattes af enklere sprog som JSON , men ingen migrationsplan meddeles på nuværende tidspunkt.

Navneområder

Genode er blottet for ethvert globalt navneområde som sådan, der er ingen filsystem, registreringsdatabase, proces eller IPC-forbindelse, der deles globalt. Dette placerer det i modsætning til systemer som UNIX, som inkluderer et allestedsnærværende filsystem og tillader superbrugeropgaver at påvirke enhver proces på en vilkårlig måde. Eksplicit at erklære komponenttilladelser og routing kan virke overvældende i forhold til UNIX. På den anden side tillader administrationsinddeling, at undersystemer styres på den samme maskine af administratorer, der ikke stoler på hinanden uden faktisk at bruge virtualisering, hvilket er den sædvanlige isoleringsmetode.

Skulptur

Genode-projektet frigiver et operativsystem til pc'er kaldet "Sculpt", der er rettet mod moderne bærbare computere. Sculpt er et lille basissystem, der tilbyder automatisk enhedspåvisning og konfiguration, grafiske kontrolgrænseflader og en grænseflade til Genodes pakkehåndtering. Dette system tilbyder ikke et komplet skrivebordsmiljø, men kræver implementering af en eller flere virtuelle maskiner, der er vært for traditionelle operativsystemer for at opnå et komplet skrivebord. Sculpt adskiller sig fra Genode- rammen ved sin omfattende brug af dynamisk omkonfiguration gennem privilegerede kontrolkomponenter i stedet for specialiserede systemer med statiske politikker.

Se også

Noter og referencer

  1. "  NOVA OS virtualiseringsarkitektur  "
  2. Martin Stein , ”  En kerne i et bibliotek, FOSDEM 2017  ”
  3. Michael Larabel , “  Genode udvikler en GPU multiplexer til Intel Graphics Hardware  ” , på Phoronix
  4. "  Genode OS tilføjer RISC-V support  "
  5. “  Introduktion af Genode OS Framework  ” , på archive.fosdem.org/2012
  6. “  L4-baserede operativsystemer  ” , på L4hq.org
  7. Michael Larabel , "  Redox OS, MINIX, Hurd & Genode havde deres tid på FOSDEM også  " , på Phoronix
  8. Hans-Joachim Baader , “  Genode 2018.2 mit Sculpt OS  ” , på prolinux.de
  9. Michael Larabel , "  Sculpt sigter mod at være et OS til generel brug bygget oven på genoden  "
  10. Alexander Tarasikov , "  Porting Genode to commercial hardware,  "allsoftwaresucks.blogspot.com ,11. maj 2013
  11. "  Muen - En x86 / 64 Separation Kerne til High Assurance  "
  12. John Williams , "  Inspektion af data fra sikkerheden i dit betroede udførelsesmiljø  "
  13. "  Ambassader: Radact Refactoring på Internettet  " , USENIX
  14. Martin Wegner, Sönke Holthusen , “  Kontraktspecifikation og sprog  ” , på ccc-project.org ,11. december 2014
  15. Mohammad Hamad , “  CCC's Secure Communication Module  ”ccc-project.org ,6. januar 2016
  16. Mohammad Hamad , “  En kommunikationsramme for distribueret adgangskontrol i mikrokernelbaserede systemer  ”
  17. B.PRUTHIVIRAJ, GSMADHUSUTHUN, S.VIJAYASARATHY, K.CHAKRAPANI , ”  A-mikrokernen BASERET sikre operativsystem BRUG GENODE RAMME  ” , på jatit.org
  18. Ludwig Hähne , "  Empirisk sammenligning af SCons og GNU Make  "
  19. Millo-Sánchez, Reinier & Paz Rodríguez, Waldo & Fajardo-Moya, Alexis , “  Genode OS Framework, un framework para el desarrollo de sistemas embebidos  ” , på ResearchGate
  20. "  TU Dresden teknisk rapport TUD-FI06-07  "
  21. "  NOVA Microhypervisor  "
  22. “  L4-baserede operativsystemer  ” , på L4hq.org
  23. “  SeL4 Community Projects  ” , på sel4.systems
  24. "  Udgivelsesnoter 18.02  "

eksterne links

Officielt websted

Forskningsprojekter