Subversion Repositories HelenOS-doc

Rev

Rev 7 | Rev 9 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
  3. "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
  4. <book>
  5.   <title>HelenOS Design Documentation</title>
  6.  
  7.   <chapter>
  8.  
  9.   <title>Introduction</title>
  10.       <graphic align="center" fileref="images/helenos.gif" />
  11.  
  12.       <para>The HelenOS project is an effort to develop an easily portable,
  13.       light but durable operating system. HelenOS supports SMP, multitasking
  14.       and multithreading on both 32-bit and 64-bit, little-endian and
  15.       big-endian, processor architectures, among wich are AMD64/EM64T
  16.       (x86-64), IA-32, IA-64 (Itanium), 32-bit MIPS, 32-bit PowerPC and SPARC
  17.       V9.</para>
  18.  
  19.       <para>This manual should help you understanding design concepts of
  20.       different part of the operating system.</para>
  21.  
  22.       <para>In case you are interested in our project or have any questions
  23.       about it, feel free to subscribe to our <ulink
  24.       url="http://www.helenos.eu/?reason=list">mailing list</ulink>. We are
  25.       looking for people to join our team or to merely try out our system and
  26.       become our beta testers.</para>
  27.   </chapter>
  28.  
  29.   <chapter>
  30.     <title>Architecture overview</title>
  31.     <para>Couple of words about microkernel concept etc </para>
  32.   </chapter>
  33.  
  34.   <chapter>
  35.     <title>Scheduling</title>
  36.     <section>
  37.         <title>Basic terms</title>
  38.         <para>Explain Task, Thread etc</para>
  39.     </section>
  40.  
  41.     <section>
  42.       <title>Context switching</title>
  43.  
  44.       <para>Something about context. Probably arch specific context notes.</para>
  45.     </section>
  46.    
  47.     <section>
  48.         <title>Kernel clock</title>
  49.         <para>timer interrupt handling, slices, timeouts, delays</para>
  50.     </section>
  51.  
  52.     <section>
  53.         <title>Scheduler</title>
  54.         <para>How scheduler designed and how it works.</para>
  55.     </section>
  56.    
  57.    
  58.   </chapter>
  59.  
  60.   <chapter>
  61.     <title>Synchronization</title>
  62.  
  63.     <section>
  64.       <title>Introduction. Concept.</title>
  65.  
  66.       <para>Couple of words about global conception of sychronization</para>
  67.     </section>
  68.    
  69.    
  70.     <section>
  71.         <title>Active kernel synchronization. Spinlock.</title>
  72.     <para>Spinlocks explanation. Arch specific notes.</para>
  73.     </section>
  74.        
  75.    
  76.    
  77.     <section>
  78.         <title>Passive kernel synchronization</title>
  79.  
  80.         <section>
  81.           <title>Mutex</title>
  82.  
  83.           <para>Mutex explanations</para>
  84.         </section>
  85.        
  86.         <section>
  87.           <title>Semaphore</title>
  88.  
  89.           <para>Semaphore explanations</para>
  90.         </section>
  91.  
  92.         <section>
  93.           <title>Read/Write Locks</title>
  94.  
  95.           <para>RWLocks explanation</para>
  96.         </section>
  97.        
  98.         <section>
  99.           <title>Wait queues</title>
  100.    
  101.           <para>Wait queue explanation</para>
  102.         </section>
  103.    
  104.    
  105.         <section>
  106.           <title>Conditional variables</title>
  107.    
  108.           <para>Condvars explanation</para>
  109.         </section>
  110.        
  111.     </section>
  112.    
  113.    
  114.     <section>
  115.       <title>Userspace synchronization. Futex.</title>
  116.  
  117.       <para>Idea. Futex explanation.</para>
  118.     </section>
  119.    
  120.   </chapter>
  121.  
  122.   <chapter>
  123.     <title>Memory management</title>
  124.  
  125.     <section>
  126.       <title>Virtual memory management</title>
  127.  
  128.       <para></para>
  129.     </section>
  130.  
  131.     <section>
  132.       <title>Physical memory management</title>
  133.  
  134.       <para></para>
  135.     </section>
  136.  
  137.     <section>
  138.       <title>Kernel allocators</title>
  139.  
  140.       <section>
  141.         <title>Buddy allocator</title>
  142.  
  143.         <para>Physical memory allocation is handled by buddy allocator.</para>
  144.       </section>
  145.  
  146.       <section>
  147.         <title>Slab allocator</title>
  148.  
  149.         <para></para>
  150.       </section>
  151.     </section>
  152.  
  153.     <section>
  154.       <title>Memory sharing</title>
  155.  
  156.       <para></para>
  157.     </section>
  158.   </chapter>
  159.  
  160.   <chapter>
  161.     <title>Hardware handling. Device drivers.</title>
  162.  
  163.     <para></para>
  164.   </chapter>
  165.  
  166.   <chapter>
  167.     <title>IPC</title>
  168.  
  169.     <para></para>
  170.   </chapter>
  171.  
  172.   <chapter>
  173.     <title>User-space</title>
  174.  
  175.     <para></para>
  176.   </chapter>
  177. </book>