目录

1. 前言   1.1

2. Apple操作系统概述   1.2

3. Unix like   1.3

4. Darwin   1.4

1. macOS   1.4.1

2. iOS   1.4.2

5. XNU   1.5

1. XNU架构和组成   1.5.1

2. XNU源码   1.5.2

3. XNU版本   1.5.3

4. XNU包含内容   1.5.4

1. Mach   1.5.4.1

1. Mach消息传递   1.5.4.1.1

2. BSD   1.5.4.2

3. IOKit   1.5.4.3

6. 关系总结   1.6

7. 附录   1.7

1. 参考资料   1.7.1

iOS逆向：Apple操作系统

- 最新版本： v1.0.0

- 更新时间： 20241026

简介

整理iOS逆向期间常会涉及到的Apple操作系统。先是概览；然后是Unix Like系列的系统；然后是Darwin内核，以及相关常见系统macOS和iOS；接着介绍Darwin的内核XNU，包括XNU的架构和组成，源码，以及具体包含内容；包括Mach、BSD、IOKit。Mach中核心内容是Mach消息传递；最后总结iOS、macOS、Darwin、XNU、Mach、BSD、IOKit等之间的关系；

源码+浏览+下载

本书的各种源码、在线浏览地址、多种格式文件下载如下：

HonKit源码

- crifan/ios_re_apple_os: iOS逆向：Apple操作系统

如何使用此HonKit源码去生成发布为电子书

详见：crifan/honkit_template: demo how to use crifan honkit template and demo

在线浏览

- iOS逆向：Apple操作系统 book.crifan.org

- iOS逆向：Apple操作系统 crifan.github.io

离线下载阅读

- iOS逆向：Apple操作系统 PDF

- iOS逆向：Apple操作系统 ePub

- iOS逆向：Apple操作系统 Mobi

版权和用途说明

此电子书教程的全部内容，如无特别说明，均为本人原创。其中部分内容参考自网络，均已备注了出处。如发现有侵权，请通过邮箱联系我  admin 艾特 crifan.com ，我会尽快删除。谢谢合作。

各种技术类教程，仅作为学习和研究使用。请勿用于任何非法用途。如有非法用途，均与本人无关。

鸣谢

感谢我的老婆陈雪的包容理解和悉心照料，才使得我 crifan 有更多精力去专注技术专研和整理归纳出这些电子书和技术教程，特此鸣谢。

其他

作者的其他电子书

本人 crifan 还写了其他 150+ 本电子书教程，感兴趣可移步至：

crifan/crifan_ebook_readme: Crifan的电子书的使用说明

关于作者

关于作者更多介绍，详见：

关于CrifanLi李茂 – 在路上

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-10-26 16:50:20

Apple操作系统概述

Apple操作系统组成

- Apple旗下

- 有多个操作系统

- 按设备分

- 桌面

- macOS

- 对应设备：Mac系列电脑

- bridgeOS

- 对应设备：（部分Mac电脑上的）Touch Bar触控栏

- 移动端

- iOS

- 对应设备：iPhone等手机

- iPadOS

- 对应设备：iPad等平板

- watchOS

- 对应设备：Apple Watch等手表

- tvOS

- 对应设备：Apple TV电视

- audioOS

- 对应设备：HomePod等家居设备

- visionOS

- 对应设备：Apple Vision Pro等头显

- 完整表格

Apple的设备

对应的操作系统

电脑：Mac

macOS

触控栏：Touch Bar

bridgeOS

手机：iPhone

iOS

平板：iPad

iPadOS

手表：Apple Watch

watchOS

电视：Apple TV

tvOS

家居设备：HomePod

audioOS

头显：Apple Vision Pro

visionOS

- —> Apple设备的的所有操作系统

- 都属于

- Unix like的系统

- 其内核都是

- Darwin

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-10-26 16:24:48

Unix like

- Unix like =UNIX类=类Unix

- 是什么：和Unix操作类似的所有的操作系统的统称

- Unix类的系统发展历史

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-10-26 15:53:22

Darwin

- Darwin

- logo

- 概述：各种Apple设备的操作系统的内核

- 而 Darwin 的内核是XNU

- Darwin  =  XNU  + 其他（ kernel  +  运行时 ）

- Darwin架构

- 早期

- OS X 的架构

- OS X 的内核 + 其他部分 =>  Darwin

- Darwin and OS X 的架构

- (Mac)  OS X 的内核 ==  Darwin  的架构

- 最新

