| Genode | |
|---|---|
![]() | |
| Desktop-System Sculpt basierend auf Genode | |
| Entwickler | Genode Labs |
| Lizenz(en) | AGPLv3 |
| Erstveröff. | August 2008 |
| Akt. Version | 25.11[1]vom27. November 2025 |
| 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 einfreiesBetriebssystem-Framework, welches aus einerMikrokern-Abstraktionsschicht und einer Sammlung von Komponenten für denBenutzermodus besteht. Das Framework stellt eines der wenigen Open-Source-Betriebssysteme dar, die kein proprietäres Betriebssystem zum Vorbild hatten – wie etwaUnix. 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 alsVirtual-Machine-Monitor für Gastsysteme genutzt werden. Das Framework wird als vertrauenswürdiger Teil vonVirtualisierungssystemen sowohl aufx86[10] als auchARM[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] undSoftwaretechnik[16][17] eingesetzt.
Genode wurde ursprünglich als „Bastei“-Betriebssystemarchitektur[18] im Rahmen eines Forschungsberichts an derTechnischen Universität Dresden entwickelt. Der Fokus des Berichts lag auf der Praxistauglichkeit eines komponentisierten Betriebssystems mitCapability-basiertem Sicherheitskonzept. Motiviert war der Bericht zum Teil durch die Erkenntnisse der zeitgleich stattfindenden Forschung amL4 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.
Das Projekt wird öffentlich als Open-Source-Projekt unter derGNU 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 undAPI enthalten. Sie dienen außerdem der regelmäßigen Dokumentation der Projektentwicklung.[20] Der Quellcode des Frameworks wird mittelsGit versioniert und aufGitHub gehostet.[21] Seit Version 18.02 wird außerdem ein auf Genode basierendes Allzweckbetriebssystem namens Sculpt in vorkompilierter Form angeboten.[22]
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 dessenKommunikation zu Dritten zu verwalten. Dadurch wird das Problem ungewollten Rechtemissbrauchs (engl. Confused Deputy Problem) gemildert, welches mitRoot-Konten oder zentralisierten Systemrichtlinien einhergeht.
Die Funktionen der verschiedenen existierenden Mikrokerne lassen sich größtenteils auf einer generischen Schnittstelle abbilden undmonolithische 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.