Source-tree structure
Top-level directory
At the root of the directory tree, there is the following content:
- doc/
 - 
      
Documentation in plain text format, including the release notes of all versions. Practical hint: The comprehensive release notes conserve most of the hands-on documentation aggregated over the lifetime of the project. When curious about a certain topic, it is often worthwhile to "grep" for the topic within the release notes to get a starting point for investigation.
 - tool/
 - 
      
Tools and scripts to support the build system, various boot loaders, the tool chain, and the management of 3rd-party source code. Please find more information in the README file contained in the subdirectory.
 - repos/
 - 
      
The so-called source-code repositories, which contain the actual source code of the framework components. The source code is not organized within a single source tree but multiple trees. Each tree is called a source-code repository and has the same principle structure. At build time, a set of source-code repositories can be selected to be incorporated into the build process. Thereby, the source-code repositories provide a coarse-grained modularization of the framework.
 
Repositories overview
The <genode-dir>/repos/ directory contains the following source-code repositories.
- base/
 - 
      
The fundamental framework interfaces as well as the platform-agnostic parts of the core component (Section Core - the root of the component tree).
 - base-<platform>/
 - 
      
Platform-specific supplements of the base/ repository where <platform> corresponds to one of the following:
- linux
 - 
        
Linux kernel (both x86_32 and x86_64).
 - nova
 - 
        
NOVA microhypervisor. More information about the NOVA platform is provided by Section Execution on the NOVA microhypervisor (base-nova).
 - hw
 - 
        
The hw platform allows the execution of Genode on bare hardware without the need for a third-party kernel. The kernel functionality is included in the core component. It supports the 32-bit ARM, 64-bit ARM, 64-bit x86, and 64-bit RISC-V CPU architectures. More information about the hw platform can be found in Section Execution on bare hardware (base-hw).
 - sel4
 - 
        
The seL4 microkernel combines the L4-kernel philosophy with formal verification. The support for this kernel is experimental.
 - foc
 - 
        
Fiasco.OC is a modernized version of the L4/Fiasco microkernel with a completely revised kernel interface fostering capability-based security.
 - okl4
 - 
        
OKL4 kernel originally developed at Open-Kernel-Labs.
 - pistachio
 - 
        
L4ka::Pistachio kernel developed at University of Karlsruhe.
 - fiasco
 - 
        
L4/Fiasco kernel originally developed at Technische Universität Dresden.
 
 - os/
 - 
      
OS components such as the init component, device drivers, and basic system services.
 - demo/
 - 
      
Various services and applications used for demonstration purposes, for example the graphical application launcher and the tutorial browser described in Section A simple system scenario can be found here.
 - hello_tutorial/
 - 
      
Tutorial for creating a simple client-server scenario. This repository includes documentation and the complete source code.
 - libports/
 - 
      
Ports of popular open-source libraries, most importantly the C library. Among the 3rd-party libraries are the standard C++ library, Qt5, FreeType, ncurses, libUSB, curl, lwip, and Mesa.
 - dde_linux/
 - 
      
Device-driver environment for executing Linux kernel subsystems as user-level components. Besides hosting ports of generic Linux kernel subsystems such as the TCP/IP stack, it is the basis for many board-specific drivers hosted in other repositories.
 - dde_ipxe/
 - 
      
Device-driver environment for executing network drivers of the iPXE project.
 - dde_bsd/
 - 
      
Device-driver environment for audio drivers ported from OpenBSD.
 - dde_rump/
 - 
      
Port of rump kernels, which are used to execute subsystems of the NetBSD kernel as user-level components. The repository contains a server that uses a rump kernel to provide various NetBSD file systems.
 - pc/
 - 
      
Device drivers for x86 PC hardware. The pc repository depends on the _dde_linux repository because drivers such as the USB stack, the Intel wireless stack, or the Intel graphics driver are based on the framework infrastructure of dde_linux/.
 - ports/
 - 
      
Ports of 3rd-party applications.
 - gems/
 - 
      
Components that use both native Genode interfaces as well as features of other high-level repositories, in particular shared libraries provided by libports/.
 
In addition to the repositories hosted in Genode's main source tree, there exist a number of external repositories that extend the framework with optional features such as additional components and board support for various hardware platforms.
- Additional repositories maintained by Genode Labs