- Darwin架构细节

- 组成

- XNU

- 微内核： Mach

- 宏内核： BSD

- FreeBSD

- IOKit

- 其他

- kernel

- 运行时

- 特点

- 兼容 POSIX

- Darwin发展历史

- 文字

- Darwin 0–8 : 对应着 Mac OS X

- Darwin 9 ：引入支持 iPhone OS

- Darwin 10-11 ： iPhone OS 改名为 iOS

- Darwin 12–15 ： Mac OS X 改名为 OS X

- Darwin 16–19 ： OS X 改名为 macOS

- Darwin 20+ ：最新的各个版本

- 图

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-10-26 16:26:04

macOS

- macOS

- 背景

- NeXT

- 苹果早期，其创始人乔布斯离开苹果，创办了： NeXT

- NeXT 公司生产 NeXT 计算机和 NeXTstation

- 它们运行在叫做 NeXTSTEP 的操作系统之上

- NeXTSTEP

- 核心组件

- Cocoa

- Mach

- IOKit

- （ Xcode 的） Interface Builder

- 特性

- 采用 Mach 微内核

- 使用 Objective-C 作为开发语言

- 面向对象思想贯穿整个操作系统

- 设备驱动开发是一个面向对象的框架，叫做 DriverKit

- 操作系统名称演化历史

- 概述

- Mac OS Classic  ->  Mac OS X  ->  OS X  ->  macOS

- 详解

- Mac OS Classic

- 诞生于苹果，拥有伟大的 GUI 却是一个相对粗糙且很不成熟的操作系统

- Mac OS X

- 背景

- Mac OS Classic ：一个拥有伟大的 GUI 但设计糟糕

- NeXTSTEP ：一个设计很棒但 GUI 平淡

- 融合： Mac OS Classic  +  NeXTSTEP  =>  Mac OS X

- 结果：有了 Mac OS Classic 的GUI以及 NextStep 的架构

- OS X

- OS X 的架构

- macOS

- 表格

时间段

MacOS名称

说明

创建 ~ 2001 年

MachOS Classic

古典 MacOS

2001年 ~ 2011 年

Mach OS X

NeXTSTEP 与 MacOS Classic 合并之后的版本

2012 年 ~ 2015 年

OS X

这是最后一个以猫科动物命名的 OS 版本，此后开始以加州地标命名

2016 年至今

macOS

便于与iOS、tvOS、watchOS 命名统一

- 架构

- macOS 架构

- 图

- 文字

- 闭源的

- User Experience Layer = 用户UI层

- 包括 Aqua 、 Dashboard 、 Spotlight 以及一些特性

- 在iOS中，用户体验完全取决于SpringBoard，同时，iOS中Spotlight也是支持的

- 即：

- 对应关系： macOS 中的 Aqua  ~=  iOS 中的 SpringBoard

- 针对的操作

- macOS 中的 Aqua ：鼠标

- iOS 中的 SpringBoard ：触屏

- Application Frameworks layer = 应用框架层

- 包括 Cocoa 、 Carbon 以及 Java

- 然而在 iOS 中，只有 Cocoa （严格来讲， Cocoa Touch 是 Cocoa 的派生物）

- Core Frameworks = 核心框架层  ==  图形和媒体层 = Graphic and Media layer

- 包括 核心框架 、 Open GL 以及 Quick Time

- 开源的

- Darwin = 系统核心层

- 操作系统核心 kernel 以及 UNIX shell 的环境

- 详见：

- Darwin

macOS中查看Darwin版本

- 举例：

- macOS v13.6.2 的 Mac M2 Max 中

- uname相关输出是：

➜  ~ uname -v

Darwin Kernel Version 22.6.0: Thu Nov  2 07:43:25 PDT 2023; root:xnu-8796.141.3.701.17~6/RELEASE_ARM64_T6020

- 和：

➜  ~ uname -r

22.6.0

- 由此得知：

- Darwin 内核的版本是： 22.6.0

- 以及相关信息：

➜  ~ sw_vers

ProductName:    macOS

ProductVersion: 13.6.2

BuildVersion:   22G320

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-10-26 15:56:23

iOS

- iOS

- 操作系统名称演化历史

- iPhone OS

- iOS

- 架构

- Core OS

- Core Services

- Media

- Coca Touch

- 一个iOS的小故事

- iOS1.x 版本最初的代号是 Alpine，这是 i 系列设备的默认 root 密码。

