![]() |
L4Re Operating System Framework
Interface and Usage Documentation
|
Introduction | The intention of this section is to provide a short overview about the L4Re Operating System Framework |
Tutorial | This tutorial assumes that the reader is familiar with the basic L4 concepts that were discussed in the Introduction section |
▼Programming for L4Re | This part of the documentation discusses the concept of microkernel-based programming in more detail |
L4 Inter-Process Communication (IPC) | Inter-process communication (IPC) is the fundamental communication mechanism in the L4Re Microkernel |
Kernel ABI | This section details the binary representation of the IPC interface of the kernel |
Capabilities and Naming | The L4Re system is a capability based system which uses and offers capabilities to implement fine-grained access control |
Spaces and Mappings | Each task in the L4Re system has access to two resource spaces (three on IA32) which are maintained by the kernel |
Initial Environment and Application Bootstrapping | New applications that are started by a loader conforming to L4Re get provided an Initial Environment |
Memory management - Data Spaces and the Region Map | |
Program Input and Output | The initial environment provides a Vcon capability used as the standard input/output stream |
Initial Memory Allocator and Factory | The purpose of the memory allocator and of the factory is to provide the application with the means to allocate memory (in the form of data spaces) and kernel objects respectively |
Application and Server Building Blocks | So far we have discussed the environment of applications in which a single thread runs and which may invoke services provided through their initial objects |
Pthread Support | L4Re supports the standard pthread library functionality |
Interface Definition Language | An interface definition in L4Re is normally declared as a class derived from L4::Kobject_t |
▼L4Re Build System | L4Re uses a custom make-based build system, often simply referred to as BID |
prog.mk - Application Role | The prog role is used to build executable programs |
include.mk - Header File Role | The header file role is responsible for installing header file at the appropriate location |
test.mk - Test Application Role | The test role is very similar to the application role, it also builds an executable binary |
Kernel Factory | The kernel factory is a kernel object that provides the ability to create new kernel objects dynamically |
▼L4Re Servers | Here you shall find a quick overview over the standard services running on the L4Re Microkernel |
Sigma0, the Root-Pager | Sigma0 is a special L4 server that serves as the origin for mapping memory |
Moe, the Root-Task | Moe is the default root-task implementation for L4Re-based systems |
Ned, the Init Process | Ned's job is to bootstrap the system running on L4Re |
Io, the Io Server | The Io server handles all platform devices and resources such as I/O memory, ports (on x86) and interrupts, and grants access to those to clients |
l4vio_net_p2p, a virtual network point-to-point link | The virtual network point-to-point server (p2p) connects two clients with a virtual network connection |
l4vio_switch, a virtual network switch | |
▼Uvmm, the virtual machine monitor | Uvmm provides a virtual machine for running an unmodified guest in non-privileged mode |
RAM configuration | |
RTC driver | |
NVMe server | |
Mag, the GUI Multiplexer | Mag is the default multiplexer for graphics hardware |
Cons, the Console Multiplexer | |
AHCI driver | |
uvmm_dtg The device tree generator for Uvmm | |
Bootstrap, the L4 kernel bootstrapper | |
Deprecated List |