进程管理与系统调用

理解 MINIX 3 时,可以把一次系统调用想成“多个专职组件协作完成的一段流程”,而不是“一个大内核内部连续执行的一串函数”。

谁负责什么

  • 微内核:负责最底层机制,例如调度、IPC 和中断。

  • PM:负责进程生命周期,例如 fork、exit 和信号协调。

  • VM:负责地址空间与内存管理,例如映射和缺页相关处理。

  • VFS:负责文件系统统一入口,例如 open、read、write 和路径解析。

  • 驱动:负责设备访问,例如块设备、终端和网络设备交互。

以文件读取为例

  1. 用户程序发起 read 请求。

  2. 请求经由系统调用边界进入系统的服务路径。

  3. VFS 负责理解“读哪个文件、用哪个描述符、权限是否允许”。

  4. 如果数据需要通过设备访问,VFS 再与下层驱动或相关服务器协作。

  5. 结果返回给调用进程。

以创建进程为例

  1. 用户程序请求创建新进程。

  2. PM 参与进程生命周期管理。

  3. VM 负责地址空间与内存相关准备。

  4. 微内核负责底层调度与基础机制支撑。

这种拆分的价值

  • 每个组件职责更清楚,便于分析与替换。

  • 进程管理、内存管理、文件系统不再混成一个庞大的内核实现。

  • 出问题时更容易判断是哪个层次失效,而不是在一个巨大内核里盲查。