- 但最后发布的版本代号是 Heavenly，因为这个版本的操作系统拥有完整的调试符号、未加密还容易反汇编，很多越狱者都依赖从这个版本中提取的符号和函数调用关系寻找破解灵感，从越狱者角度来看确实如天堂般美好

- 关系

- iOS 是 iPadO S、 tvOS 、 watchOS 的基础

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-10-26 15:56:53

XNU

- XNU = X is Not Unix

- 相关名词

- POSIX = Portable Operating System Interface

- SMP = Symmetric MultiProcessing

- 是什么：

- 一个混合内核（操作系统）

- 解释： Mach 是微内核（Microkernel） +  BSD  是宏内核（Monolithic Kernel） =  XNU 是一个混合架构（Hybrid kernel）

- 是（苹果的操作系统的核心）Darwin的核心部分

- 概述

- 英文

- XNU kernel is part of the Darwin operating system for use in macOS and iOS operating systems.

- 中文

- XNU是：iOS（和tvOS、watchOS）的（操作系统）内核

- XNU也是Darwin的一部分

- Darwin是MacOS的操作系统内核

- 目标

- 实现既有微内核(Microkernel)的灵活性，又有宏内核(Monolithic Kernel)的良好性能

- 微内核(Microkernel)指的是： Mach

- 功能定义比较清晰 ~= 提高操作系统模块化程度

- 内存管理 ~= 内存保护

- 进程间（和处理器间）通信（IPC） ~= 消息传递的机制

- 其他低级操作系统功能

- 在操作系统和底层硬件之间，提供了一个有用的隔离层

- 宏内核(Monolithic Kernel)指的是： BSD

- 宏内核在高负荷下表现出高性能

- BSD是一个精心设计的、成熟的操作系统，具有许多功能，和提供了一组行业标准API

- 文件管理 ~= 文件系统

- 设备访问

- POSIX线程模型 ==  pthread

- 网络

- 等

- 事实上，当今大多数商业UNIX和类UNIX操作系统都包含大量的BSD代码

- 支持的CPU架构

- x86_64

- ARM

- IA32

相关

内核类型对比

- 微内核（Microkernel） vs 宏内核（Monolithic Kernel） vs 混合架构（Hybrid kernel）

- 说明：理解这几种内核的关键是需要注意内核模式和用户模式占据的范围

- 对比

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-10-26 16:32:46

XNU架构和组成

- XNU

- 架构

- Darwin的核心是XNU

- XNU架构内部关系

- XNU架构细节

- 包括=组成

- 概述

- XNU  =  Mach  +  BSD  +  IOKit

- 最初的： XNU = Mach v2.5  +  BSD v4.3

- 后续的： XNU = OSFMK v7.3  +  FreeBSD

- 详解

- 微内核： Mach

- 作用

- 早期用于（ OS X Server 中的） Apple 的 MkLinux 项目

- 包含内容

- IPC

- Memory

- Parallel Execution

- Real-Time Support

- Console I/O

- Security

- 宏内核： BSD

- 包含内容

- 进程和线程

- POSIX Thread Support = BSD Thread Model =BSD线程模型= pthreads

- IPC

- 文件系统

- Virtual FileSystem =虚拟文件系统

- 网络

- Networing = 网络协议栈

- 其他

- IOKit = I/O Kit = IO Kit

- 设备驱动框架

- 一个实现的面向对象的设备驱动API

- 凭借 libkern 提供的底层支持，驱动程序可以使用 C++ 实现。借助于 C++ 的面向对象特性，外部在创建驱动程序时会节省很多成本。

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-10-26 16:13:22

XNU源码

- XNU源码

- 旧：opensource.apple.com

- 离线下载

- https://opensource.apple.com/tarballs/xnu/

- 在线浏览

- https://opensource.apple.com/source/xnu/

- 新：github.com

- 旧

- https://github.com/apple/darwin-xnu

- 新

- https://github.com/apple-oss-distributions/xnu

- 源码下载

- https://github.com/apple-oss-distributions/xnu/archive/refs/tags/

- xnu-11215.1.10

- https://github.com/apple-oss-distributions/xnu/archive/refs/tags/xnu-11215.1.10.zip

- https://github.com/apple-oss-distributions/xnu/archive/refs/tags/xnu-11215.1.10.tar.gz

- 其他

- 在线浏览 xnu 代码

- XXR - XNU cross reference - Alpha (newosxbook.com)

XNU代码核心部分

- XNU代码核心部分=代码树

- config  - configurations for exported apis for supported architecture and platform

