gnu和darwin和mach之间的区别


6

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

马赫据说是一个微内核

提到Darwin和XNU是一个内核

那么......你能帮助我理解这些术语的分离以及它们如何合作为Mac OS X环境提供支持吗?


维基百科 :“Microkernel是描述操作系统设计方法的术语,通过该方法将系统的功能从传统的”内核“移出,进入一组通过”最小“内核进行通信的”服务器“,只留下可以在“系统空间”中尽可能地在“用户空间”中使用。“你有什么不妥之处?
Ƭᴇcʜιᴇ007

我不想重复自己,但我的问题是我不太明白这些术语的分离以及他们如何合作为Mac OS X环境提供动力
iPhoneDevProf

Answers:


9

我将从核心开始,并努力解决问题:

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

@allquixotic:感谢编辑,但我部分还原了它 - 我不想过分强调Darwin / OS X的GNU组件,因为GNU正在迁移到GPLv3许可证而Apple是 逃离它 (注意 GNU-达尔文 实际上是一个非Apple项目)。此外,我认为达尔文是一个“真正的unix”,无论是遗产还是遗产 通过一致性
Gordon Davisson

2
好吧,他询问了GNU,而不是关于苹果公司在未来的OS X版本中可能会做什么或不做什么的党派观点。而且,有理由认为OS X的发布时间越长,它的GNU就越多;如果你回到他们甚至没有LLVM的时候,他们完全依赖 gcc。出于政治原因,Apple可能希望掩盖和/或消除GNU与其操作系统的使用,但在SU上我们应该诚实并包含整个故事。从这个答案中删除我的upvote。
allquixotic
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.