Process Management and System Calls¶
When understanding MINIX 3, think of a system call as a flow completed by several specialized components rather than as a chain of functions executed inside one large kernel.
Who does what¶
Microkernel: responsible for the lowest-level mechanisms such as scheduling, IPC, and interrupts.
PM: responsible for the process lifecycle, including fork, exit, and signal coordination.
VM: responsible for address spaces and memory management, including mapping and page-fault-related handling.
VFS: responsible for the unified file-system entry point, including open, read, write, and path resolution.
Drivers: responsible for device access such as block devices, terminals, and network interfaces.
Take file reading as an example¶
A user program issues a read request.
The request crosses the system-call boundary and enters the service path.
VFS determines which file is being read, which descriptor is used, and whether permissions allow it.
If the data requires device access, VFS then coordinates with lower-level drivers or related servers.
The result returns to the calling process.
Take process creation as an example¶
A user program requests a new process.
PM participates in process lifecycle management.
VM handles address-space and memory-related preparation.
The microkernel provides low-level scheduling and foundational support.
The value of this split¶
Each component has clearer responsibilities, making analysis and replacement easier.
Process management, memory management, and the file system no longer blur into one massive kernel implementation.
When something goes wrong, it is easier to identify which layer failed instead of searching blindly through one huge kernel.