gnu 和 darwin 和 mach 之间的区别

iPh*_*rof 7 kernel macos

这些术语属于 Mac OS X 架构主题,我对以下内容感到困惑:

据说 mach 是一个微内核

Darwin 和 XNU 被提到是一个内核

那么...您能帮我理解这些术语的分离以及它们如何协作以支持 Mac OS X 环境吗?

Gor*_*son 12

我将从核心开始,然后解决问题:

  • Mach 是一个微内核,旨在仅提供基本的进程间通信功能。
  • XNU 是一个混合内核,由 Mach 微内核和更传统(“单体”)BSD unix 内核的组件组成。它还包括在运行时加载内核扩展的功能(添加功能、设备驱动程序等)。
  • Darwin 是一个 Unix 操作系统,由 XNU 内核以及各种开源实用程序、库等组成。 Darwin 中的一些实用程序来自其他版本的 BSD Unix,一些来自 GNU 项目,一些由 Apple 开发,等等。
  • OS X 是 Darwin,加上许多专有组件,最显着的是它的图形界面 API。

  • 好吧,他问的是 GNU,而不是关于苹果在未来的 OS X 版本中可能会做什么或不会做什么的党派观点。此外,有理由认为 OS X 的版本越旧,它拥有的 GNU 越多;如果你回到他们甚至没有 LLVM 的时候,他们完全依赖于 `gcc`。出于政治原因,Apple 可能希望掩盖和/或消除与其操作系统相关的 GNU 的使用,但在 SU 上,我们应该诚实并包括整个故事。从这个答案中删除我的赞成票。 (3认同)