1
Remember 146 天前
XNU 本身就是基于 FreeBSD 的魔改啊。
|
3
steveshi 146 天前
这俩就同源吧,苹果为了自家硬件做了定制
|
4
agagega 146 天前 via iPhone
FreeBSD 第一个版本发布于 1993 年,此前只有 BSD ; NeXTSTEP 第一个版本发布于 1989 年。至于为什么没全用 BSD 而用了 Mach ,可能是技术上的倾向或者当时 BSD 对 m68k/ppc 的支持还不够好?
|
5
ysc3839 146 天前 via Android
NeXTSTEP 开发的时候连 FreeBSD 都没,而且当时 BSD 还有官司问题。再者选 Mach 可能是想要个微内核作为基底,BSD 是宏内核,可能不适合内核模式 GUI 的开发。类似的还有微软的 Windows NT ,也是微内核+内核模式 GUI 等的模式。
|
6
xarthur 146 天前
Darwin 现在基本上和 FreeBSD 差不多了,用了大量的 FreeBSD 代码。
|
7
saranz 146 天前
@agagega 当时不用全 BSD ,不是因为版权的问题还没吵完么。谁用 BSD 谁就要沾上官司,但是 Mach 作为 BSD 内核的代替,当然是用 March 了。
|
8
holulu 144 天前
应该是为了内核模式 GUI
|
9
ChaimeLonic 144 天前
苹果的 cocoa 层 GUI 不是用户态的吗?除了依赖的 IOKit 。考虑到当初 BSD 发展现状决定的吧,apple 一直对 GUI 有自己的独特想法就注定它会进行较大程度的改造,BSD 不能很好满足自己的需求,而且 NeXTSTEP 当初技术核心团队就有一位来自 mach 的核心开发人员,再加上那个年代微内核概念很火,其实技术前沿上来看确实没多大必要最下层还得映射到 Mach 的 port 机制,不过是个优秀的工程产物,而且方便移植架构。
|
10
seanzxx 144 天前
主要原因是 ATT 和 BSD 的官司吧,那时候 BSD 只能提供给拥有 ATT 授权的企业。
Mach 算是一个全新的内核,完全没有版权问题,而且微内核的概念,消息驱动,更好的多进程支持,当时也代表了先进的技术方向。 |