152 lines
9.9 KiB
HTML
152 lines
9.9 KiB
HTML
<!-- HTML header for doxygen 1.9.1-->
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
|
<meta name="generator" content="Doxygen 1.15.0"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>L4Re Operating System Framework: L4Re Servers</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="navtreedata.js"></script>
|
|
<script type="text/javascript" src="navtree.js"></script>
|
|
<script type="text/javascript" src="cookie.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
|
|
<link href="l4re-awesome.css" rel="stylesheet" type="text/css"/>
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr style="height: 56px;">
|
|
<td id="projectlogo"><img alt="Logo" src="L4Re_rgb_logo_quer_hg_h55.png"/></td>
|
|
<td id="projectalign" style="padding-left: 0.5em;">
|
|
<div id="projectname">L4Re Operating System Framework
|
|
</div>
|
|
<div id="projectbrief">Interface and Usage Documentation</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.15.0 -->
|
|
<script type="text/javascript">
|
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
|
</script>
|
|
<script type="text/javascript">
|
|
$(function() { codefold.init(); });
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search',true);
|
|
$(function() { init_search(); });
|
|
});
|
|
</script>
|
|
<div id="main-nav"></div>
|
|
</div><!-- top -->
|
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
|
<div id="nav-tree">
|
|
<div id="nav-tree-contents">
|
|
<div id="nav-sync" class="sync"></div>
|
|
</div>
|
|
</div>
|
|
<div id="splitbar" style="-moz-user-select:none;"
|
|
class="ui-resizable-handle">
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
$(function(){initNavTree('l4re_servers.html','',''); });
|
|
</script>
|
|
<div id="container">
|
|
<div id="doc-content">
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<div id="MSearchResults">
|
|
<div class="SRPage">
|
|
<div id="SRIndex">
|
|
<div id="SRResults"></div>
|
|
<div class="SRStatus" id="Loading">Loading...</div>
|
|
<div class="SRStatus" id="Searching">Searching...</div>
|
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div><div class="header">
|
|
<div class="headertitle"><div class="title">L4Re Servers </div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<div class="textblock"><p>Here you shall find a quick overview over the standard services running on the <a class="el" href="namespaceL4Re.html" title="L4Re C++ Interfaces.">L4Re</a> Microkernel.</p>
|
|
<h1>Sigma0, the Root Pager </h1>
|
|
<p>Sigma0 is a special server running on <a class="el" href="namespaceL4.html" title="L4 low-level kernel interface.">L4</a> because it is responsible of resolving page faults for the root task, the first useful task on <a class="el" href="namespaceL4Re.html" title="L4Re C++ Interfaces.">L4Re</a>. Sigma0 can be seen as part of the kernel, however it runs in unprivileged mode. To run something useful on the <a class="el" href="namespaceL4Re.html" title="L4Re C++ Interfaces.">L4Re</a> Microkernel you usually need to run Sigma0, nevertheless it is possible to replace Sigma0 by a different implementation.</p>
|
|
<p>For more details see <a class="el" href="l4re_servers_sigma0.html">Sigma0, the Root-Pager</a></p>
|
|
<h1>Moe, the Root Task </h1>
|
|
<p>Moe is our implementation of the <a class="el" href="namespaceL4.html" title="L4 low-level kernel interface.">L4</a> root task that is responsible for bootstrapping the system, and to provide basic resource management services to the applications on top. Therefore Moe provides <a class="el" href="namespaceL4Re.html" title="L4Re C++ Interfaces.">L4Re</a> resource management and multiplexing services: </p><ul>
|
|
<li><b>Memory</b> in the form of memory allocators (<a class="el" href="classL4Re_1_1Mem__alloc.html" title="Memory allocation interface.">L4Re::Mem_alloc</a>, <a class="el" href="classL4_1_1Factory.html" title="C++ Factory interface, see Factory for the C interface.">L4::Factory</a>) and data spaces (<a class="el" href="classL4Re_1_1Dataspace.html" title="Interface for memory-like objects.">L4Re::Dataspace</a>) </li>
|
|
<li><b>Cpu</b> in the form of basic scheduler objects (<a class="el" href="classL4_1_1Scheduler.html" title="C++ interface of the Scheduler kernel object, see Scheduler for the C interface.">L4::Scheduler</a>) </li>
|
|
<li><b>Vcon</b> multiplexing for debug output (output only) </li>
|
|
<li><b>Virtual</b> <b>memory</b> <b>management</b> for applications, <a class="el" href="classL4Re_1_1Rm.html" title="Region map.">L4Re::Rm</a></li>
|
|
</ul>
|
|
<p>Moe further provides an implementation of <a class="el" href="namespaceL4Re.html" title="L4Re C++ Interfaces.">L4Re</a> name spaces (<a class="el" href="classL4Re_1_1Namespace.html" title="Name-space interface.">L4Re::Namespace</a>), 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 <a class="el" href="namespaceL4Re.html" title="L4Re C++ Interfaces.">L4Re</a> graphics session (L4Re::Goos).</p>
|
|
<p>To start the system Moe starts a single ELF program, the 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.</p>
|
|
<p>For more details see <a class="el" href="l4re_servers_moe.html">Moe, the Root-Task</a>.</p>
|
|
<h1>Ned, the Default Init Process </h1>
|
|
<p>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.</p>
|
|
<p>Ned is such an init process that allows system configuration via Lua scripts.</p>
|
|
<p>For more information see <a class="el" href="l4re_servers_ned.html">Ned</a>.</p>
|
|
<h1>Io, the Platform and Device Resource Manager </h1>
|
|
<p>Because all peripheral management in <a class="el" href="namespaceL4Re.html" title="L4Re C++ Interfaces.">L4Re</a> 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.</p>
|
|
<p>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).</p>
|
|
<p>For more details see <a class="el" href="io.html">Io, the Io Server</a>.</p>
|
|
<h1>Other Servers </h1>
|
|
<p>The following additional server package are available on top of the core <a class="el" href="namespaceL4Re.html" title="L4Re C++ Interfaces.">L4Re</a> environment.</p>
|
|
<ul>
|
|
<li><p class="startli">Rtc, the Real-Time Clock Server</p>
|
|
<p class="startli">is a simple multiplexer for real-time clock hardware on your platform.</p>
|
|
</li>
|
|
<li><p class="startli">fb-drv, the Low-Level Graphics Driver</p>
|
|
<p class="startli">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. <span class="tt">fb-drv</span> 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.</p>
|
|
</li>
|
|
<li><a class="el" href="l4re_servers_virtio_net_p2p.html">l4vio_net_p2p, a virtual network point-to-point link</a></li>
|
|
<li><a class="el" href="l4re_servers_vio_switch.html">l4vio_switch, a virtual network switch</a></li>
|
|
<li><a class="el" href="l4re_servers_uvmm.html">Uvmm, the virtual machine monitor</a></li>
|
|
<li><a class="el" href="l4re_servers_rtc_driver.html">RTC driver</a></li>
|
|
<li><p class="startli"><a class="el" href="l4re_servers_mag.html">Mag, the GUI Multiplexer</a></p>
|
|
<p class="startli">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.</p>
|
|
</li>
|
|
<li><a class="el" href="l4re_servers_sigma0.html">Sigma0, the Root-Pager</a></li>
|
|
<li><a class="el" href="l4re_servers_cons.html">Cons, the Console Multiplexer</a> </li>
|
|
</ul>
|
|
</div></div><!-- contents -->
|
|
</div><!-- PageDoc -->
|
|
</div><!-- doc-content -->
|
|
</div><!-- container -->
|
|
<!-- HTML footer for doxygen 1.9.1-->
|
|
<!-- start footer part -->
|
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
|
<ul>
|
|
<li class="footer">Generated on <span class="timestamp"></span> for L4Re Operating System Framework by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0 </li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html>
|