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月，Apple在網際網路軟體論壇（Internet Software Consortium, ISC）上成立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是基于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是一个从Apple发行的Darwin源代码中创建可引导的操作系统映像的项目。自从OpenDarwin停止运行以及Darwin8.x以来发布可启动映像以来，由于许多组件都成为封闭源，因此创建完整的操作系统变得越来越困难。 该项目已成功创建了基于Darwin 9和X11 GUI的Xmas版本和仅基于Darwin 17的命令行17.4 Beta。 XQuartz（前身為XDarwin），是蘋果電腦為Mac OS X/OS X/macOS（Darwin）上X Window系統的實作。 GNUstep，GNU計劃的專案之一。它將Cocoa（前身為NeXT的OpenStep）Objective-C軟體庫，部件工具箱（widget toolkits）以及其上的應用軟體，以自由軟體方式重新實作。 Window Maker，是X Window系統上一个自由及開放原始碼的窗口管理器，可讓圖形化應用軟體在類Unix作業系統上執行。它最最初设计用来模擬NeXT的圖形使用者介面，令其成為符合OpenStep相容环境。 WebKit是一个开源的Web浏览器引擎(Web browser engine)。它被用於Apple Safari。Webkit亦被使用於Apple iOS的預設瀏覽器。 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文件系统。 Release 1228. 2007年10月30日 [2023年1月9日].  Jim Magee. WWDC 2000 Session 106 - Mac OS X：Kernel. 14 记录于. [2020-04-29]. （原始内容存档于2018-12-26）.  Mac Technology Overview: Kernel and Device Drivers Layer. Apple Developer Connection. [February 11, 2013]. （原始内容存档于2014-03-09）.  Singh, Amit. XNU: The Kernel. January 7, 2004 [February 11, 2013]. （原始内容存档于2019-04-19）.  Additional Features. Porting UNIX/Linux Applications to OS X. Apple Inc. （原始内容存档于2017-11-14）.  Voodoo XNU Kernel Source. （原始内容存档于2015-09-30）.  需要一个Apache SVN客户端。 XNU on ARMv7.  FSF's Opinion of the Apple Public Source License (APSL) 2.0. （原始内容存档于2020-05-04）.  The Problems with older versions of the Apple Public Source License (APSL). （原始内容存档于2020-04-19）.  Open Source Releases. Apple Developer Connection. [February 11, 2013]. （原始内容存档于2020-09-17）.  "Technical Note TN2029：Mac OS X v10.1。" （页面存档备份，存于互联网档案馆） Apple Developer Connection. 于2008年6月2日检索。 Siracusa, John (September 5, 2002). "Mac OS X 10.2 Jaguar." （页面存档备份，存于互联网档案馆） Ars Technica. 于2008年5月31日检索。 Siracusa, John (November 9, 2003). "Mac OS X 10.3 Panther." （页面存档备份，存于互联网档案馆） Ars Technica.于2008年5月31日检索。 Siracusa, John (April 28, 2005). "Mac OS X 10.4 Tiger." （页面存档备份，存于互联网档案馆） Ars Technica. 于2008年5月30日检索。 Siracusa, John (October 28, 2007). "Mac OS X 10.5 Leopard：Ars Technical review." （页面存档备份，存于互联网档案馆） Ars Technica. 于2008年5月30日检索。 Siracusa, John (August 31, 2009). "Mac OS X 10.6 Snow Leopard: the Ars Technica review." （页面存档备份，存于互联网档案馆） Ars Technica. 于2009年11月29日检索。 在一台越狱的iPhone 4S中发现。 System Extensions and DriverKit - WWDC 2019 - Videos. Apple Developer. [2020-04-29]. （原始内容存档于2020-03-04） （英语）.  System Extensions. Apple Developer Documentation. [2020-04-09]. （原始内容存档于2021-11-08）.  DriverKit. Apple Developer Documentation. [2020-04-09]. （原始内容存档于2020-03-19）.  System Extensions and DriverKit. Apple Developer Documentation. [2020-04-09]. （原始内容存档于2020-03-04）.  Prabhakar, Ernie. Darwin Version - New Scheme in Software Update 1. darwin-development (邮件列表). November 9, 2001 [June 2, 2008]. （原始内容存档于2009-01-14）.  OpenDarwin. OpenDarwin Project. [2020-04-29]. （原始内容存档于2006-01-06）.  OpenDarwin Core Team and Administrators. OpenDarwin Shutting Down. OpenDarwin Project. July 25, 2006 [2020-04-29]. （原始内容存档于2006-08-04）.  OpenDarwin 7.2.1 Released. 2004-08-05 [2019-10-07]. （原始内容存档于2004-08-05）.  PureDarwin. [2010-04-04]. （原始内容存档于2010-04-11）.  PureDarwin Xmas （页面存档备份，存于互联网档案馆） (2015) PureDarwin 17.4 Beta. GitHub. PureDarwin. 30 November 2019 [11 January 2020]. （原始内容存档于2019-12-13）.  Security Enhanced Darwin. SEDarwin. January 22, 2007 [2020-04-29]. （原始内容存档于2011-10-05）.  What's New In Mac OS X: Mac OS X v10.5. Mac OS X Reference Library. Apple Inc. November 13, 2009 [2020-04-29]. （原始内容存档于2009-12-08）.  L4/Darwin (aka Darbat). Ertos.nicta.com.au. May 9, 2007 [2020-04-29]. （原始内容存档于2013-12-19）.  Darling: macOS translation layer for Linux. www.darlinghq.org. [11 January 2020]. （原始内容存档于2020-04-21）.  yuriwho. WirelessDriver Home Page. Wirelessdriver.sourceforge.net. May 5, 2002 [July 12, 2010]. （原始内容存档于2020-07-28）.  iwi2200 Darwin. SourceForge. March 27, 2009 [June 13, 2010]. （原始内容存档于2019-04-02）.  Port BSD tulip driver(s) to Darwin OS | Download Port BSD tulip driver(s) to Darwin OS software for free at. Sourceforge.net. [July 12, 2010]. （原始内容存档于2019-04-02）.  RealTek network driver for Mac OS X/Darwin. SourceForge. March 15, 2006 [June 3, 2010]. （原始内容存档于2019-04-02）.  Project inactive since March 15, 2006. fansui; et al. RTL8150LMEthernet. SourceForge. August 1, 2007 [June 13, 2010]. （原始内容存档于2018-12-08）.  ZyXEL Modem Drivers for OS X/Darwin | Download ZyXEL Modem Drivers for OS X/Darwin software for free at. Sourceforge.net. May 14, 2002 [July 12, 2010]. （原始内容存档于2019-04-02）.  Mac OS X PC Card ATA Driver. Pccardata.sourceforge.net. December 20, 2001 [July 12, 2010]. （原始内容存档于2020-08-05）.  Mac OS X Ext2 Filesystem | Download Mac OS X Ext2 Filesystem software for free at. Sourceforge.net. October 14, 2002 [July 12, 2010]. （原始内容存档于2011-08-25）.  ext2 filesystem in user space. SourceForge. July 14, 2008 [June 13, 2010]. （原始内容存档于2020-04-28）.  Apple - Mac OS X - Technologies - Darwin（页面存档备份，存于互联网档案馆） PureDarwin社群開發網頁（页面存档备份，存于互联网档案馆） DarwinPorts專案 Hexley, Darwin吉祥物（页面存档备份，存于互联网档案馆） Apple Public Source License 2.0 對於APSL之自由軟體基金會的意見（页面存档备份，存于互联网档案馆） Apple Press Release：蘋果電腦於2006年開始使用Intel微處理器 Mac OS X和BSD的差異