September 2016
Intermediate to advanced
775 pages
18h 22m
English
Assume that we want to create an operating system using a multi-server approach, similar to how it is done in MINIX 3 [j.mp/minix3] or GNU Hurd [j.mp/gnuhurd]. A multi-server operating system has a minimal kernel, called the microkernel, that runs in privileged mode. All the other services of the system are following a server architecture (driver server, process server, file server, and so forth). Each server belongs to a different memory address space and runs on top of the microkernel in user mode. The pros of this approach are that the operating system can become more fault-tolerant, reliable, and secure. For example, since all drivers are running in user mode on a driver server, a bug in a driver cannot crash the whole system, ...