Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 History  





2 Releases  





3 Architectural features  





4 Criticism  



4.1  C++  





4.2  XML  





4.3  Local namespacing  







5 Sculpt  





6 See also  





7 References  





8 External links  














Genode






العربية
Deutsch
Español
Français


Русский
 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


Genode
The desktop system Sculpt based on Genode
DeveloperGenode Labs
Written inC++
Working stateCurrent
Source modelOpen source
Initial release2008; 16 years ago (2008)
Latest release24.05[1] Edit this on Wikidata / 30 May 2024; 53 days ago (30 May 2024)
Repositorygithub.com/genodelabs/genode
Marketing targetDesktop computers
Embedded systems
Available inEnglish
PlatformsARM, RISC-V,[2] x86, x86-64[3]
Kernel typeMicrokernel
UserlandGenode, POSIX
LicenseAGPL-3.0-only and commercial
Official websitegenode.org

Genode is a free and open-source software operating system (OS) framework consisting of a microkernel abstraction layer and a set of user space components.[4][5][6] The framework is notable as one of the few open-source operating systems not derived from a proprietary OS, such as Unix. The characteristic design philosophy is that a small trusted computing base is of primary concern in a security-oriented OS.

Genode can be used as a basis for a desktop computer[7][8] or tablet[9] OS or as a virtual machine monitor for guest operating systems. The framework has been used as a trusted component of secure virtualization systems for both x86[10] and ARM.[11]

The small codebase of Genode makes it a flexible alternative to more complex Unix-derived operating systems. For this reason the framework has been used as a base system for research in such fields as virtualization,[12] inter-process communication,[13] IP stack isolation,[14][15] monitoring,[16] and software development.[17][18]

History

[edit]

Genode was first conceived as the Bastei OS Architecture[19] research report at the Technical University of Dresden (TU Dresden). The focus of the report was to determine the practicality of a component-based OS using capability-based security. This report was motivated in part by research into L4 microhypervisors[20] conducted during the same time. Following the success of an early prototype, the authors of the report founded the company Genode Labs to develop Bastei as the Genode OS Framework.

Releases

[edit]

The project is developed publicly as an open source project released under the terms of the GNU Affero General Public License with a commercial entity offering alternative licensing. Releases are scheduled at three-month intervals to make changes to the system application binary interface (ABI), application programming interface (API), and issue documentation. The OS framework is available in source code form and following the 18.02 release a general purpose derivative named Sculpt is provided with on-target binary deployment.

Architectural features

[edit]

Genode builds on the general philosophy of microkernels: the smaller and simpler the code, the easier it is to verify for trustworthiness and correctness. Genode extends this philosophy to user space by composing complex applications from small components. Each component exists in a strict hierarchy of parent-child relationships. Any component acting as a parent may apply resource and inter-process communication (IPC) access policies to its children. This hierarchical system layout yields intuitive partitioning and privilege deescalation as specialized subsystems are nested within more general subsystems, mitigating the confused deputy problem endemic to centralized or superuser system policy.

The framework is designed to be hosted by microkernels, however the features of any given microkernel fall mostly within a common set, and monolithic kernels implement a superset of those features. Abstracting these features allows Genode to act as user space for a variety of L4 microkernels,[21][22] and Linux.

Criticism

[edit]

C++

[edit]

Genode is often criticized for the choice of its implementation language, C++ (a few other operating systems implemented in C++ include BeOS, Fuchsia, Ghost, Haiku, IncludeOS, Managarm, OSv, Palm OS, ReactOS, SerenityOS, Syllable, and Symbian). This critique usually asserts that C++ is a poor choice for implementing system libraries and APIs because of the inherent complexity of C++ and the difficulty in analyzing code for correct behavior. While Genode does make use of multiple inheritance and templates in its system library, the use of the C++ Standard Library is not allowed and language features that rely on implicit global state, such as thread-local storage and the global allocator, have been removed from the language runtime.[23] Comprehensive static analysis of C++ is not possible. However, the Genode project publishes unit tests for empirical analysis.

XML

[edit]

Genode components consume and publish state using structured data serialized in XML, in contrast to the plain text model of Unix derivatives. The Genode framework makes use of XML in effectively all of its components because XML is easily parsed and generated programmatically while still being possible to understand and edit manually.

Local namespacing

[edit]

