Genode

Genode

Desktop-System Sculpt basierend auf Genode
Entwickler Genode Labs
Lizenz(en) AGPLv3
Erstveröff. August 2008
Akt. Version 24.02[1] vom 29. Februar 2024
Kernel Mikrokern
Architektur(en) Arm, RISC-V,[2] x86 (IA-32, x64)[3]
Kompatibilität Genode API, POSIX
Sprache(n) Englisch
genode.org

Genode[4][5][6] ist ein freies Betriebssystem-Framework, welches aus einer Mikrokern-Abstraktionsschicht und einer Sammlung von Komponenten für den Benutzermodus besteht. Das Framework stellt eines der wenigen Open-Source-Betriebssysteme dar, die kein proprietäres Betriebssystem zum Vorbild hatten – wie etwa Unix. Das Design zielt vor allem darauf ab, die Menge an Quellcode, der eine Komponente vertrauen muss (engl. Trusted Computing Base), möglichst klein zu halten.

Genode kann als Basis für Desktop-[7][8] oder Tablet-Betriebssysteme[9] sowie als Virtual-Machine-Monitor für Gastsysteme genutzt werden. Das Framework wird als vertrauenswürdiger Teil von Virtualisierungssystemen sowohl auf x86[10] als auch ARM[11] eingesetzt.

Durch die kleine Codebasis dient Genode als flexible Alternative zu komplexeren unixoiden Betriebssystemen. Aus diesem Grund wird das Framework auch als Basissystem in der Forschung zu Themen wie Virtualisierung,[12] Interprozesskommunikation,[13] IP-Stack-Isolierung,[14] Monitoring[15] und Softwaretechnik[16][17] eingesetzt.

Geschichte

Genode wurde ursprünglich als "Bastei"-Betriebssystemarchitektur[18] im Rahmen eines Forschungsberichts an der Technischen Universität Dresden entwickelt. Der Fokus des Berichts lag auf der Praxistauglichkeit eines komponentisierten Betriebssystems mit Capability-basiertem Sicherheitskonzept. Motiviert war der Bericht zum Teil durch die Erkenntnisse der zeitgleich stattfindenden Forschung am L4 Microhypervisor.[19] Angetrieben durch den Erfolg eines ersten Prototyps gründeten die Autoren des Berichts ein Unternehmen für die Weiterentwicklung der Bastei-Architektur zu einem umfassenden Betriebssystem-Framework unter dem Namen Genode.

Versionen

Das Projekt wird öffentlich als Open-Source-Projekt unter der GNU Affero General Public License weiterentwickelt. Für den kommerziellen Einsatz stehen zudem alternative Lizenzmodelle zur Verfügung. Hauptversionen werden im Dreimonats-Takt veröffentlicht und können Änderungen an der Betriebssystem-ABI und API enthalten. Sie dienen außerdem der regelmäßigen Dokumentation der Projektentwicklung.[20] Der Quellcode des Frameworks wird mittels Git versioniert und auf GitHub gehostet.[21] Seit Version 18.02 wird außerdem ein auf Genode basierendes Allzweckbetriebssystem namens Sculpt in vorkompilierter Form angeboten.[22]

Architektur

Die Genode-Architektur setzt auf den Mikrokernansatz – je kleiner und einfacher der Quellcode, desto einfacher lassen sich Attribute wie Vertrauenswürdigkeit und Korrektheit verifizieren. Genode weitet diese Philosophie auf den Benutzermodus aus, indem es komplexe Anwendungen durch das Zusammenwirken kleiner, gegeneinander geschützter Komponenten arrangiert. Alle Komponenten eines Systems ordnen sich in eine strikte Eltern-Kind-Hierarchie ein. Ist eine Komponente Elternteil einer anderen, so ist sie dafür zuständig, dem Kind Ressourcen zur Verfügung zu stellen und dessen Kommunikation zu Dritten zu verwalten. Dadurch wird das Problem ungewollten Rechtemissbrauchs (engl. Confused Deputy Problem) gemildert, welches mit Root-Konten oder zentralisierten Systemrichtlinien einhergeht.

Die Funktionen der verschiedenen existierenden Mikrokerne lassen sich größtenteils auf einer generischen Schnittstelle abbilden und monolithische Kerne implementieren eine Übermenge davon. Genode nutzt diese Tatsache, um von den Unterschieden zwischen den Kernen zu abstrahieren, und kann deshalb auf mehreren Kernen der L4-Familie,[23][24] dem NOVA Microhypervisor,[25] dem Muen Separation Kernel,[26] aber auch einer Eigenentwicklung betrieben werden. Zudem kann Genode, zur einfacheren Entwicklung und Analyse von Prototypen, direkt auf dem Linux-Kern ausgeführt werden. Seit Version 16.08 sind Genode-Programme kernagnostisch,[27] können also ohne Rekompilieren mit allen unterstützten Kernen ausgeführt werden, sofern die Prozessorarchitektur gleich bleibt.

