1.OS X是整个操作系统的集体名称,而Darwin是其中的一个组件。
2.Darwin是操作系统的类UNIX核心,本身由内核、XNU和运行时组成。
3.uname指令:可以得到有关架构的详细信息以及Darwin的版本信息。
比如在Terminal中运行uname得到的结果是Darwin,
运行uname -a得到的信息:Darwin alex.local 16.4.0 Darwin Kernel Version 16.4.0: Thu Dec 22 22:53:21 PST 2016; root:xnu-3789.41.3~3/RELEASE_X86_64 x86_64 (-a 表示显示所有的参数),通过输出结果我们可以看到Darwin内核版本号是16.4.0,系统是X86_64,是64位操作系统。
4.iOS和Mac OS X
其实iOS就是Mac OS X,只不过两者之间有着区别。
iOS的内核和二进制文件编译的目标架构是基于ARM架构的,而Mac OS X是基于Intel架构的。
iOS的内核源代码是闭源的。
iOS的内核编译稍有不同,关注的是嵌入式特性和一些新的API。
iOS的系统GUI是SpringBoard,OS X的GUI最早是Aqua,后来由于iOS的启发,将SpringBoard以LaunchPad形式移植进Mac OS X。
iOS的内存管理要紧凑的多。系统限制比较严格,因此后来有了越狱这种说法。目前iOS的可越狱版本是9.3.3,更高的版本估计要继续等太极和盘古团队了,而且貌似不能通过重新刷Firmware的方式给iOS系统降级,我目前没有成功。
苹果官方OS X和iOS文档中展示的分层方法。
- 用户体验层。Aqua(早期OS X的GUI基础,由于后来iOS GUI基础SpringBoard的出现,OS X GUI的基础变成了 LaunchBoard)、DashBoard(类似于Windows的桌面小工 具)、Spotlight(相比较于Windows系统自带查询工具的效率来说,Spotlight无疑是出色的)等等。对于iOS的用户体验层来说,主要是SpringBoard,当然,iOS里也有Spotlight。
- 应用框架层。OS X包括了Cocoa、Carbon和Java,iOS主要是Cocoa演变的Cocoa Touch。
- 核心框架层。图形和媒体层,包含核心框架、Open GL和QuickTime。
- Darwin。操作系统的核心,包含内核和UNIX Shell环境。Darwin是开源的,是整个系统的基础,提供了底层的API,其他的层则是闭源的。Darwin = Mach + BSD。