8 | | In a microkernel operating system certain functionality such as device drivers, file systems and networking is moved out from kernel space to user space. Code taken out of the kernel runs as a normal user process or processes. The microkernel itself provides only minimal functionality that is necessary for user processes to run and communicate. This strongly contrasts with the traditional monolithic operating systems that keep most of these functions inside the kernel. The main rationale for designing operating systems along the microkernel lines is that a bug in a kernel driver of a monolithic operating system usually results in the crash of the entire system whereas a bug in a user space driver of a microkernel operating system is confined to the user process in which the driver runs. |
| 8 | In a microkernel operating system certain functionality such as device |
| 9 | drivers, file systems and networking is moved out from the kernel space to |
| 10 | the user space. Code taken out of the kernel runs as a normal user process |
| 11 | or processes. The microkernel itself provides only minimal functionality |
| 12 | that is necessary for user processes to run and communicate. This |
| 13 | strongly contrasts with the traditional monolithic operating systems |
| 14 | that keep most of these functions inside the kernel. The main rationale |
| 15 | for constructing operating systems along the microkernel design lines has been |
| 16 | achieving greater extensibility by forcing most of the operating |
| 17 | system policies into the user space parts and leaving the microkernel |
| 18 | itself free of policies as much as possible. This makes it possible to use different operating |
| 19 | system personalities, potentially even in parallel, on top of the same |
| 20 | microkernel and easily change functionality that would have otherwise been |
| 21 | hardcoded in the operating system kernel. Note that multiserver |
| 22 | microkernels bring the additional benefit of a limited fault-tolerance: |
| 23 | a bug in a kernel driver of a monolithic operating system usually |
| 24 | results in the crash of the entire system whereas a bug in a user space |
| 25 | driver of a microkernel operating system is confined to the user process |
| 26 | in which the driver runs. |
| 27 | |