In microkernel architecture the operating system is divided into different modules. Every file system and a device driver is run as a different user process makes sure that if one system fails, other systems remain functional. Thus, each system is independent of each other. MINIX 3 is a POSIX compliant open source microkernel based operating system.
Here is the architecture of MINIX 3 microkernel operating system:
1) Microkernel: MINIX 3 microkernel contains C and assembly language codes. Microkernel manages interrupts, caching, processes, scheduling and Inter-process communication. It includes kernel calls for linking a handler to an interrupt, installation of a memory map for new process, and transfer of data between address spaces. It also contains kernel call handlers and device driver for clock.
2) Device drivers: Device driver is the lowest layer outside the microkernel. Device driver is used for controlling read or write for I/O ports.
3) Servers: It is a layer above the device drivers. Servers include file servers for file management, process servers for process management, and reincarnation server for servers and drivers management.
4) User programs: It is the topmost layer outside the microkernel. User programs are used for sending messages to the servers for different services.