Mach

Mach 是面向通信的操作系统微内核。

具有五个基本抽象:

Mach 内核提供了一种IPC 的通信机制(Mach Message,IPC机制)

Mach Task & Thread

内核中,BSD 进程是一种数据结构,与 Mach Task 之间具有一对一 映射关系。

通过上面的说明,我们也可以将 task 这个概念,间接理解成传统意义上的 process(是不是非常的相似:))

Mach Port

概念

Mach Port 是受内核保护的 单向 IPC 通道 、功能和名称。

被实现成一个 有限长度被内核所维护的消息队列 与 Linux Pipe 有些相似,都会因为队列满或者队列空而阻塞,其基本操作为发送和接收消息。该队列是多生产者、单消费者队列,只能有单个 receive right。

Task 需要有合适的权限 用于 操作 Mach Port 如 receive right,send right