Darwin XNU - macOS 和 iOS 内核


APS
OS X
C/C++

软件简介

XNU内核是Darwin操作系统的一部分,可在macOS和iOS操作系统中使用。 XNU是X is Not Unix的缩写。
XNU是一个混合内核,它结合了卡内基梅隆大学开发的Mach内核,FreeBSD的组件以及用于编写称为IOKit的驱动程序的C ++ API。
XNU在x86_64上单处理器和多处理器配置运行。

XNU 源码树

  • config - 导出的api的配置以支持受支持的体系结构和平台
  • SETUP - 用于配置内核,版本控制和kextsymbol管理的基本工具集。
  • EXTERNAL_HEADERS - 标头来自其他项目,以避免在构建时出现依赖循环。 更新源时,应定期同步这些标头。
  • libkern - 用于处理驱动程序和kext的C ++ IOKit库代码。
  • libsa - 用于启动的内核引导程序代码
  • libsyscall - 用户空间程序的syscall库接口
  • libkdd - 用户库的源,用于解析内核数据(如内核组块数据)。
  • makedefs - 顶层规则并为内核构建定义。
  • osfmk - 基于Mach内核的子系统
  • pexpert - 平台特定的代码,例如中断处理,原子等。
  • security - 强制访问检查策略接口和相关实施。
  • bsd - BSD子系统代码
  • tools - 一组用于测试,调试和配置内核的实用程序。