服务器、驱动与用户态¶
MINIX 3 最有辨识度的一点,是把很多传统上容易被默认放进内核的组件,拆成用户态系统服务器和用户态驱动。这让“操作系统的主体”不再等同于“内核态的主体”。
常见系统服务器¶
下面这些名字经常会在 MINIX 3 的资料中出现:
PM:负责进程生命周期等进程管理相关职责。
VM:负责虚拟内存相关职责。
VFS:负责文件系统抽象与文件操作路径协调。
RS:Reincarnation Server,负责监控和重启关键系统服务。
为什么把驱动放到用户态¶
驱动代码通常复杂,而且更容易因为硬件边界问题出错。
一旦驱动以普通受保护进程运行,故障就更容易被隔离。
驱动异常时,系统可以尝试只重启该驱动,而不是让整个内核一起失稳。
这对可靠性意味着什么¶
用户态服务和驱动拥有各自的地址空间,彼此之间不能像内核内部函数那样随意读写状态。这个限制本身就是一种保护机制,它迫使系统通过显式接口协作,也让监控、替换和恢复变得更现实。
需要保持的平衡¶
MINIX 3 不是简单地“把东西搬出去”就结束了。拆分之后,系统还需要处理:
服务之间如何通信。
权限如何最小化配置。
哪些组件值得被自动重启。
恢复之后如何回到可继续工作的状态。
这些问题,正是 MINIX 3 值得学习的地方。