Rev 7 | Rev 9 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 3 | bondari | 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 | bondari | 5 | <title>HelenOS Design Documentation</title> |
| 3 | bondari | 6 | |
| 7 | <chapter> |
||
| 8 | bondari | 8 | |
| 6 | bondari | 9 | <title>Introduction</title> |
| 10 | <graphic align="center" fileref="images/helenos.gif" /> |
||
| 3 | bondari | 11 | |
| 6 | bondari | 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> |
||
| 3 | bondari | 18 | |
| 6 | bondari | 19 | <para>This manual should help you understanding design concepts of |
| 20 | different part of the operating system.</para> |
||
| 5 | bondari | 21 | |
| 6 | bondari | 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> |
||
| 3 | bondari | 27 | </chapter> |
| 5 | bondari | 28 | |
| 29 | <chapter> |
||
| 7 | jermar | 30 | <title>Architecture overview</title> |
| 8 | bondari | 31 | <para>Couple of words about microkernel concept etc </para> |
| 5 | bondari | 32 | </chapter> |
| 33 | |||
| 34 | <chapter> |
||
| 35 | <title>Scheduling</title> |
||
| 8 | bondari | 36 | <section> |
| 37 | <title>Basic terms</title> |
||
| 38 | <para>Explain Task, Thread etc</para> |
||
| 39 | </section> |
||
| 5 | bondari | 40 | |
| 8 | bondari | 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 | |||
| 5 | bondari | 58 | </chapter> |
| 59 | |||
| 60 | <chapter> |
||
| 61 | <title>Synchronization</title> |
||
| 62 | |||
| 63 | <section> |
||
| 8 | bondari | 64 | <title>Introduction. Concept.</title> |
| 5 | bondari | 65 | |
| 8 | bondari | 66 | <para>Couple of words about global conception of sychronization</para> |
| 5 | bondari | 67 | </section> |
| 8 | bondari | 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 | |||
| 5 | bondari | 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 | |||
| 6 | bondari | 143 | <para>Physical memory allocation is handled by buddy allocator.</para> |
| 5 | bondari | 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> |