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 |
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 |
AHCI driver | |
Cons, the Console Multiplexer | Cons allows to multiplex console output from different L4 clients to different L4::Vcon-capable in/output servers |
Mag, the GUI Multiplexer | Mag is the default multiplexer for graphics hardware |
NVMe server | |
▼Uvmm, the virtual machine monitor | Uvmm provides a virtual machine for running an unmodified guest in non-privileged mode |
RAM configuration | |
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 |
Bootstrap, the L4 kernel bootstrapper | |
Deprecated List |