操作系统结构
宏内核
微内核
设计原则:最小化内核功能
-将操作系统功能移到用户态,称为“服务”(Server);
-在用户模块之间,使用消息传递机制通信;
Mac微内核
实现功能:
-任务和线程管理:任务是资源分配的基本单位;线程是执行的基本单位;
-进程间通信(IPC):通过端口进行通信;
-内存对象管理:虚拟内存;
-系统调用重定向:允许用户态处理系统调用
-支持对系统调用的功能扩展,例如,二进制翻译、跟踪、调试等;
设备支持
-通过IPC实现
-支持同步设备和异步设备
用户态的多线程
-类似用户态的线程库,支持wait()、signal()等原语
-一个或多个用户态线程可映射到同一个内核线程
分布式支持
-可透明地将任务与资源映射到集群中的不同节点
Mach:用户态与内核态的分工
-Mach允许用户态代码实现Paging
应用可自己管理自己的虚拟内存
-重定向功能
允许发生中断/异常时,直接执行用户的二进制
这种连接不需要对内核做修改