XNU 是什么?
XNU 是一个由苹果电脑发展的用于 masOS 操作系统的操作系统内核。它是Darwin操作系统的一部分。是 iOS,tvOS和 watchOS 操作系统内核。XNU是X is Not Unix的缩写。
XNU 最早是NeXT公司为了NeXTSTEP操作系统而发展的。它是一种混合式核心(Hybrid kernal),将宏内核和微内核两者的特性兼收并蓄,以期同时拥有两种内核的优点,比如在微内核中提高操作系统模块化程度以及操作系统更多的部分接受内存保护的消息传递机制,和宏内核在高负荷下表现的高性能。
XNU 组成:
主要由4部分组成:
Mach:Mach的核心是消息机制,主要实现了基本的进程,虚拟内存管理,任务调度,进程通信和消息机制。
BSD:对Mach层的封装和扩展。
libkern + I/O Kit
libkern 是一个来自包含的C++类库,为C++运行时提供支持和基础类。I/O Kit是i 一个 C++ 编写的设备程序驱动框架,让开发者可以快速的创建稳定优雅的驱动程序。