summaryrefslogtreecommitdiff
path: root/microkernel/faq/multiserver_microkernel.mdwn
blob: ca9b217951f30ebf5abf611f2f383360ae68e52e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2008, 2009 Free
Software Foundation, Inc."]]

[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no Invariant
Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license
is included in the section entitled
[[GNU Free Documentation License|/fdl]]."]]"""]]

[[!meta title="What is a Multiserver Microkernel?"]]

A Microkernel has nothing to do with the size of the kernel.  Rather, it refers
to the functionality that the kernel provides.  It is generally agreed that
this is; a set of interfaces to allow processes to communicate and a way to
talk to the hardware.  *Software drivers*, as we like to call them, are then
implemented in user space as servers.  The most obvious examples of these are
the TCP/IP stack, the ext2 filesystem and NFS.  In the case of the Hurd, users
now have access to functionality that, in a monolithic kernel, they could never
use, but now, because the server runs in user space as the user that started
it, they may, for instance, mount an FTP filesystem in their home directory.

For more information about the design of the Hurd, read the paper by Thomas
Bushnell, BSG:
[[Towards_a_New_Strategy_of_OS_Design|hurd-paper]].