95 lines
3.6 KiB
C
95 lines
3.6 KiB
C
/* vi:ft=c */
|
|
/**
|
|
|
|
\page l4re_servers L4Re Servers
|
|
\brief Here you shall find a tight overview over the standard services
|
|
running on Fiasco.OC and L4Re.
|
|
|
|
\section l4re_sigma0_overwview Sigma0, the Root Pager
|
|
|
|
Sigma0 is a special server running on L4 because it is responsible
|
|
of resolving page faults for the root task, the first useful task on
|
|
L4Re. Sigma0 can be seen as part of the kernel, however it runs in
|
|
unprivileged mode. To run something useful on Fiasco.OC you usually
|
|
need to run Sigma0, nevertheless it is possible to replace Sigma0
|
|
by a different implementation.
|
|
|
|
|
|
\section l4re_moe_intro Moe, the Root Task
|
|
|
|
Moe is our implementation of the L4 root task that is responsible for
|
|
bootstrapping the system, and to provide basic resource management services
|
|
to the applications on top. Therefore Moe provides L4Re resource management
|
|
an multiplexing services:
|
|
\li \b Memory in the form of memory allocators (L4Re::Mem_alloc, L4::Factory)
|
|
and data spaces (L4Re::Dataspace)
|
|
\li \b Cpu in the form of basic scheduler objects (L4::Scheduler)
|
|
\li \b Vcon multiplexing for debug output (output only)
|
|
\li \b Virtual \b memory \b management for applications, L4Re::Rm
|
|
|
|
Moe further provides an implementation of L4Re name spaces (L4Re::Namespace),
|
|
which are for example used to provide a read only directory of all multi-boot
|
|
modules. In the case of a boot loader, like grub that enables a VESA frame
|
|
buffer, there is also a single instance of an L4Re graphics session
|
|
(L4Re::Goos).
|
|
|
|
To start the system Moe starts a single ELF program, this init process. The
|
|
init process (usually Ned, see the next section) gets access to all resources
|
|
managed by Moe and to the Sigma0 root pager interface.
|
|
|
|
For more details see \subpage l4re_servers_moe "Moe, the Root-Task".
|
|
|
|
|
|
\section l4re_ned_intro Ned, the Default Init Process
|
|
|
|
To keep the root task free from complicated scripting engines and to avoid
|
|
circular dependencies in application startup (that could lead to dead locks)
|
|
the configuration and startup of the real system is managed by an extra task,
|
|
the init process.
|
|
|
|
Ned is such an init process that allows system configuration via Lua scripts.
|
|
|
|
For more information see \subpage l4re_servers_ned "Ned".
|
|
|
|
|
|
\section l4re_io_intro Io, the Platform and Device Resource Manager
|
|
|
|
Because all peripheral management of Fiasco.OC is done in user-level
|
|
applications, there is the need to have a centralized management of
|
|
the resources belonging to the platform and to peripheral devices.
|
|
|
|
This is the job of Io. Io provides portable abstractions for iterating and
|
|
accessing devices and their resources (IRQ's, IO Memory...), as well as
|
|
delegating access to those resources to other applications (e.g., device
|
|
drivers).
|
|
|
|
For more details see \subpage io "Io, the Io Server".
|
|
|
|
|
|
\section l4re_mag_intro Mag, the GUI Multiplexer
|
|
|
|
Our default multiplexer for the graphics hardware is Mag. Mag is a
|
|
Nitpicker (TODO: ref) derivate that allows secure multiplexing of the
|
|
graphics and input hardware among multiple applications and multiple complete
|
|
windowing environments.
|
|
|
|
\todo Add some Nitpicker reference
|
|
|
|
|
|
\section l4re_fbdrv_intro fb-drv, the Low-Level Graphics Driver
|
|
|
|
The fb-drv server provides low-level access and initialization of various
|
|
graphics hardware. It has support for running VESA BIOS calls on Intel x86
|
|
platforms, as well as support for various ARM display controllers.
|
|
\em fb-drv, provides a single instance of the L4Re::Goos interface and can
|
|
serve as a back end for the Mag server, in particular, if there is no graphics
|
|
support in the boot loader.
|
|
|
|
|
|
\section l4re_rtc_intro Rtc, the Real-Time Clock Server
|
|
|
|
Rtc is a simple multiplexer for real-time clock hardware on your platform.
|
|
|
|
|
|
*/
|