iOS 内核 XNU -总纲

iOS 内核 XNU -总纲

mach-structature.png

上面是 XNU 内核在架构图,由上图我们可以看出 XNU 包含:Mach 微内核、BSD 层、libKernI/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++ 提供的功能:继承重载

你可能感兴趣的:(iOS 内核 XNU -总纲)