Mac OS X 的GUI(Graphics User Interface)一直在不断地进步,尽管大量的用户对之前的Mac OS 不感兴趣甚至不了解,他们将以前的系统定位在"低层次"OS上(至少和现在的Leopard相比是这样).但是你有没有想过为什么打开Terminal 迎头就是一句:"Welcome to Darwin”?   ;   为什么BSD和Mac OS会分享一些代码?   ; 为什么维基百科会描述Mac OS X是一个图形化操作系统 ?  今天我们来看看这款叫做Darwin的,作为开源技术的,隐藏在Leopard OS内部的核心代码.

每一个操作系统拥有一个核心,我们称之为"kernel".Mac OS X使用了一种混合的kernel -15年在卡内基梅隆大学开发.BSD (The Berkeley Software Distribution project),由Unix衍生而来的类似于FreeBSD.Mac就一直使用这个-BSD Unix作为kernel的内核.    就在BSD project的成长过程中,Steve Jobs成立了NeXT公司,苹果公司在1996年收购了它.从而直接把Jobs召回苹果做首席CEO .(可能你们应该还知道他是1985年出走的苹果) .   NeXT是 Mac OS X 形成的第一步.经历了几次的尝试和失败(像Taligent 和 Copland就采用了新的OS项目).苹果决定买下NeXT并使用OpenStep --NeXT创建的适应程序员编码习惯的一个OS.

OpenStep使用的是Mach Kernel.苹果的开发商将它作为BSD许可下的项目.(众所周知,这并不是带商业侵略性的通用公共许可.)接着,以BSD编码的Darwin诞生了.这就是为什么Darwin是同时基于FreeBDS和Mach 3.0技术.

是的,你的Mac OS X与NetBSD是有一定的相同点的.像大多数的Unix系统,Darwin包含了标准的Unix工具,包含Apache, sendmail 和一些相似的服务.

新版本的Mac OS X更是结合了多种Darwin与 苹果的 Quartz图形界面.当然,Mac 有自己的软体和在此基础上的修改与创新,使得Darwin更加友好地利于开发.

layers architecture

(图片来源:via)

同样,iPhone也是基于Darwin的.

现在你已经知道了Darwin,可能你也不需要这方面的知识,在将来的某一天你也有可能会接触到最最基础的Unix知识.那时你就会明白 为什么 X能在本地运行.

--------------

参考阅读:



gnu-darwin.org
developer.apple.com
kernel.macosforge.org

MacApper:What is Darwin?

O'Reilly Media:What Is Darwin (and How It Powers Mac OS X)

XNU: The Kernel

NeXTStep on Wikipedia (http://en.wikipedia.org/wiki/NeXTStep)
OpenStep on Wikipedia (http://en.wikipedia.org/wiki/OpenStep)
GNUStep on Wikipedia (http://en.wikipedia.org/wiki/GNUStep)

--------------

Again:  "Welcome To Darwin" !

原创翻译,转载请遵循CC协议(Creative Commons License),并表明原处.更多时候你只需要一个链接就可以了,不是么?