Rev 7 | Rev 9 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7 | Rev 8 | ||
---|---|---|---|
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 | <book> |
4 | <book> |
5 | <title>HelenOS Design Documentation</title> |
5 | <title>HelenOS Design Documentation</title> |
6 | 6 | ||
7 | <chapter> |
7 | <chapter> |
- | 8 | ||
8 | <title>Introduction</title> |
9 | <title>Introduction</title> |
9 | <graphic align="center" fileref="images/helenos.gif" /> |
10 | <graphic align="center" fileref="images/helenos.gif" /> |
10 | 11 | ||
11 | <para>The HelenOS project is an effort to develop an easily portable, |
12 | <para>The HelenOS project is an effort to develop an easily portable, |
12 | light but durable operating system. HelenOS supports SMP, multitasking |
13 | light but durable operating system. HelenOS supports SMP, multitasking |
13 | and multithreading on both 32-bit and 64-bit, little-endian and |
14 | and multithreading on both 32-bit and 64-bit, little-endian and |
14 | big-endian, processor architectures, among wich are AMD64/EM64T |
15 | big-endian, processor architectures, among wich are AMD64/EM64T |
15 | (x86-64), IA-32, IA-64 (Itanium), 32-bit MIPS, 32-bit PowerPC and SPARC |
16 | (x86-64), IA-32, IA-64 (Itanium), 32-bit MIPS, 32-bit PowerPC and SPARC |
16 | V9.</para> |
17 | V9.</para> |
17 | 18 | ||
18 | <para>This manual should help you understanding design concepts of |
19 | <para>This manual should help you understanding design concepts of |
19 | different part of the operating system.</para> |
20 | different part of the operating system.</para> |
20 | 21 | ||
21 | <para>In case you are interested in our project or have any questions |
22 | <para>In case you are interested in our project or have any questions |
22 | about it, feel free to subscribe to our <ulink |
23 | about it, feel free to subscribe to our <ulink |
23 | url="http://www.helenos.eu/?reason=list">mailing list</ulink>. We are |
24 | url="http://www.helenos.eu/?reason=list">mailing list</ulink>. We are |
24 | looking for people to join our team or to merely try out our system and |
25 | looking for people to join our team or to merely try out our system and |
25 | become our beta testers.</para> |
26 | become our beta testers.</para> |
26 | </chapter> |
27 | </chapter> |
27 | 28 | ||
28 | <chapter> |
29 | <chapter> |
29 | <title>Architecture overview</title> |
30 | <title>Architecture overview</title> |
30 | - | ||
31 | <para></para> |
31 | <para>Couple of words about microkernel concept etc </para> |
32 | </chapter> |
32 | </chapter> |
33 | 33 | ||
34 | <chapter> |
34 | <chapter> |
35 | <title>Scheduling</title> |
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> |
|
36 | 43 | ||
- | 44 | <para>Something about context. Probably arch specific context notes.</para> |
|
37 | <para></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 | ||
38 | </chapter> |
58 | </chapter> |
39 | 59 | ||
40 | <chapter> |
60 | <chapter> |
41 | <title>Synchronization</title> |
61 | <title>Synchronization</title> |
42 | 62 | ||
43 | <section> |
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> |
|
44 | <title></title> |
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> |
|
45 | 116 | ||
46 | <para></para> |
117 | <para>Idea. Futex explanation.</para> |
47 | </section> |
118 | </section> |
- | 119 | ||
48 | </chapter> |
120 | </chapter> |
49 | 121 | ||
50 | <chapter> |
122 | <chapter> |
51 | <title>Memory management</title> |
123 | <title>Memory management</title> |
52 | 124 | ||
53 | <section> |
125 | <section> |
54 | <title>Virtual memory management</title> |
126 | <title>Virtual memory management</title> |
55 | 127 | ||
56 | <para></para> |
128 | <para></para> |
57 | </section> |
129 | </section> |
58 | 130 | ||
59 | <section> |
131 | <section> |
60 | <title>Physical memory management</title> |
132 | <title>Physical memory management</title> |
61 | 133 | ||
62 | <para></para> |
134 | <para></para> |
63 | </section> |
135 | </section> |
64 | 136 | ||
65 | <section> |
137 | <section> |
66 | <title>Kernel allocators</title> |
138 | <title>Kernel allocators</title> |
67 | 139 | ||
68 | <section> |
140 | <section> |
69 | <title>Buddy allocator</title> |
141 | <title>Buddy allocator</title> |
70 | 142 | ||
71 | <para>Physical memory allocation is handled by buddy allocator.</para> |
143 | <para>Physical memory allocation is handled by buddy allocator.</para> |
72 | </section> |
144 | </section> |
73 | 145 | ||
74 | <section> |
146 | <section> |
75 | <title>Slab allocator</title> |
147 | <title>Slab allocator</title> |
76 | 148 | ||
77 | <para></para> |
149 | <para></para> |
78 | </section> |
150 | </section> |
79 | </section> |
151 | </section> |
80 | 152 | ||
81 | <section> |
153 | <section> |
82 | <title>Memory sharing</title> |
154 | <title>Memory sharing</title> |
83 | 155 | ||
84 | <para></para> |
156 | <para></para> |
85 | </section> |
157 | </section> |
86 | </chapter> |
158 | </chapter> |
87 | 159 | ||
88 | <chapter> |
160 | <chapter> |
89 | <title>Hardware handling. Device drivers.</title> |
161 | <title>Hardware handling. Device drivers.</title> |
90 | 162 | ||
91 | <para></para> |
163 | <para></para> |
92 | </chapter> |
164 | </chapter> |
93 | 165 | ||
94 | <chapter> |
166 | <chapter> |
95 | <title>IPC</title> |
167 | <title>IPC</title> |
96 | 168 | ||
97 | <para></para> |
169 | <para></para> |
98 | </chapter> |
170 | </chapter> |
99 | 171 | ||
100 | <chapter> |
172 | <chapter> |
101 | <title>User-space</title> |
173 | <title>User-space</title> |
102 | 174 | ||
103 | <para></para> |
175 | <para></para> |
104 | </chapter> |
176 | </chapter> |
105 | </book> |
177 | </book> |