XNU 的 Process(进程)的组成

Process 可以为 Program 程序 加上它所持有的 Resources 资源。资源包括 CPU时间和内存

XNU 内核主要由 BSDMach 两个部分组成。

BSD : 作为Unix 内核提供了 Unix Process

Mach 内核 :把Process 抽象为 Task 和 Thread

https://zhuanlan.zhihu.com/p/57656644

Mach 中的抽象:

Mach Task 定义在 osfmk/kern/task.h 中。

持有 IPC space, memory address space, Mach threads, BSD info 等非常多进程相关信息。

给 App 起新线程的时候,无论是用 NSThread 还是其他上层接口。都是通过 pthread 接口实现了

内核空间中,一个 pthread 对应的是一个 Mach Thread ,结构体定义在 osfmk/kern/thread.h ,就是 struct thread