I/OKit驱动程序框架 和其他操作系统不同,XNU的独特之处在于为设备驱动程序提供了一个完整的运行时环境。XNU的设备驱动程序运行时环境称为I/O Kit,是一个苹果开发的...
内核扩展模块 类似用户态的共享库或动态链接库,内核扩展模块是内核使用的模块,可以根据需要动态插入或移除,而且这个需求通常来自用户态。OS X 和 iOS 中的XNU都利用了...
基于B树的HFS+文件系统 尽管如今的操作系统在驱动程序的帮助下支持任何的文件系统,但是每一个操作系统都会有一个自己“原生”的文件系统,DOS的原生文件系统是FAT。Wind...
文件系统和虚拟文件系统交换 内核的一个重要职责就是管理数据,这些数据既包括用户数据也包括系统数据。为了实现这个目的,数据按照文件和目录的方式组织,文件和目录保存在各种类型的文...
BSD 高级功能 内存管理 虚拟内存管理是在Mach 层进程的,Mach 控制了分页器,并且向用户态导出了各种vm_和mach_vm_消息接口。而用户态的开发者大部分都只知道...
BSD 层 Mach只是一个微内核。尽管Mach的部分应用程序接口(API)也暴露给了用户态,但是开发者主要使用的还是更为流行的POSIX API,而这一套API 是通过Ma...
Mach 虚拟内存 在内核管理最重要的资源中,出了CPU本身,就是内存了。Mach 和所有内核一样,代码中有很大一部分都在负责高效地管理内存(virtual memory,V...
Mach 调度 Mach 在核心原语的基础上实现了很多重要的功能。几乎所有的功能都和系统资源:硬件设备、虚拟内存以及CPU本身的管理有关。CPU 的管理称之为调度(sched...
Mach 原语:一切以消息为媒介 XNU 的核心是Mach 微内核。 Mach 是 OS X 和 iOS 的核心中的核心。尽管Mach 核心被 BSD 层包装起来了,而且主要...
内核引导 引导XNU XNU 内核是一个Mach-O 格式的目标文件。引导加载器(EFI 或 iBoot)中包含解析Mach-O 的代码,可以通过LC_UNIXTHREAD命...
内核架构 内核的基础知识 所有现代的操作系统在设计师都包含一个称为内核(kernel)的组件,是整个系统的核心。内核就是操作系统。从高层次看,所有运行的应用程序实际上是内核的...
贯穿始终:launchd 当你打开Mac 或 i-设备的电源时,引导加载器(OS X:EFI, iOS: iBoot)开始查找内核并且启动内核。不过内核只是一个服务提供者,而...
引导过程:EFI 和 iBoot 引导过程指的是从就计算机通电那一瞬间到CPU开始执行操作系统代码时的整个过程,这个过程往往是系统启动过程中被忽视的一部分。在这个非常初期的阶...
进程跟踪和调试 DTrace DTrace中的“D”指的是D语言。这是一门完整的跟踪语言,通过这门语言可以创建专门的跟踪器(tracer)或者探测器(probe) druss...
可执行文件 在UNIX中,任何文件都可以通过简单的 chmod +x 命令标记为可执行文件。但是不能保证文件可执行,这个标记只是告诉操作系统内核将这个文件读入内存,然后寻找一...
OS X 和 iOS 使用的技术 作为一个从BSD衍而来的操作系统,OS X 继承了很多BSD相关的特有的特性。其中包括POSIX系统调用,一些BSD扩展(内核队列)以及BS...
XNU 内核XNU是Darwin 的核心,也是整个OS X 的核心。XNU由一下几个组件组成: Mach 微内核进程和线程抽象虚拟内存管理任务调度进程间通讯和消息传递机制 B...