蘋果為什么只開源 OS X 的內核,而不開源 GUI?

jopen 9年前發布 | 7K 次閱讀 蘋果

蘋果為什么只開源 OS X 的內核,而不開源 GUI?

來自知乎 @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 作者: 王飛

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!