iOS 内核 XNU -总纲

mach-structature.png
上面是 XNU 内核在架构图,由上图我们可以看出 XNU 包含:Mach 微内核、BSD 层、libKern 和 I/O Kit。
Mach 微内核
Mach 微内核研发者是卡内基梅隆大学开发的操作系统,主要是致力于开发一套轻量级且高效平台。这个成果的就是我们讲述的 Mach 内核。
该操作系统包含:
1、进程和线程的抽象;
2、虚拟内存管理;
3、任务调度;
4、进程间通信和消息传递机制。
BSD
BSD 是建立在 Mach 基础上,同样也是 XNU 不可分割的一部分。这一层也是提供了 POSIX 兼容性,提供的更高层次的抽象。包含:
1、
UNIX进程模型;
2、POSIX线程模型及其相关的同步原语;
3、UNIX用户模型和组;
4、网络协议栈;
5、文件访问系统;
6、设备访问。
libKern
在内核构建时都会采用 C 和汇编来实现,而 XNU 是采用 I/O Kit 来实现驱动,再次基础上可以瞒住 C++ 来实现编写。于是就在此的基础上包含 libKern 库。
I/O Kit
这是 Apple 对常见 XNU 引入 I/O Kit 设备驱动框架,是一个完整的自包含执行环境,让开发者快速创建设备驱动程序。
I/O Kit 形成了受限环境 C++,并且带有 C++ 提供的功能:继承和重载。