Genode lacks any practical global namespace; there is no global file system or registry of processes or IPC endpoints. This is in contrast to systems such as Unix which feature a ubiquitous file system and allow a superuser context to arbitrarily manage any process within the system. Explicitly declaring the permissions and routing of components may be perceived as labor-intensive relative to Unix. However, compartmentalizing administration allows subsystems to be managed by mutually untrusted system administrators on the same machine without resorting to virtualizing, a common isolation method.

Sculpt

[edit]

The Genode project publishes a desktop operating system named Sculpt that targets contemporary consumer laptops.[24] Sculpt is a small base system with automatic device detection and configuration, some GUI control interfaces, and frontends to the Genode package manager. The system does not feature a full desktop environment, but requires users to deploy virtual machines hosting traditional OSes for a fully featured desktop. Sculpt is distinguished from the Genode operating system framework in that it relies heavily on dynamic reconfiguration using privileged control components in contrast to specialized systems with static policies.

See also

[edit]

References

[edit]
  1. ^ "Release 24.05". 30 May 2024. Retrieved 22 June 2024.
  • ^ "Genode OS adds RISC-V support".
  • ^ Larabel, Michael. "Genode Is Developing A GPU Multiplexer For Intel Graphics Hardware". Phoronix.
  • ^ "Introduction of the Genode OS Framework". archive.fosdem.org/2012.
  • ^ "L4 Based Operating Systems". L4hq.org. Archived from the original on 2018-06-14. Retrieved 2018-06-01.
  • ^ Larabel, Michael. "Redox OS, MINIX, Hurd & Genode Had Their Time at FOSDEM Too". Phoronix.
  • ^ Baader, Hans-Joachim. "Genode 2018.2 mit Sculpt OS". pro-linux.de.
  • ^ Larabel, Michael. "Sculpt Aims to Be a General-Purpose OS Built Atop Genode".
  • ^ Tarasikov, Alexander (2013-05-11). "Porting Genode to commercial hardware". I hate software. Blogger.
  • ^ "Muen: An x86/64 Separation Kernel for High Assurance".
  • ^ Williams, John. "Inspecting data from the safety of your trusted execution environment" (PDF).
  • ^ "Embassies: Radically Refactoring the Web" (PDF). USENIX.
  • ^ Wegner, Martin; Holthusen, Sönke (2014-12-11). "Contract Specification and language". ccc-project.org. Archived from the original on 2019-03-27. Retrieved 2018-06-01.
  • ^ Hamad, Mohammad (2016-01-06). "The Secure Communication Module of CCC". ccc-project.org. Archived from the original on 2019-01-23. Retrieved 2018-06-01.
  • ^ Hamad, Mohammad. "A communication framework for distributed access control in microkernel-based systems" (PDF).
  • ^ Pruthiviraj, B.; Madhusuthun, G.S.; Vijayasarathy, S.; Chakrapani, K. "A Microkernel Based Secure Operating System Using Genode Framework" (PDF). JATIT.
  • ^ Hähne, Ludwig. "Empirical Comparison of SCons and GNU Make" (PDF).
  • ^ Millo-Sánchez, Reinier; Paz Rodríguez, Waldo; Fajardo-Moya, Alexis. "Genode OS Framework, un framework para el desarrollo de sistemas embebidos". ResearchGate.
  • ^ "TU Dresden technical report TUD-FI06-07" (PDF).
  • ^ "NOVA Microhypervisor".
  • ^ "L4 Based Operating Systems". L4hq.org. Archived from the original on 2018-06-14. Retrieved 2018-06-01.
  • ^ "SeL4 Community Projects". sel4.systems.
  • ^ "Genode's Conscious C++ dialect". genodians.org. Retrieved 2019-11-29.
  • ^ "Release notes 18.02".
  • [edit]
    Official websites
    Research projects

    Retrieved from "https://en.wikipedia.org/w/index.php?title=Genode&oldid=1216671169"

    Categories: 
    ARM operating systems
    Capability systems
    Free software operating systems
    Free software programmed in C++
    Microkernel-based operating systems
    Operating system security
    X86 operating systems
    X86-64 operating systems
    Hidden categories: 
    Articles with short description
    Short description is different from Wikidata
    Commons link is the pagename
    Official website different in Wikidata and Wikipedia
     



    This page was last edited on 1 April 2024, at 10:24 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki