6,7 → 6,7 |
|
<para>The HelenOS operating system is designed as a relatively small |
microkernel assisted with a set of userspace drivers and server tasks. |
HelenOS is not very radical in what subsystems should or should not be |
HelenOS is not very radical in which subsystems should or should not be |
implemented in the kernel - in some cases, both kernel and userspace drivers |
exist. The reason for creating the system as a microkernel is prosaic. Even |
though it is initially more difficult to get the same level of functionality |
97,12 → 97,12 |
</indexterm> |
|
<para>Userspace tasks depend on support of address spaces provided by the |
kernel. Each address space is a set of mutually dijunctive address space |
areas that group pages of common attributes. An address space area is |
usually connected to, and backed by, anonymous memory, executable image of |
some program or continuous region of physical memory. However, swapping |
pages in and out to external memory is not supported. Address space areas |
can be easily shared among address spaces.</para> |
kernel. Each address space is a set of mutually disjunctive address space |
areas. An address space area is usually connected to, and backed by, |
anonymous memory, executable image of some program or continuous region of |
physical memory. However, swapping pages in and out to external memory is |
not supported. Address space areas can be easily shared among address |
spaces.</para> |
</section> |
|
<section> |
142,11 → 142,11 |
</indexterm> |
|
<para>The abstraction uses terms like phones, calls and answerboxes, but |
is pretty similar to well-known abstraction of message queues. A task can |
have multiple simultaneous simplex connections to several other tasks. A |
is similar to well-known abstraction of message queues. A task can have |
multiple simultaneous simplex connections to several other tasks. A |
connection leads from one of the source task's phones to the destination |
task's answerbox. The phones are used as handles for making calls to other |
tasks. Calls can be synchronous or asynchronous and can be forwarded from |
one task to another.</para> |
tasks. Calls are asynchronous and can be forwarded from one task to |
another.</para> |
</section> |
</chapter> |
</chapter> |