来自知乎@ibuick的回答:1、GUI开源的后果就是你以后可以看到各种“自主知识产权”,像OSX的Linux,还有各种不为人知的Mod。更重要的是,那时开发GUIHack更容易,正如您现在在Bartender中看到的那样。那时候不需要逆向工程,直接写一个MenuExtra的替代品就可以了。到那个时候,各种系统故障会铺天盖地,OSX也会以各种方式成长,这是苹果不愿意看到的。值得一提的是,OSX桌面环境被认为是领先的操作系统。这个东西愿意开源吗?一旦开源,很多与iOS相关的东西就会暴露,得不偿失。2、驱动不开源,但驱动框架IOKit是开源的。IOKit的一个好处是它是一个OO框架,你可以直接通过继承获得你想要的特性,而不需要从头开始。3.GUI层,也称为Aqua层,基于Cocoa。它处于系统架构的最顶层,也是直接面向用户和大多数应用开发者的层次。当然,OSX也支持X11,你说是开源的。4.IOKit在Mach层。稍微了解一下,OSX把Cocoa和Carbon相关的东西去掉,剩下的就叫Darwin,是Unix操作系统。OSX之所以能通过SUS认证,Darwin是关键,包括POSIX兼容、Unix线程、进程实现。它的内核叫做XNU,是一个混合内核。XNU由BSD和Mach两部分组成:BSD实现了POSIX、Networking、Filesystem等,而Mach实现了最基本的多处理器支持、虚拟内存、分页、调度、IPC、RPC等。在Mach的基础上,有是IOKit和各种Kexts。整个XNU部分运行在内核模式下。5、不懂linux,原来是一个铁板一块的巨型内核,和osx差别很大,不知道现在长什么样子。它的性能在这个实现中更好。推荐你看几篇文章:内核编程指南:内核架构概述ArchitectureofOSXMicrokernelMonolithickernelLinuxkernel本文来自:http://www.zhihu.com/question/26961853/answer/34710600