- SETUP  - Basic set of tools used for configuring the kernel, versioning and kextsymbol management.

- EXTERNAL_HEADERS  - Headers sourced from other projects to avoid dependency cycles when building. These headers should be regularly synced when source is updated.

- libkern  - C++ IOKit library code for handling of drivers and kexts.

- libsa  - kernel bootstrap code for startup

- libsyscall  - syscall library interface for userspace programs

- libkdd  - source for user library for parsing kernel data like kernel chunked data.

- makedefs  - top level rules and defines for kernel build.

- osfmk  - Mach kernel based subsystems

- pexpert  - Platform specific code like interrupt handling, atomics etc.

- security  - Mandatory Access Check policy interfaces and related implementation.

- bsd  - BSD subsystems code

- tools  - A set of utilities for testing, debugging and profiling kernel.

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-10-26 16:33:32

XNU版本

Mac

- Mac

- uname -a

Darwin crifandeMacBook-Pro.local 20.6.0 Darwin Kernel Version 20.6.0: Mon Aug 30 06:12:21 PDT 2021; root:xnu-7195.141.6~3/RELEASE_X86_64 x86_64

- sysctl

- kern.version

Darwin Kernel Version 20.6.0: Mon Aug 30 06:12:21 PDT 2021; root:xnu-7195.141.6~3/RELEASE_X86_64

iPhone6

- Mac

- uname -a

Darwin Crifan-iPhone6 18.7.0 Darwin Kernel Version 18.7.0: Mon Aug 19 22:24:08 PDT 2019; root:xnu-4903.272.1~1/RELEASE_ARM64_T7000 iPhone7,2 arm64 N61AP Darwin

- sysctl

- kern.version

Darwin Kernel Version 18.7.0: Mon Aug 19 22:24:08 PDT 2019; root:xnu-4903.272.1~1/RELEASE_ARM64_T7000

checkra1n

用checkra1n给iPhone6越狱的日志中有：

set xnu boot arg cmdline to : [rootdev=md0]

iPhone7

对于自己的越狱手机，此处的iPhone7，去查看对应的xnu的版本：

➜  ~ ssh root@192.168.0.33

iPhone7:~ root# uname -a

Darwin iPhone7 19.6.0 Darwin Kernel Version 19.6.0: Sat Jun 27 04:35:37 PDT 2020; root:xnu-6153.142.1~4/RELEASE_ARM64_T8010 iPhone9,1 arm64 D10AP Darwin

此处被测的已越狱的iPhone的xnu是：

xnu-6153.142.1

去官网找对应版本的代码：

xnu Source Browser (apple.com)

没看到这个版本

-》只能找到，最接近的版本：

- xnu-6153.141.1.tar.gz

- https://opensource.apple.com/tarballs/xnu/xnu-6153.141.1.tar.gz

可下载下来，供后续参考研究。

unc0ver

用unc0ver给iPhone7越狱的日志中的：

Kernel Version: Darwin Kernel Version 19.6.0: Sat Jun 27 04:35:37 PDT 2020; root:xnu-6153.142.1~4/RELEASE_ARM64_T8010

iPhone8, iOS 15.1

iOS 15.1，iPhone8的信息：

iPhone8-150:~ root# uname -a

Darwin iPhone8-150 21.0.0 Darwin Kernel Version 21.0.0: Sun Aug 15 20:55:55 PDT 2021; root:xnu-8019.12.5~1/RELEASE_ARM64_T8015 iPhone10,1 arm Darwin

中，就有：

- xnu-8019.12.5~1/RELEASE_ARM64_T8015

其中xnu就是：iOS的内核

版本是： 8019.12.5

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-10-26 16:34:29

包含内容

- XNU 主要包括3部分

- Mach

- BSD

- IOKit

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-10-26 16:01:36

Mach

- Mach

- 是什么：操作系统的内核

- 类型： Microkernel = 微内核

- 发展历史

- 最早：卡耐基梅隆大学开发

- 目标：取代 BSD 的 UNIX 核心

- 后来：Apple采用，作为 Darwin 的核心的 XNU 的其中一部分

- 历史版本

- 早期

- Mach v2.5

- 来自： Carnegie Mellon University = 卡耐基梅隆大学

- Mach v3.0

- 来自： Carnegie Mellon University = 卡耐基梅隆大学

- Mach v4

- 来自： University of Utah = 犹他大学

- 后来

- OSFMK  7.3

- OSFMK = Open Software Foundation Mach Kernel

