Rev 8 | Rev 52 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 8 | Rev 9 | ||
|---|---|---|---|
| Line 1... | Line 1... | ||
| 1 | <?xml version="1.0" encoding="UTF-8"?> |
1 | <?xml version="1.0" encoding="UTF-8"?> |
| 2 | <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" |
2 | <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" |
| 3 | "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"> |
3 | "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ |
| - | 4 | <!ENTITY chintro SYSTEM "ch_intro.xml"> |
|
| - | 5 | <!ENTITY charcho SYSTEM "ch_arch_overview.xml"> |
|
| - | 6 | <!ENTITY chsched SYSTEM "ch_scheduling.xml"> |
|
| - | 7 | <!ENTITY chsynch SYSTEM "ch_synchronization.xml"> |
|
| - | 8 | <!ENTITY chmemmg SYSTEM "ch_memory_management.xml"> |
|
| - | 9 | <!ENTITY chipcom SYSTEM "ch_ipc.xml"> |
|
| - | 10 | <!ENTITY chhware SYSTEM "ch_hardware.xml"> |
|
| - | 11 | <!ENTITY chuspac SYSTEM "ch_userspace.xml"> |
|
| - | 12 | ]> |
|
| - | 13 | ||
| 4 | <book> |
14 | <book> |
| - | 15 | <bookinfo> |
|
| 5 | <title>HelenOS Design Documentation</title> |
16 | <title>HelenOS Design Documentation</title> |
| - | 17 | </bookinfo> |
|
| 6 | 18 | ||
| - | 19 | <!-- Infroduction --> |
|
| 7 | <chapter> |
20 | &chintro; |
| - | 21 | ||
| - | 22 | <!-- Arch overview --> |
|
| - | 23 | &charcho; |
|
| - | 24 | ||
| - | 25 | <!-- Scheduling --> |
|
| - | 26 | &chsched; |
|
| - | 27 | ||
| - | 28 | <!-- Synchronization --> |
|
| - | 29 | &chsynch; |
|
| - | 30 | ||
| - | 31 | <!-- Memory management --> |
|
| - | 32 | &chmemmg; |
|
| - | 33 | ||
| - | 34 | <!-- Hardware handling --> |
|
| - | 35 | &chhware; |
|
| - | 36 | ||
| - | 37 | <!-- User space --> |
|
| - | 38 | &chuspac; |
|
| 8 | 39 | ||
| 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> |
40 | </book> |
| 178 | 41 | ||