iOS 内核 XNU -总纲
上面是 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++
提供的功能:继承和重载。