- 来自： OSF = The Open Software Foundation

- （这个微内核）包含=组成

- 仅能处理最基本的操作系统职责

- 虚拟内存的管理= memory protection = Virtual Memory = Protected Memory

- virtual memory support

- support for large virtual address spaces, shared memory regions, and memory objects backed by persistent store

- support for pagers

- 任务管理

- 进程和线程的抽象

- Parallel Execution

- Preemptive Multitasking =preemptively scheduled threads

- 支持 SMP

- 任务调度

- IPC =进程间通信=进程间通信和消息传递机制

- messaging

- 概述：a messaging-centered infrastructure

- Message Passing = 消息传递

- RPC

- synchronization

- notification

- 特点

- 优点

- 服务进程容易扩展

- 得益于这种扩展性，使得

- Mach-O 能支持多架构文件

- 详见

- 可执行文件格式：Mach-O

- macOS能顺利的从 PowerPC 过渡到 Intel 再到 M1

- 服务进程出问题不会危及到 kernel

- 缺点

- 微内核的功能本来就少，其他 OS 功能是作为基础服务建设在用户模式下的。因为这个特性其内部任务的调用会有更频繁的内核态/用户态上下文切换，这会额外消耗时间。同时内核与服务进程之间的消息传递也会降低运行效率，所以这种设计通常会降低性能

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-10-26 16:35:12

Mach消息传递

- Mach Message = Mach消息（传递）

- （Mach的 IPC 的）核心点

- Mach最基础的概念就是两个端点 Port 中交换的 message

- message

- 是什么：一个message就是msgh_size大小的blob, 带着一些flags，从一个端口发送到另一个端口

- 核心函数

- mach_msg()

- mach_msg_send()

- mach_msg_receive()

- mach_msg_trap()

- mach_msg_overwrite_trap()

- 架构

- Mach Message细节

相关定义

- <mach/message.h>

typedef struct {

mach_msg_header_t header;

mach_msg_body_t   body;

} mach_msg_base_t;

// 消息头是必须的，它定义了一个消息所需要的数据

typedef struct {

mach_msg_bites_t   msgh_bits;

mach_msg_size_t    msgh_size;

mach_port_t        msgh_remote_port;

mach_port_t        msgh_local_port;

mach_msg_size_t    msgh_reserved;

mach_msg_id_t      msgh_id;

} mach_msg_header_t;

mach_msg_return_t mach_msg(mach_msg_header_t            msg,f

mach_msg_option_t            option,

mach_msg_size_t              send_size,

mach_msg_size_t              reveive_limit,

mach_port_t                  reveive_name,

mach_msg_timeout_t           timeout,

mach_port_t                  notify,

);

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-10-26 16:40:46

BSD

- BSD = Berkeley Software Distribution = 伯克利软件包

- logo

- 是什么：一个操作系统（内核）

- 是一个派生自 Unix 的操作系统

- 类型： 宏内核 = Monolithic Kernel

- 版本

- 早期

- BSD v4.3

- 后来

- FreeBSD

- 基于： BSD v4.4

- 特点

- 优点

- 用户服务和内核服务都运行在同一内存空间

- 这还有效降低了内核态/用户态之间的频繁切换，执行效率会更高

- 缺点

- 扩展性较差

- 如果内核有一个服务崩溃，整个操作系统就会崩溃

- 此处：在 Darwin 的内核 XNU 中的： BSD 宏内核

- 作用：作为完善 Mach 的一个存在，它建立在 Mach 之上，并提供了一层更可靠更现代的 API

- 包括

- 任务调度

- UNIX 进程模型

- POSIX 线程模型

- POSIX Thread Support = BSD Thread Model =BSD线程模型= pthreads

- IPC

- UNIX 用户和组

- Networing =网络=网络协议栈

- BSD Socket API = BSD Sockets

- NKE = Network Kernel Extension =网络内核扩展

- Virtual FileSystem =虚拟文件系统

- 其他细节

- Security = UNIX Security model

- BSD Libraries = FreeBSD kernel APIs

- many POSIX APIs

- syscall support

- 架构

- BSD网络架构

- NKE 架构

- File systems and VFS stack

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-10-26 16:05:12

IOKit

- IOKit = IoKit = IO Kit = I/O Kit

- 发展历史

- 早期

- DriverKit

- 语言： Objective-C

- 现在： IOKit

- 语言： Embedded C++

- C++ 子集

- 是什么：设备驱动框架

