6.Mach
Mach System
硬件平台 (Hardware)
Mach 最初运行在 DEC VAX 系列机器上, 后来被移植到 IBM RT PC, Sun-3 (68k), Encore Multimax, Sequent Symmetry 等多处理器系统;
这些平台通常配备 数 MB 到数十 MB 的内存 (RAM), 数百 MB 到数 GB 的磁盘存储, 以当时标准算是中高端配置;
通过这些硬件, Mach 展示了良好的可移植性和对对称多处理器 (SMP) 的支持, 并能在有限资源下探索虚拟内存与分布式操作系统的先进机制;
抽象: 任务与线程 (Task and Thread Abstraction)
Mach 将传统 UNIX 中"进程=资源+执行"的模型拆分为两个正交概念:
- Task: 资源容器, 包含虚拟地址空间和端口集合, 不直接执行代码;
- Thread: 执行单元, 在 Task 的地址空间内运行, 是调度的基本单位;
这种设计降低了开销, 并更好地支持多核并行和灵活的资源共享;
虚拟内存设计与实现 (Virtual Memory Design and Implementation)
- 引入 copy-on-write, 内存继承属性 (shared/copy/none), 细粒度控制父子进程的内存关系;
- 外部分页器 (external pager): 缺页时可由用户态 pager 决定数据来源, 实现 VM 与存储解耦;
- 机无关与机相关分层: 内核将 VM 逻辑和硬件页表操作分离, 提高可移植性;
- 内核甚至支持部分自身数据结构分页, 推动"一切皆对象"的彻底虚拟化;
IPC 设计 (IPC Design)
- 通过 Port + Message 实现通信:
- Port 是能力(capability), 代表对对象的访问权;
- Message 是 typed collection of objects, 可包含标量数据, 内存页, 端口引用;
- 支持 能力传递: 端口访问权可随消息跨进程, 跨机器传输;
- IPC 与 VM 紧密结合, 支持零拷贝和内存页直接传递, 提高效率;
系统支持设施 (System Support Facility)
- 分布式支持: 透明远程文件系统, 允许远程目录像本地一样使用; 支持远程执行文件;
- 网络 IPC: network server 将本地端口映射到远程标识, 消息可跨机器传递;
- 用户态服务器化: 文件系统, 驱动, pager 等可移到用户态, 增强内核简洁性和模块化;
创新与当代意义 (Innovation and Ideas We Still Use Today)
- 任务/线程分离 → 已成为现代操作系统通用模型;
- 先进 VM 技术 → COW, 内存映射, pager 已在 Linux/Windows/BSD 中普及;
- 能力与消息传递模型 → 启发了 seL4, L4, Fuchsia Zircon 等现代微内核;
- 机制/策略分离 → 强化了操作系统的可扩展性和可维护性; - communication cha
- 分布式透明性理念 → 尽管性能有限, 但影响了后来的 RPC, NFS, gRPC 等;
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
