(XNU,是苹果操作系统OS X的内核)
这个截图来自权威著作《OS X Internal: A System Approach》;有足够Mach层和BSD层的细节
mach部分介绍:
内核Mach部分位于最底层,作为一个“微内核”承担最基本的职责:
1.进程(任务)和线程抽象
2.虚拟内存
3.线程调度
4.进程间通信机制(Mach Ports)
5.提供BSD所不能提供的API
BSD部分介绍:
BSD在Mach基础上实现更丰富的功能:
1.进程和线程
2.BSD风格系统调用
3.IPC方式和同步原语
4.信号
5.网络协议栈(uipc_socket)
6.文件系统(VFS)
7.异步IO相关API
其他部分介绍:
除了Mach和BSD两个主要部分,还有其他组成,分别承担不同职责
1.libkern
2.IOkit
3.libsa
4.Platform Expert
5.Kernel Extensions
可以说BSD、mach、IOkit和KernelExtensions都依赖libkern、libsa和Platform Expert