进程管理与系统调用¶
理解 MINIX 3 时,可以把一次系统调用想成“多个专职组件协作完成的一段流程”,而不是“一个大内核内部连续执行的一串函数”。
谁负责什么¶
微内核:负责最底层机制,例如调度、IPC 和中断。
PM:负责进程生命周期,例如 fork、exit 和信号协调。
VM:负责地址空间与内存管理,例如映射和缺页相关处理。
VFS:负责文件系统统一入口,例如 open、read、write 和路径解析。
驱动:负责设备访问,例如块设备、终端和网络设备交互。
以文件读取为例¶
用户程序发起 read 请求。
请求经由系统调用边界进入系统的服务路径。
VFS 负责理解“读哪个文件、用哪个描述符、权限是否允许”。
如果数据需要通过设备访问,VFS 再与下层驱动或相关服务器协作。
结果返回给调用进程。
以创建进程为例¶
用户程序请求创建新进程。
PM 参与进程生命周期管理。
VM 负责地址空间与内存相关准备。
微内核负责底层调度与基础机制支撑。
这种拆分的价值¶
每个组件职责更清楚,便于分析与替换。
进程管理、内存管理、文件系统不再混成一个庞大的内核实现。
出问题时更容易判断是哪个层次失效,而不是在一个巨大内核里盲查。