- 一个实现的面向对象的设备驱动API

- 凭借 libkern 提供的底层支持，驱动程序可以使用 C++ 实现。借助于 C++ 的面向对象特性，外部在创建驱动程序时会节省很多成本。

- libkern

- 一个内建的 C++ 库

- 用于支持 C++ 运行时

- 有了它内核的很多高级功能都可以使用 C++ 编写

- 特点

- 多线程

- SMP安全

- 支持热拔插

- 自动动态设备配置

- 包括=组成

- 真正的即插即用

- 动态设备管理

- 动态（“按需”）加载驱动程序

- 桌面系统以及便携式电源管理

- 多处理器功能

- 架构

- I/O Architecture: Families, Drivers, and Nubs

- User-space applications and split client drivers

- 核心概念

- Families

- Drivers

- Nubs

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-10-26 16:13:31

关系总结

此处给Apple操作系统常见概念：

iOS 、 macOS 、 Darwin 、 XNU 、 Mach 、 BSD 、 FreeBSD 、 IOKit

等的之间关系和逻辑，做个总结：

最终总结

- 苹果操作系统的架构 = Apple OS Architecture

- 离线查看

- 精简版

- 完整版

- 在线浏览

- 苹果操作系统的架构 | ProcessOn免费在线作图

相关解释

总体关系逻辑

- Apple的不同平台有不同操作系统： iPhone 的 iOS 、 Mac 的 macOS 等等

- iOS 、 macOS 等系统的内核，都是： Darwin

- Darwin  =  XNU  + 其他

- XNU  =  Mach  +  BSD  +  IOKit

概念类比

- 内核关系类比

- Ubuntu

- Ubuntu 是操作系统( OS )

- Linux + GNU  是核心部分( Core )

- Linux 是内核( Kernel )

- macOS

- macOS 是操作系统( OS )

- Darwin  是核心部分( Core )

- XNU 是内核( Kernel )

范围大小

- 概念范围

- 文字

- iOS  >  Darwin

- macOS  >  Darwin

- Darwin  >  XNU

- XNU  >  Mach

- XNU  >  BSD

- 主要是： FreeBSD

- XNU  >  IOKit

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-10-26 16:43:33

附录

下面列出相关参考资料。

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2022-03-17 20:39:28

参考资料

- 【整理】iOS中的XNU

- 【整理】iPhone相关名词：xnu的含义

- 【整理】iOS底层机制：微内核Mach

- Darwin (operating system) - Wikipedia)

- tvOS - Wikipedia

- Apple TV - Wikipedia

- 识别 Apple TV 机型 - 官方 Apple 支持 (中国)

- 查找 Apple TV 型号 - 官方 Apple 支持 (中国)

- 设置 Apple TV - 官方 Apple 支持 (中国)

- bridgeOS - Wikipedia

- Mach (kernel) - Wikipedia)

- XNU - Wikipedia

- OSF/1 - Wikipedia

- FreeBSD - Wikipedia

- File:Unix timeline.en.svg - Wikipedia

- Unix-like - Wikipedia

- File:Unix history-simple.svg - Wikipedia

- File:Diagram of Mac OS X architecture.svg - Wikipedia

- The macOS Concept Journey — Mach. Overall, the fundamental services and… | by Shlomi Boutnaru, Ph.D. | Medium

- Inside Mac OS X: Kernel Environment

- iOS Architecture. All Apple mobile devices, including the… | by Pranavghatmale | Medium

- macOS 进化史

- archive.nullcon.net/website/goa-2022/documents/jailbreaking-iOS-Goa22.pdf

- Kernel Architecture Overview

- BSD Overview

- Mach Overview

- I/O Kit Overview

- What's the difference between Mac OS X, Darwin OS and a popular Linux distribution like Ubuntu? What can be done on Darwin? - Quora

- 从RunLoop来看iOS内核中消息的发送: mach_msgiOS系统的历史 Mac OS X融合了Mac OS Cl - 掘金

- Why is macOS often referred to as 'Darwin'? - Ask Different

- iOS/About iOS/Mach_and_BSD.md at master · writeups/iOS

- XXR - XNU cross reference - Alpha (newosxbook.com)

- Families

- Drivers

- Nubs

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-10-26 16:37:44

Table of Contents

前言

Apple操作系统概述

Unix like

Darwin

macOS

iOS

XNU

XNU架构和组成

XNU源码

XNU版本

XNU包含内容

Mach

BSD

IOKit

关系总结

附录

参考资料