如果你是 Mac 用户和开源软件爱好者,你可能见过某些带有“Darwin”标签的应用程序。
如果你是 Mac 用户和开源软件爱好者,你可能见过某些带有“Darwin”标签的应用程序。但为什么 macOS 版本的应用程序带有这个名称呢?
因为 macOS 与 iOS 和 tvOS 一样,由一款名为 Darwin 的基于 BSD 的开源软件提供支持。与许多开源操作系统一样,Darwin 甚至有一个吉祥物:鸭嘴兽 Hexley。
这不是什么噱头:苹果认真对待开源事情。你现在就可以在 opensource.apple.com 下载所有 Darwin 源代码。您会发现每个 macOS 版本都有不同的下载。
正是由于这一传统,macOS 软件有时被贴上“Darwin”的标签,尤其是被开源爱好者所标记。
等等,开源?这是否意味着我可以免费使用 macOS?
嗯……基本上不行。虽然 Darwin 本身是开源的,但你在想象 macOS 时想到的大多数东西都不是开源的。例如,Aqua 用户界面和 Cocoa API 都是闭源的,没有这些东西,任何 macOS 软件都无法运行。
因此,虽然你可以免费下载 Darwin 的源代码,并且如果你有合适的技能,你也可以编译它,但你永远无法让 macOS 软件运行它——讽刺的是,包括许多标有“darwin”的软件(除非你想花几年和/或几十年的时间对 macOS 的专有部分进行逆向工程)。Darwin 只是 macOS 其余部分构建的基础。
但这并不意味着你不能在 Darwin 上运行任何东西。你可以相对轻松地运行 Darwin 的第三方版本,特别是 PureDarwin。这个志愿者构建的操作系统以 Darwin 作为核心,甚至可以在其上运行开源用户界面。看起来是这样的:
如果你愿意付出努力,你还可以让 PureDarwin 在虚拟机中运行。只是不要指望在它上面运行 Mac 软件。
为什么会存在这么个东西?
这就要讲讲历史了。1985 年,当苹果公司解雇了史蒂夫·乔布斯时,他一直很忙。例如,他帮助图形集团从卢卡斯影业分拆出来。该公司更名为皮克斯。
大约在同一时间,乔布斯还创立了 NeXT,生产高端计算机。这些设备主要面向学术界,其高规格和面向对象、受 UNIX 启发的操作系统 NeXTSTEP 给计算机科学家留下了深刻的印象。该操作系统虽然大部分是闭源代码,但使用了一些开源代码,特别是来自 BSD 的代码。
虽然 NeXT 设备的销量从未特别好,但它们具有影响力:例如,蒂姆·伯纳斯·李 (Tim Berners-Lee) 在 NeXTSTEP 中设计了第一个网络浏览器。
1997年,苹果收购了NeXT。这让史蒂夫·乔布斯重返公司,但也意味着苹果拥有了 NeXTSTEP 操作系统。该操作系统的某些部分经过重新设计,形成了 Darwin 的基础,而 UNIX 的遗产意味着这些部分最终成为开源的。
其他 NeXTSTEP 功能,包括 Cocoa API,也成为 macOS 的一部分。正如该视频所示,即使是 Dock 和应用程序的 .app 扩展名等基本内容也可以追溯到 NeXTSTEP
NeXTSTEP 功能至今仍保留在 Mac 上,但每台 Apple 设备都是这一遗产的一部分。Darwin 为 iPhone、Apple Watch 和 Apple TV 提供动力。大多数苹果用户永远不会知道这一点,他们也确实不需要知道,但每个人都会时不时地遇到一个名称中带有“Darwin”的软件包。现在你知道为什么了。