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 ...
7.micro-Kernel
On μ\muμ-Kernel Construction
传统观点是, 微内核是 inefficient 和 not sufficiently flexible 的, 但是本文说明相反观点, 并展示微内核可以达到 macro kernel 的 efficiency
以及为什么当前已有的 measurement 很难说明这一点
设计目标
微内核支持 modular
外部系统可以使用 micro kernel 提供的 mechanism
微内核系统更加 flexible 和 tailorable
明确 target
决定整个 μ\muμ-kernel 的能力的不应该是 performance, 而应该是 functionality
也就是说尽量不要把指令放进内核, 除非纯外部执行无法完成指定任务
系统应该能支持 protection
independence principle: 不同 sub system 之间不应该有任何互相影响和 corruption
这里的子系统指的是进程, 也就是用户态的资源分割单位
integrity principle: 不同子系统之间应 ...
9.exokernel
Exokernel: An Operating System Architecture for Application-Level Resource Management
“Dawson R. Engler, M. Frans Kaashoek, and James O’Toole Jr. M.I.T. Laboratory for Computer Science” (Engler 等, p. 251) (pdf)
Motivation
传统的 general OS kernel 只能提供给最广泛的用户态程序一个中庸的最优解,然而随着软件界的发展,越来越需要一种对各种不同的软件有各自 customized 方案的特殊化优化
并且作者观察到 原语的级别越低,它的实现效率越高,并且它赋予高级抽象实现者更大的自由度
一个系统的目的应该是:
OS (包括 microkernel + server):= protection + abstraction
exokernel := 内核只负责 protection/security (mechanisms), 让 libOS 来负责 ab ...
5.Plan9_9P
Plan 9 System (Bell Lab)
硬件设备
目标环境: 便宜的小型机(办公室个人使用)+ 集中管理的大型服务器(file server, cpu server)
分布式环境设计, 强调网络互联和资源共享
UTF-8
/proc
rfork
硬件存储抽象
软件文件系统抽象
包括网络的分布式一致性
创新点
设计目标
maintainence: 分布式的个人 pc 进行 administer 一个系统的开销太大太困难了
也就是通过 centralized administration 来实现集中管理
统一接口: 一切皆文件, 通过 9P 协议访问
每个进程拥有独立的命名空间, 可通过 bind 和 mount 重新组合
支持透明分布式: 远程资源与本地资源无差别
简洁内核, 核心任务是 9P 消息的 multiplex/demultiplex
File System
层次化文件系统 (hierarchical file system): 所有资源挂入统一目录树
9P 协议: 核心协议, 提供 attach/walk ...
8.L4
Motivation 和论文目标
守旧派往往认为, 第一代 μ\muμ-kernel 微内核具有非常低的 performance/flexibility, 但是本文希望能测试第二代微内核的性能和灵活性, 实验手段是测试一些老的系统性能测试以及加上一些新的有针对的测试
微内核的优点之一是, 内核小巧, 部件坏的概率小
微内核只提供 mechanism 但是不提供 policy, 但是也需要上面一层安全控制的 pager, FS 等资源, 这些往往依赖于 UNIX Server 实现
Introduction
L4 kernel 本身是一个第二代微内核, 拥有 lean & fast 的特性
最初的 L4 kernel 是开发于 Pentium Platform 的, 但是为了证明这个内核抽象能够独立于硬件平台, 所以本文将 L4 在 Alpha21164 平台上重新完整实现了一次并且保留了传统 L4 的接口 (interface); L4 当下是支持 Pentium, Alpha 和 MIPS 三个架构, 后两者为新开发的功能
Pentium 内存空间优化
L4/Pentium ...
