❏ 站外平台:

苹果为什么只开源 OS X 的内核,而不开源 GUI?

作者: 王飞

| 2014-12-08 09:44   评论: 8 收藏: 1 分享: 9    

来自知乎 @ibuick 的回答:

1. GUI 开源的后果就是你以后就能看到各种“自主知识产权”的,长得像 OS X 的 Linux,以及其他各种不知所谓的 Mod。更为重要的是,那时候开发一个 GUI 的 Hack 更为简单,比如你现在在 Bartender 里看到的那样,那时候不再费劲吧啦的反相工程,可以直接写出 Menu Extra 的替代品。到那个时候,系统各类毛病铺天盖地,OS X 长的五花八门,这也是 Apple 不愿意看到的。值得一提的是,OS X 桌面环境在操作系统里面算是领先的,这东西舍得开源么?一旦开源,连带 iOS 的好多东西都暴露出去了,得不偿失。

2. 驱动程序是不开源的,但是驱动框架 IOKit 是开源的。IOKit 的一个好处就是它是个 OO 的框架,你可以直接通过继承获得你想要的特性而不必从头开始。

3. GUI 层又称 Aqua 层,基于 Cocoa,在系统的架构的最顶端,也是直接面向用户和大部分应用程序开发者的层面。当然了,OS X 还支持 X11,如果你说这个的话,这东西是开源的。

4. IOKit 在 Mach 层,如果你有一点了解,OS X 剥离 Cocoa ,Carbon 相关的东西,剩下的叫做 Darwin,这是个 Unix 操作系统。OS X 之所以能够通过 SUS 认证,Darwin 是关键,这里包括 POSIX 兼容,Unix 线程,进程实现。它的内核叫做 XNU,这是个混合内核,XNU 包含两个部分,BSD 和 Mach:BSD 实现了POSIX,Networking,Filesystem 等,而 Mach 实现了最为基本的多处理器支持,虚拟内存,分页,调度,IPC,RPC 等。在 Mach 的基础上,就是 IOKit 和各类 Kext 了。整个 XNU 部分,跑在内核态。

5. Linux 我不懂,不过它原来是个 Monolithic 巨内核,这个跟 OS X 有很大区别,不知道现在什么样子。它这种实现性能要好一些。

推荐你看几篇文章:



最新评论

soli 2014-12-08 17:58 2 回复
知乎ID好熟悉的样子。。。
来自 - 上海 的 Chrome/Linux 用户 2014-12-08 13:15 4 回复
知乎上的回答就不要拿过来了,说得头头是道,写过几行C代码,就在大谈操作系统设计了。
这家伙其实什么都不懂,只是知道几个名词而已。
微博评论 2014-12-08 12:03 2 回复
牛逼的不揍是外壳么
微博评论 2014-12-08 11:03 2 回复
[哈哈]
来自 - 河北石家庄 的 Firefox/Linux 用户 2014-12-08 10:54 8 回复
反感这位
来自 - 广西来宾 的 Chrome/Linux 用户 2014-12-08 10:04 19 回复
长得像 OS X 的 Linux早就有了,根本不需要苹果来开源。
微博评论 2014-12-08 10:03 3 回复
如何生孩子的办法可以公开,但是孩子的外观表现特征是一个公司区别其他公司的核心竞争力。
微博评论 2014-12-08 10:03 2 回复
对对、而且那些高仿会糟蹋掉os x☕

返回顶部

分享到微信

打开微信,点击顶部的“╋”,
使用“扫一扫”将网页分享至微信。