1,177 → 1,40 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" |
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"> |
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ |
<!ENTITY chintro SYSTEM "ch_intro.xml"> |
<!ENTITY charcho SYSTEM "ch_arch_overview.xml"> |
<!ENTITY chsched SYSTEM "ch_scheduling.xml"> |
<!ENTITY chsynch SYSTEM "ch_synchronization.xml"> |
<!ENTITY chmemmg SYSTEM "ch_memory_management.xml"> |
<!ENTITY chipcom SYSTEM "ch_ipc.xml"> |
<!ENTITY chhware SYSTEM "ch_hardware.xml"> |
<!ENTITY chuspac SYSTEM "ch_userspace.xml"> |
]> |
|
<book> |
<title>HelenOS Design Documentation</title> |
<bookinfo> |
<title>HelenOS Design Documentation</title> |
</bookinfo> |
|
<chapter> |
<!-- Infroduction --> |
&chintro; |
|
<title>Introduction</title> |
<graphic align="center" fileref="images/helenos.gif" /> |
|
<para>The HelenOS project is an effort to develop an easily portable, |
light but durable operating system. HelenOS supports SMP, multitasking |
and multithreading on both 32-bit and 64-bit, little-endian and |
big-endian, processor architectures, among wich are AMD64/EM64T |
(x86-64), IA-32, IA-64 (Itanium), 32-bit MIPS, 32-bit PowerPC and SPARC |
V9.</para> |
|
<para>This manual should help you understanding design concepts of |
different part of the operating system.</para> |
|
<para>In case you are interested in our project or have any questions |
about it, feel free to subscribe to our <ulink |
url="http://www.helenos.eu/?reason=list">mailing list</ulink>. We are |
looking for people to join our team or to merely try out our system and |
become our beta testers.</para> |
</chapter> |
|
<chapter> |
<title>Architecture overview</title> |
<para>Couple of words about microkernel concept etc </para> |
</chapter> |
|
<chapter> |
<title>Scheduling</title> |
<section> |
<title>Basic terms</title> |
<para>Explain Task, Thread etc</para> |
</section> |
|
<section> |
<title>Context switching</title> |
|
<para>Something about context. Probably arch specific context notes.</para> |
</section> |
|
<section> |
<title>Kernel clock</title> |
<para>timer interrupt handling, slices, timeouts, delays</para> |
</section> |
|
<section> |
<title>Scheduler</title> |
<para>How scheduler designed and how it works.</para> |
</section> |
|
|
</chapter> |
|
<chapter> |
<title>Synchronization</title> |
|
<section> |
<title>Introduction. Concept.</title> |
|
<para>Couple of words about global conception of sychronization</para> |
</section> |
|
|
<section> |
<title>Active kernel synchronization. Spinlock.</title> |
<para>Spinlocks explanation. Arch specific notes.</para> |
</section> |
|
|
|
<section> |
<title>Passive kernel synchronization</title> |
|
<section> |
<title>Mutex</title> |
|
<para>Mutex explanations</para> |
</section> |
|
<section> |
<title>Semaphore</title> |
|
<para>Semaphore explanations</para> |
</section> |
|
<section> |
<title>Read/Write Locks</title> |
|
<para>RWLocks explanation</para> |
</section> |
|
<section> |
<title>Wait queues</title> |
|
<para>Wait queue explanation</para> |
</section> |
|
|
<section> |
<title>Conditional variables</title> |
|
<para>Condvars explanation</para> |
</section> |
|
</section> |
|
|
<section> |
<title>Userspace synchronization. Futex.</title> |
|
<para>Idea. Futex explanation.</para> |
</section> |
|
</chapter> |
|
<chapter> |
<title>Memory management</title> |
|
<section> |
<title>Virtual memory management</title> |
|
<para></para> |
</section> |
|
<section> |
<title>Physical memory management</title> |
|
<para></para> |
</section> |
|
<section> |
<title>Kernel allocators</title> |
|
<section> |
<title>Buddy allocator</title> |
|
<para>Physical memory allocation is handled by buddy allocator.</para> |
</section> |
|
<section> |
<title>Slab allocator</title> |
|
<para></para> |
</section> |
</section> |
|
<section> |
<title>Memory sharing</title> |
|
<para></para> |
</section> |
</chapter> |
|
<chapter> |
<title>Hardware handling. Device drivers.</title> |
|
<para></para> |
</chapter> |
|
<chapter> |
<title>IPC</title> |
|
<para></para> |
</chapter> |
|
<chapter> |
<title>User-space</title> |
|
<para></para> |
</chapter> |
<!-- Arch overview --> |
&charcho; |
|
<!-- Scheduling --> |
&chsched; |
|
<!-- Synchronization --> |
&chsynch; |
|
<!-- Memory management --> |
&chmemmg; |
|
<!-- Hardware handling --> |
&chhware; |
|
<!-- User space --> |
&chuspac; |
|
</book> |