目录

前言 1.1

Apple操作系统概述 1.2

Unix like 1.3

Darwin 1.4

macOS 1.4.1

iOS 1.4.2

XNU 1.5

XNU架构和组成 1.5.1

XNU源码 1.5.2

XNU版本 1.5.3

XNU包含内容 1.5.4

Mach 1.5.4.1

Mach消息传递 1.5.4.1.1

BSD 1.5.4.2

IOKit 1.5.4.3

关系总结 1.6

附录 1.7

参考资料 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操作系统组成

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 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

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

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

iOS

操作系统名称演化历史

iPhone OS

iOS

架构

Core OS

Core Services

Media

Coca Touch

一个iOS的小故事

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

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

关系

iOS是iPadOS、tvOS、watchOS的基础

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

XNU

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架构和组成

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源码

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版本

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包含内容

包含内容

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

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消息传递

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

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=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