Weblinks

  • genode.org
  • genode auf GitHub
  • KV-Cache: A Scalable High-Performance Web-Object Cache for Manycore
  • TrApps: Secure Compartments in the Evil Cloud
  • Development of an Embedded Platform for Secure CPS Services
  • Secure-OS project of IIT Madras

Einzelnachweise

  1. Release 24.02. 29. Februar 2024 (abgerufen am 22. März 2024).
  2. Genode OS adds RISC-V support. Abgerufen im 1. Januar 1 
  3. Michael Larabel: Genode Is Developing A GPU Multiplexer For Intel Graphics Hardware. In: Phoronix. Abgerufen im 1. Januar 1 
  4. Introduction of the Genode OS Framework. In: archive.fosdem.org/2012. Abgerufen im 1. Januar 1 
  5. L4 Based Operating Systems. In: L4hq.org. Archiviert vom Original am 14. Juni 2018; abgerufen am 12. September 2018.  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/l4hq.org 
  6. Michael Larabel: Redox OS, MINIX, Hurd & Genode Had Their Time At FOSDEM Too. In: Phoronix. Abgerufen im 1. Januar 1 
  7. Hans-Joachim Baader: Genode 2018.2 mit Sculpt OS. In: pro-linux.de. Abgerufen im 1. Januar 1 
  8. Michael Larabel: Sculpt Aims To Be A General-Purpose OS Built Atop Genode. Abgerufen im 1. Januar 1 
  9. Alexander Tarasikov: Porting Genode to commercial hardware. In: allsoftwaresucks.blogspot.com. Abgerufen im 1. Januar 1 
  10. Muen - An x86/64 Separation Kernel for High Assurance. Abgerufen im 1. Januar 1 
  11. John Williams: Inspecting data from the safety of your trusted execution environment. Abgerufen im 1. Januar 1 
  12. Embassies: Radically Refactoring the Web. USENIX; abgerufen im 1. Januar 1 
  13. Martin Wegner, Sönke Holthusen: Contract Specification and language. In: ccc-project.org. Archiviert vom Original am 27. März 2019; abgerufen am 12. September 2018.  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/ccc-project.org 
  14. Mohammad Hammad: The Secure Communication Module of CCC. In: ccc-project.org. Archiviert vom Original am 23. Januar 2019; abgerufen am 12. September 2018.  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/ccc-project.org 
  15. B.PRUTHIVIRAJ, G.S.MADHUSUTHUN, S.VIJAYASARATHY, K.CHAKRAPANI: A MICROKERNEL BASED SECURE OPERATING SYSTEM USING GENODE FRAMEWORK. In: jatit.org. Abgerufen im 1. Januar 1 
  16. Ludwig Hähne: Empirical Comparison of SCons and GNU Make. Abgerufen im 1. Januar 1 
  17. Millo-Sánchez, Reinier & Paz Rodríguez, Waldo & Fajardo-Moya, Alexis: Genode OS Framework, un framework para el desarrollo de sistemas embebidos. In: ResearchGate. Abgerufen im 1. Januar 1 
  18. TU Dresden technical report TUD-FI06-07. Abgerufen im 1. Januar 1 
  19. NOVA Microhypervisor. Abgerufen im 1. Januar 1 
  20. Genode - Release notes for the Genode OS Framework. Abgerufen am 13. September 2018 (amerikanisches Englisch). 
  21. genodelabs/genode. Abgerufen am 13. September 2018 (englisch). 
  22. Genode - Sculpt OS. Abgerufen am 13. September 2018 (amerikanisches Englisch). 
  23. L4 Based Operating Systems. In: L4hq.org. Archiviert vom Original am 14. Juni 2018; abgerufen am 12. September 2018.  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/l4hq.org 
  24. SeL4 Community Projects. In: sel4.systems. Abgerufen im 1. Januar 1 
  25. Udo Steinberg: NOVA Microhypervisor. Abgerufen am 24. September 2018 (englisch). 
  26. Muen | SK for x86/64. Abgerufen am 24. September 2018 (englisch). 
  27. Release notes 16.08. Abgerufen im 1. Januar 1