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

系统 开源
GUI 开源的后果就是你以后就能看到各种“自主知识产权”的,长得像 OS X 的 Linux,以及其他各种不知所谓的 Mod。更为重要的是……

[[123854]]

来自知乎 @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 有很大区别,不知道现在什么样子。它这种实现性能要好一些。

推荐你看几篇文章:

本文出自:http://www.zhihu.com/question/26961853/answer/34710600

责任编辑:林师授 来源: 知乎
相关推荐

2017-04-05 13:30:16

机器学习开源行业发展

2013-10-30 10:47:32

2012-05-22 09:34:23

苹果iOS

2012-04-11 10:21:01

2013-10-10 12:23:41

Google开源

2016-08-22 12:17:56

PowerShellLinuxOS X

2012-02-17 09:21:22

Mac OS X

2015-07-30 11:09:12

架构开源

2013-10-10 17:22:51

开源开源软件

2015-06-18 06:23:30

苹果开源

2009-03-19 21:05:58

Linux开源ShowQimo OS

2021-03-03 09:50:43

开源技术 趋势

2012-02-17 14:41:12

Mac OS XOS XiOS

2014-08-25 10:00:18

开源

2013-10-16 10:13:54

开源开源硬件

2013-03-12 10:05:08

Node.jsGitHub开源

2013-12-18 09:42:16

苹果OS X 10.9.1

2012-05-10 10:23:57

苹果OS X 10.7正式发布

2015-06-15 09:48:47

Google开源

2010-01-11 09:58:33

谷歌苹果Chrome OS
点赞
收藏

51CTO技术栈公众号