Subversion Repositories HelenOS-doc

Rev

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>