Microkernel (source code)

= Microkernel

An <operating-system kernel> design retaining essential protected mechanisms while moving services into <user-space services>. <Address spaces>, <software threads> and <IPC> form a useful small foundation: the <operating-system kernel> protects private state and controls communication, while a <file system> service interprets requests about <files>. This <separation of mechanism and policy> permits different service implementations to use the same protected interface. <On micro-kernel construction by Jochen Liedtke>[Liedtke, On micro-kernel construction, section 2, pp. 238–240: minimality criterion, address spaces, threads and IPC; section 3, pp. 240–241: user-level services]{ref}

The useful question is which authority a service needs. A <device driver> may require access to a device while having no permission to overwrite an unrelated application's <computer memory>. A <microkernel> makes such <protection domains> possible; their actual boundaries depend on the chosen <memory protection> and <security capabilities>.