【Darwin (操作系统)】
Darwin 是由苹果公司于2000年所释出的一个开放原始码作业系统。Darwin 是 macOS 和 iOS 操作环境的作业系统部份。苹果公司于 2000 年把 Darwin 释出给开放原始码社群。
Darwin 是一种类 Unix 作业系统，包含开放原始码的 XNU 内核，其以微核心为基础的核心架构来实作 Mach，而作业系统的服务和使用者空间工具则以 BSD 为基础。类似其他类 Unix 作业系统，Darwin 也有对称多处理器的优点，高效能的网路设施和支援多种整合的档案系统。
整合 Mach 到 XNU 内核的好处是可携性，或者是在不同形式的系统使用软体的能力。举例来说，一个作业系统核心整合了 Mach 微核心，能够提供多种不同 CPU 架构的二进位格式到一个单一的档案（例如 x86 和 PowerPC），这是因为它使用了 Mach-O 的二进位格式。Mach 的缺点则是增加了作业系统内核 的复杂度。在过去的微核心实作上，这种复杂度有时候会导致很难分离核心效能的问题。因此，采用 Mach 微核心会伴随风险，但它有潜在的好处是广泛的可移植性。以 Darwin 可移植性的具体例子来说，在 2005 年 6 月，苹果电脑宣布它会于 2006 年在 Mac 电脑上开始采用 Intel 处理器。
Darwin 的开发者在 2000 年决定采用一个吉祥物，选择了鸭嘴兽 Hexley。苹果电脑也没有把 Hexley 认可为 Darwin 的一个标志。
在2002年4月，在网际网路软体论坛（Internet Software Consortium, ISC）上，Apple成立OpenDarwin.org，是一个协助合作Darwin发展的社群。OpenDarwin建立它自己释出的Darwin作业系统。值得注意的是OpenDarwin子计划中包含了DarwinPorts，目标是组合下一世代的port集合给Darwin使用（对于长期而言，也给其他的BSD所衍生的作业系统）。OpenDarwin专案于2006年中止，2007年另一个PureDarwin专案成立去接手OpenDarwin之前的目标。
2003年7月，苹果在APSL的2.0版本下释出了Darwin，是由自由软体基金会批准为自由软体的许可证。先前在较早的APSL版本下，尽管它已经达到开放原始码定义的要求，但所释出的先前版本并不符合FSF对于自由软体的定义。
== 设计 ==
=== 内核 ===
Darwin的内核是XNU，它是一种混合内核，它采用了来自OSF的OSFMK 7.3（Open Software Foundation Mach Kernel）和FreeBSD的各种要素（包括过程模型，网络堆栈和虚拟文件系统），还有一个称为I/O Kit的面向对象的设备驱动程序API。 混合内核设计使其具备了了微内核的灵活性和宏内核的性能。
=== 硬件和软件支持 ===
Darwin目前支持在Mac中使用的Intel x86处理器的64位x86-64变体以及在iPhone 5S，第六代iPod Touch，iPad Air，第四代Apple TV中使用的64位ARM处理器，最初的HomePod和更高版本，以及在iPhone 5C和更早版本，早期版本的iPod Touch，直到第四代的iPad以及第二和第三代Apple TV中使用的32位ARM处理器。 XNU内核的一个开源的移植支持Apple尚未正式支持的Intel和AMD x86平台上的Darwin，尽管自2009年以来似乎未进行过更新。XNU内核的开源移植也可用于ARM平台。较旧的版本支持32位PowerPC，64位PowerPC和32位x86的部分或全部。
它通过对BSD的沿袭（主要是FreeBSD用户领域）支持POSIX API，并且可以在Darwin上编译为其他各种类UNIX系统编写的大量程序，而无需更改源代码。
Darwin不包含macOS的许多定义元素，例如Carbon和Cocoa API或Quartz Compositor和Aqua用户界面，因此无法运行Mac应用程序。但是，它确实支持macOS的许多鲜为人知的功能，例如mDNSResponder，它是多播DNS响应器，是Bonjour网络技术的核心组件，并已推出高级服务管理框架。
== 许可证 ==
2003年7月，Apple在Apple Public Source License（APSL）2.0版之下发布了Darwin，自由软件基金会（FSF）将其归类为与GNU General Public License不兼容的自由软件许可证。它之前的版本是根据APSL许可证的较早版本发布的，尽管它确实满足了开放源代码定义的要求，但它不符合FSF对自由软件的定义。
== 版本历史 ==
下表是主要的Darwin版本及其发行日期和相应的macOS版本的表格。请注意，相应的macOS版本可能是在其他日期发布的；有关这些日期，请参阅macOS页面。
Mac OS X v10.1.1发行版中，版本号从Darwin 1.4.1跃升至5.1，旨在将Darwin与Mac OS X版本和内部版本号系统联系起来，而后者又是从NeXTSTEP继承而来的。在macOS的内部版本号系统中，每个版本都有一个唯一的开始内部版本号，用于标识其所属的整个macOS版本。Mac OS X v10.0的内部版本号以4开头，10.1的内部版本号以5开头，依此类推（早期的内部版本号代表开发人员的版本）。
命令终端中的uname -r 命令将显示Darwin版本号，uname -v命令将显示XNU构建版本的字符串，其中包括Darwin的版本号。
== 吉祥物 ==
Hexley是开放原始码的作业系统——Darwin（Mac OS X的核心）的吉祥物。Hexley是一个卡通的鸭嘴兽，通常戴著一个类似BSD小恶魔的帽子，并握著三叉戟。Hexley是由Jon Hooper所设计的，版权也为他所有。但Hexley并不附属于苹果电脑。本来这个吉祥物的名称应该是Huxley，源由是捍卫达尔文（Darwin）演化理论的英国生物学家托马斯·亨利·赫胥黎，而原先提议的人误以为是达尔文的助理，并错用了Hexley。而发现错误时，要改名已经太晚，因此沿用了Hexley这个名称。
== 衍生项目 ==
由于Darwin的自由软件性质，已经有了一些旨在修改或增强操作系统的项目。
=== OpenDarwin ===
OpenDarwin是基于Darwin的社区主导的操作系统。 它由Apple Inc.和Internet Systems Consortium于2002年4月成立。其目标是加强Apple开发人员与自由软件社区之间的协作。 苹果公司从该项目中受益，因为OpenDarwin的改进将纳入Darwin版本中。自由/开源社区受益于对其操作系统的完全控制，并且可以将其用于GNU-Darwin等自由软件发行版中。
2006年7月25日，OpenDarwin团队宣布该项目已关闭，因为他们认为OpenDarwin“已成为Mac OS X相关项目的唯一托管工具”，并且创建独立的Darwin操作系统的努力失败了。他们还指出：“消息来源的可用性，与Apple代表的互动，建立和跟踪消息来源的困难以及社区缺乏兴趣，这一切都为此做出了贡献。”它最后的稳定版本是2004年7月16日发行的7.2.1版。
=== PureDarwin ===
PureDarwin是一个从Apple发行的Darwin源代码中创建可引导的操作系统映像的项目。自从OpenDarwin停止运行以及Darwin8.x以来发布可启动映像以来，由于许多组件都成为封闭源，因此创建完整的操作系统变得越来越困难。 该项目已成功创建了基于Darwin 9和X11 GUI的Xmas版本和仅基于Darwin 17的命令行17.4 Beta。
=== 其他衍生项目 ===
* MacPorts（以前是DarwinPorts），Fink和Homebrew是将UNIX程序移植到Darwin操作系统并提供包管理服务的程序。另外，几个标准的UNIX软件包管理器（例如RPM，pkgsrc和Portage）具有Darwin的移植。其中一些在自己的名称空间中运行，以免干扰基本系统。
* GNU-Darwin是一个将自由软件的软件包移植到Darwin的项目。它们用类似于Linux发行版的方式打包OS镜像。
* Darwine项目是Wine在Darwin上的移植，它使人们可以在Darwin上运行Microsoft Windows软件。
* SEDarwin是TrustedBSD强制访问控制框架和SELinux框架的一部分在Darwin上的移植。它已被合并到Mac OS X 10.5中。
* Darbat项目是Darwin在L4微内核系列上的试验性移植。 它旨在与现有的Darwin二进制文件二进制兼容。
*Darling项目是用于在Linux系统上运行macOS二进制文件的兼容性层。它使用了一些Darwin的源代码。
* 有许多项目专注于驱动程序支持：例如无线驱动程序，有线NIC驱动程序，调制解调器驱动程序，读卡器，ext2和ext3文件系统。