fbpx
维基百科

Darwin (操作系统)

Darwin 是由蘋果公司於2000年所釋出的一個開放原始碼作業系統。Darwin 是 macOSiOS 操作環境的作業系統部份。蘋果公司於 2000 年把 Darwin 釋出給開放原始碼社群。

Darwin
开发者蘋果公司
编程语言C, C++, Objective-C, 汇编语言
作業系統家族类Unix系统
運作狀態Current
源码模式自由及開放源碼件
目前版本
  • 22.2.0 (2022年12月13日)
支援平台目前: x86-64, 64-bit ARM
历史上: PowerPC, IA-32, 32-bit ARM (ARM32位支持是闭源的)[來源請求]
内核类别混合內核
许可证主要为APSL,含有闭源的设备驱动
官方網站opensource.apple.com
仓库
  • github.com/apple-oss-distributions/xnu

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[1](Open Software Foundation Mach Kernel)和FreeBSD的各种要素(包括过程模型,网络堆栈和虚拟文件系统),[2]还有一个称为I/O Kit的面向对象的设备驱动程序API。[3] 混合内核设计使其具备了了微内核的灵活性和宏内核的性能。[4]

硬件和软件支持

Darwin目前支持在Mac中使用的Intel x86处理器的64位x86-64变体以及在iPhone 5S,第六代iPod TouchiPad Air,第四代Apple TV中使用的64位ARM处理器,最初的HomePod和更高版本,以及在iPhone 5C和更早版本,早期版本的iPod Touch,直到第四代的iPad以及第二和第三代Apple TV中使用的32位ARM处理器。 XNU内核的一个开源的移植支持Apple尚未正式支持的Intel和AMD x86平台上的Darwin,尽管自2009年以来似乎未进行过更新。[5]XNU内核的开源移植也可用于ARM平台。[6]较旧的版本支持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不兼容的自由软件许可证。[7]它之前的版本是根据APSL许可证的较早版本发布的,尽管它确实满足了开放源代码定义的要求,但它不符合FSF对自由软件的定义。[8]

版本歷史

下表是主要的Darwin版本及其发行日期和相应的macOS版本的表格。[9]请注意,相应的macOS版本可能是在其他日期发布的;有关这些日期,请参阅macOS页面。

版本 版本發佈日期 對應的版本 注解
0.1 1999年3月16日 Mac OS X Server 1.0发行版
  • 初始版本
  • 0.1是人为设置的版本号,为了便于排序和标识。它本身的标识是 Rhapsody 5.3
0.2 1999年4月14日 Mac OS X Server 1.0.1
0.3 1999年8月5日 基于 Rhapsody 5.5
  • 可于archive.org找到ISO镜像
  • 此后,内核从 NeXTSTEP/OPENSTEP/Rhapsody 更改为Mac OS X的较新XNU。
1.0 2000年4月12日 開發者預覽第3版
1.1 2000年4月5日 開發者預覽第4版
1.2.1 2000年11月15日 Mac OS X 公開測試版 代号 "Kodiak"
1.3.1 2001年4月13日 Mac OS X v10.0
  • 代号 "Cheetah"
  • Darwin的首个商业版本
  • Cheetah(v10.0.0-4)的所有版本都有相同版本的Darwin
1.4.1 2001年10月2日 Mac OS X v10.1
  • 代号 "Puma"
  • 启动时间、实时线程、线程管理、缓存刷新和抢占式处理的性能改进
  • 支持SMBNFS
  • Wget取代cURL[10]
5.1 2001年11月12日 Mac OS X v10.1.1
  • 更改编号方案以匹配Mac OS X内部版本编号方案
5.5 2002年6月5日 Mac OS X v10.1.5
6.0.1 2002年9月23日 Mac OS X v10.2
6.8 2003年10月3日 Mac OS X v10.2.8
7.0 2003年10月24日 Mac OS X Panther
  • Mac OS X v10.3.0
  • BSD層與FreeBSD5同步
  • HFS+中的自動文件碎片整理、熱文件集群和可選的区分大小写功能
  • bash取代tcsh作為默認shell
  • 支持只讀NTFS(Darwin 7.9).[12]
7.9 2005年4月15日 Mac OS X v10.3.9
8.0 2005年4月29日 Mac OS X Tiger
Mac OS X for Apple TV
8.11 2007年11月14日 Mac OS X v10.4.11
9.0 2007年10月26日 Mac OS X Leopard
iPhone OS 1.0
Mac OS X v10.5.0
  • Darwin 9.0.0d1中的iPhone OS 1支持
  • 完整的POSIX標準实现,改進分層的行程排程模型,動態分配分頁檔案、動態資源限制(對個別檔案與行程)、行程沙盒化、隨機位址空間配置、DTrace的追蹤框架、檔案系統事件的管理員、目錄的硬式連結
  • Apache1.3及PHP4更新至Apache 2.2及PHP 5
  • 支持只讀ZFS[14]
  • 最早用于iPhone的Darwin内核
9.8 2009年8月5日 Mac OS X v.10.5.8
10.0 2009年8月28日 Mac OS X Snow Leopard
iOS 4.0
Mac OS X v10.6.0
10.1 2009年9月10日 Mac OS X v10.6.1
10.2 2009年11月9日 Mac OS X v10.6.2
10.3 2010年3月29日 Mac OS X v10.6.3
iOS 4.0
10.4 2010年6月15日 Mac OS X v10.6.4
10.5 2010年11月11日 Mac OS X v10.6.5
10.6 2011年1月6日 Mac OS X v10.6.6
10.7 2011年3月21日 Mac OS X v10.6.7
10.8 2011年6月23日 Mac OS X v10.6.8
11.0.0 2011年7月20日 Mac OS X Lion
iOS 5[16]
Mac OS X v10.7.0
  • XNU不再支持PowerPC二进制文件(大二进制文件仅适用于i386,x86_64)。
  • XNU需要x86_64处理器,基于ARMiOS除外。
  • 改进了应用程序的沙箱
  • 完全支持自动引用计数
11.1.0 2011年8月16日 Mac OS X v10.7.1
11.2.0 2011年10月13日 Mac OS X v10.7.2
11.3.0 2012年2月2日 Mac OS X v10.7.3
11.4.2 2012年10月4日 Mac OS X v10.7.5 (额外的)
12.0.0 2012年2月16日 OS X Mountain Lion OS X v10.8.0
12.6.0 2015年1月27日 OS X v10.8.5(带有安全更新2015-001)
13.0 2013年6月10日 OS X Mavericks
iOS 6
OS X v10.9.0
  • 虚拟内存压缩
  • 计时器合并
  • OpenGL 4.1和OpenCL 1.2
  • 服务器消息块版本2(SMB2)取代AFP成为共享文件的默认协议。这是为了提高性能和跨平台兼容性。
  • IPoTB(基于Thunderbolt桥的Internet协议)。
  • Open Transport API已被删除
13.4.0 2014年9月7日 OS X v10.9.5
14.0.0 2014年9月18日 OS X Yosemite
iOS 7
iOS 8
OS X v10.10.0
14.5.0 2015年8月13日 OS X v10.10.5
15.0.0 2015年9月16日 OS X El Capitan
iOS 9
OS X v10.11.0

iOS 9.0

  • 系统完整性保护。 即使由root或具有root特权的用户运行,也可以防止某些系统部件被进程修改或篡改。
  • sudo配置默认情况下使用“tty_tickets”标志,将会话超时限制为用户在其中验证程序的终端会话(例如窗口或选项卡)。
  • LibreSSL取代了OpenSSL
15.6.0 2016年7月18日 OS X v10.11.6

iOS 9.3.3

16.0.0 2016年9月13日 macOS Sierra
iOS 10
macOS v10.12.0

iOS 10.0.1(初始发行版)

  • OS X被更名为macOS
  • 现在,仅有root用户或具有root特权的用户可以写入/Volumes目录
  • 系统完整性保护现在涵盖了/Library/ApplicationSupport/com.apple.TCC目录,其中包含允许“控制计算机”的应用程序列表
  • 删除了Objective-C垃圾收集器,并替换为Darwin v12.0(OS X v10.8)引入的自动引用计数。使用垃圾回收的Objective-C应用程序将不再起作用。
  • PPTP的本机支持已删除。
16.5.0 2017年3月27日 macOS v10.12.4

iOS 10.3

  • 在iOS设备上将文件系统从HFS+更改为APFS。自10.12.0起,APFS已在macOS上可用,但不能在启动分区上使用。
16.6.0 2017年7月19日 macOS v10.12.6

iOS 10.3.3

17.0.0 2017年9月19日 macOS High Sierra
iOS 11
  • 在具有闪存的Mac上,macOS中引导分区的默认文件系统HFS+替换为了APFS。在具有HDD的Mac上,必须重新格式化启动分区才能使用APFS
  • 将时间同步服务从ntpd替换为了timed
  • FTPtelnet命令被删除。
  • 内核扩展(Kexts)将需要用户明确批准才能运行。
17.5.0 2018年3月29日 macOS 10.13.4
  • 支持使用Thunderbolt 3的外部图形处理器,并删除了使用Thunderbolt 1和2的外部图形处理器的支持。
17.6.0 2018年6月1日 macOS v10.13.5
17.7.0 2018年7月9日 macOS v10.13.6

iOS 11.4.1

18.0.0 2018年9月2日 macOS Mojave
iOS 12
18.2.0 2018年10月30日 macOS v10.14.1

iOS 12.1

  • 在新的MacBook中增加了对新的Radeon Vega 20 GPU的支持
19.0.0 2019年9月19日 macOS Catalina
iOS 13
19.2.0 2019年12月10日 macOS 10.15.2

iOS 13.3

19.3.0 2020年1月28日 macOS 10.15.3

iOS 13.3.1

  • 系统扩展取代了Kexts,并在内核之外的用户空间中运行。[17]
  • DriverKit取代了IOKit。 它引入了使用DriverKit构建的“ Dexts”(驱动程序扩展)。 Driverkit是一个新的SDK,具有基于IOKit的所有新框架,但已进行了更新和现代化。 设备驱动程序在内核外部的用户空间中运行。[18][19][20]
20.1.0 2020年10月30日 macOS 11.0.1
20.2.0 2021年12月15日 macOS 11.1
20.3.0 2021年2月2日 macOS 11.2
20.4.0 2021年4月20日 macOS 11.3
20.5.0 2021年5月24日 macOS 11.4
20.6.0 2021年6月2日 macOS 11.5
21.0.0 2021年6月7日 macOS 12.0 beta 1
21.0.1 2021年10月25日 macOS 12.0
21.1.0 2021年10月25日 macOS 12.0.1
21.2.0 2021年12月7日 macOS 12.1
21.3.0 2022年1月7日 macOS 12.2

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开头,依此类推(早期的内部版本号代表开发人员的版本)。[21]

命令终端中的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等自由软件发行版中。[22]

2006年7月25日,OpenDarwin团队宣布该项目已关闭,因为他们认为OpenDarwin“已成为Mac OS X相关项目的唯一托管工具”,并且创建独立的Darwin操作系统的努力失败了。他们还指出:“消息来源的可用性,与Apple代表的互动,建立和跟踪消息来源的困难以及社区缺乏兴趣,这一切都为此做出了贡献。”[23]它最后的稳定版本是2004年7月16日发行的7.2.1版。[24]

PureDarwin

PureDarwin是一个从Apple发行的Darwin源代码中创建可引导的操作系统映像的项目。[25]自从OpenDarwin停止运行以及Darwin8.x以来发布可启动映像以来,由于许多组件都成为封闭源,因此创建完整的操作系统变得越来越困难。 该项目已成功创建了基于Darwin 9和X11 GUI的Xmas版本[26]和仅基于Darwin 17的命令行17.4 Beta。[27]

其他衍生项目

  • 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上的移植。[28]它已被合并到Mac OS X 10.5中。[29]
  • Darbat项目是Darwin在L4微内核系列上的试验性移植。 它旨在与现有的Darwin二进制文件二进制兼容。[30]
  • Darling项目是用于在Linux系统上运行macOS二进制文件的兼容性层。它使用了一些Darwin的源代码。[31]
  • 有许多项目专注于驱动程序支持:例如无线驱动程序[32][33],有线NIC驱动程序[34][35][36],调制解调器驱动程序[37],读卡器[38]ext2ext3文件系统[39][40]

参考

  1. ^ Jim Magee. WWDC 2000 Session 106 - Mac OS X:Kernel. 14 记录于. [2020-04-29]. (原始内容于2018-12-26). 
  2. ^ Mac Technology Overview: Kernel and Device Drivers Layer. Apple Developer Connection. [February 11, 2013]. (原始内容于2014-03-09). 
  3. ^ Singh, Amit. XNU: The Kernel. January 7, 2004 [February 11, 2013]. (原始内容于2019-04-19). 
  4. ^ Additional Features. Porting UNIX/Linux Applications to OS X. Apple Inc. (原始内容于2017-11-14). 
  5. ^ Voodoo XNU Kernel Source. (原始内容于2015-09-30).  需要一个Apache SVN客户端。
  6. ^ XNU on ARMv7. 
  7. ^ FSF's Opinion of the Apple Public Source License (APSL) 2.0. (原始内容于2020-05-04). 
  8. ^ The Problems with older versions of the Apple Public Source License (APSL). (原始内容于2020-04-19). 
  9. ^ Open Source Releases. Apple Developer Connection. [February 11, 2013]. (原始内容于2020-09-17). 
  10. ^ "Technical Note TN2029:Mac OS X v10.1。" (页面存档备份,存于互联网档案馆) Apple Developer Connection. 于2008年6月2日检索。
  11. ^ Siracusa, John (September 5, 2002). "Mac OS X 10.2 Jaguar." (页面存档备份,存于互联网档案馆Ars Technica. 于2008年5月31日检索。
  12. ^ Siracusa, John (November 9, 2003). "Mac OS X 10.3 Panther." (页面存档备份,存于互联网档案馆Ars Technica.于2008年5月31日检索。
  13. ^ Siracusa, John (April 28, 2005). "Mac OS X 10.4 Tiger." (页面存档备份,存于互联网档案馆Ars Technica. 于2008年5月30日检索。
  14. ^ Siracusa, John (October 28, 2007). "Mac OS X 10.5 Leopard:Ars Technical review." (页面存档备份,存于互联网档案馆Ars Technica. 于2008年5月30日检索。
  15. ^ Siracusa, John (August 31, 2009). "Mac OS X 10.6 Snow Leopard: the Ars Technica review." (页面存档备份,存于互联网档案馆Ars Technica. 于2009年11月29日检索。
  16. ^ 在一台越狱iPhone 4S中发现。
  17. ^ System Extensions and DriverKit - WWDC 2019 - Videos. Apple Developer. [2020-04-29]. (原始内容于2020-03-04) (英语). 
  18. ^ System Extensions. Apple Developer Documentation. [2020-04-09]. (原始内容于2021-11-08). 
  19. ^ DriverKit. Apple Developer Documentation. [2020-04-09]. (原始内容于2020-03-19). 
  20. ^ System Extensions and DriverKit. Apple Developer Documentation. [2020-04-09]. (原始内容于2020-03-04). 
  21. ^ Prabhakar, Ernie. . darwin-development (邮件列表). November 9, 2001 [June 2, 2008]. (原始内容存档于2009-01-14). 
  22. ^ OpenDarwin. OpenDarwin Project. [2020-04-29]. (原始内容于2006-01-06). 
  23. ^ OpenDarwin Core Team and Administrators. . OpenDarwin Project. July 25, 2006 [2020-04-29]. (原始内容存档于2006-08-04). 
  24. ^ OpenDarwin 7.2.1 Released. 2004-08-05 [2019-10-07]. (原始内容于2004-08-05). 
  25. ^ PureDarwin. [2010-04-04]. (原始内容于2010-04-11). 
  26. ^ PureDarwin Xmas (页面存档备份,存于互联网档案馆) (2015)
  27. ^ PureDarwin 17.4 Beta. GitHub. PureDarwin. 30 November 2019 [11 January 2020]. (原始内容于2019-12-13). 
  28. ^ Security Enhanced Darwin. SEDarwin. January 22, 2007 [2020-04-29]. (原始内容于2011-10-05). 
  29. ^ 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). 
  30. ^ . Ertos.nicta.com.au. May 9, 2007 [2020-04-29]. (原始内容存档于2013-12-19). 
  31. ^ Darling: macOS translation layer for Linux. www.darlinghq.org. [11 January 2020]. (原始内容于2020-04-21). 
  32. ^ yuriwho. WirelessDriver Home Page. Wirelessdriver.sourceforge.net. May 5, 2002 [July 12, 2010]. (原始内容于2020-07-28). 
  33. ^ iwi2200 Darwin. SourceForge. March 27, 2009 [June 13, 2010]. (原始内容于2019-04-02). 
  34. ^ 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). 
  35. ^ RealTek network driver for Mac OS X/Darwin. SourceForge. March 15, 2006 [June 3, 2010]. (原始内容于2019-04-02).  Project inactive since March 15, 2006.
  36. ^ fansui; et al. RTL8150LMEthernet. SourceForge. August 1, 2007 [June 13, 2010]. (原始内容于2018-12-08). 
  37. ^ 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). 
  38. ^ Mac OS X PC Card ATA Driver. Pccardata.sourceforge.net. December 20, 2001 [July 12, 2010]. (原始内容于2020-08-05). 
  39. ^ 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). 
  40. ^ ext2 filesystem in user space. SourceForge. July 14, 2008 [June 13, 2010]. (原始内容于2020-04-28). 

外部連結

darwin, 操作系统, darwin, 是由蘋果公司於2000年所釋出的一個開放原始碼作業系統, darwin, macos, 操作環境的作業系統部份, 蘋果公司於, 2000, 年把, darwin, 釋出給開放原始碼社群, darwin开发者蘋果公司编程语言c, objective, 汇编语言作業系統家族类unix系统運作狀態current源码模式自由及開放源碼件目前版本22, 2022年12月13日, 支援平台目前, arm历史上, powerpc, arm32位支持是闭源的, 來源請求, 内核类别混合內. Darwin 是由蘋果公司於2000年所釋出的一個開放原始碼作業系統 Darwin 是 macOS 和 iOS 操作環境的作業系統部份 蘋果公司於 2000 年把 Darwin 釋出給開放原始碼社群 Darwin开发者蘋果公司编程语言C C Objective C 汇编语言作業系統家族类Unix系统運作狀態Current源码模式自由及開放源碼件目前版本22 2 0 2022年12月13日 支援平台目前 x86 64 64 bit ARM历史上 PowerPC IA 32 32 bit ARM ARM32位支持是闭源的 來源請求 内核类别混合內核许可证主要为APSL 含有闭源的设备驱动官方網站opensource wbr apple wbr com仓库github wbr com wbr apple oss distributions wbr xnuDarwin 是一種類 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對於自由軟體的定義 目录 1 设计 1 1 内核 1 2 硬件和软件支持 2 许可证 3 版本歷史 4 吉祥物 5 衍生项目 5 1 OpenDarwin 5 2 PureDarwin 5 3 其他衍生项目 6 参考 7 外部連結设计 编辑内核 编辑 Darwin的内核是XNU 它是一种混合内核 它采用了来自OSF的OSFMK 7 3 1 Open Software Foundation Mach Kernel 和FreeBSD的各种要素 包括过程模型 网络堆栈和虚拟文件系统 2 还有一个称为I O Kit的面向对象的设备驱动程序API 3 混合内核设计使其具备了了微内核的灵活性和宏内核的性能 4 硬件和软件支持 编辑 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年以来似乎未进行过更新 5 XNU内核的开源移植也可用于ARM平台 6 较旧的版本支持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不兼容的自由软件许可证 7 它之前的版本是根据APSL许可证的较早版本发布的 尽管它确实满足了开放源代码定义的要求 但它不符合FSF对自由软件的定义 8 版本歷史 编辑下表是主要的Darwin版本及其发行日期和相应的macOS版本的表格 9 请注意 相应的macOS版本可能是在其他日期发布的 有关这些日期 请参阅macOS页面 版本 版本發佈日期 對應的版本 注解0 1 1999年3月16日 Mac OS X Server 1 0发行版 初始版本 0 1是人为设置的版本号 为了便于排序和标识 它本身的标识是 Rhapsody 5 30 2 1999年4月14日 Mac OS X Server 1 0 10 3 1999年8月5日 基于 Rhapsody 5 5 可于archive org找到ISO镜像 此后 内核从 NeXTSTEP OPENSTEP Rhapsody 更改为Mac OS X的较新XNU 1 0 2000年4月12日 開發者預覽第3版 可于archive org找到ISO镜像1 1 2000年4月5日 開發者預覽第4版1 2 1 2000年11月15日 Mac OS X 公開測試版 代号 Kodiak 1 3 1 2001年4月13日 Mac OS X v10 0 代号 Cheetah Darwin的首个商业版本 Cheetah v10 0 0 4 的所有版本都有相同版本的Darwin1 4 1 2001年10月2日 Mac OS X v10 1 代号 Puma 启动时间 实时线程 线程管理 缓存刷新和抢占式处理的性能改进 支持SMB和NFS 以Wget取代cURL 10 5 1 2001年11月12日 Mac OS X v10 1 1 更改编号方案以匹配Mac OS X内部版本编号方案5 5 2002年6月5日 Mac OS X v10 1 56 0 1 2002年9月23日 Mac OS X v10 2 代号 Jaguar GCC由2更新至3 1 支持IPv6及IPSec mDNSResponder 服務探索的守護行程 Rendezvous 新增CUPS Ruby Python 在HFS 中支持日志 速度更快的應用程序配置文件 pre heat files 11 6 8 2003年10月3日 Mac OS X v10 2 87 0 2003年10月24日 Mac OS X Panther Mac OS X v10 3 0 BSD層與FreeBSD5同步 HFS 中的自動文件碎片整理 熱文件集群和可選的区分大小写功能 用bash取代tcsh作為默認shell 支持只讀NTFS Darwin 7 9 12 7 9 2005年4月15日 Mac OS X v10 3 98 0 2005年4月29日 Mac OS X TigerMac OS X for Apple TV Mac OS X v10 4 0 穩定版的应用程序接口 细粒度的内核锁 64位的BSD層 launchd服務管理框架 擴展文件屬性 存取控制表 更新如cp及mv的命令以保護擴展屬性及resource forks 13 8 11 2007年11月14日 Mac OS X v10 4 119 0 2007年10月26日 Mac OS X LeopardiPhone OS 1 0 Mac OS X v10 5 0 Darwin 9 0 0d1中的iPhone OS 1支持 完整的POSIX標準实现 改進分層的行程排程模型 動態分配分頁檔案 動態資源限制 對個別檔案與行程 行程沙盒化 隨機位址空間配置 DTrace的追蹤框架 檔案系統事件的管理員 目錄的硬式連結 Apache1 3及PHP4更新至Apache 2 2及PHP 5 支持只讀ZFS 14 最早用于iPhone的Darwin内核9 8 2009年8月5日 Mac OS X v 10 5 810 0 2009年8月28日 Mac OS X Snow LeopardiOS 4 0 Mac OS X v10 6 0 停止支援PowerPC架構 64 bit核心及驅動程式 libdispatch任務并行框架 OpenCL異構計算框架 初始支持自动引用计数 透過C语言支援Blocks 以HFS 数据压缩文件 15 10 1 2009年9月10日 Mac OS X v10 6 110 2 2009年11月9日 Mac OS X v10 6 210 3 2010年3月29日 Mac OS X v10 6 3iOS 4 010 4 2010年6月15日 Mac OS X v10 6 410 5 2010年11月11日 Mac OS X v10 6 510 6 2011年1月6日 Mac OS X v10 6 610 7 2011年3月21日 Mac OS X v10 6 710 8 2011年6月23日 Mac OS X v10 6 811 0 0 2011年7月20日 Mac OS X LioniOS 5 16 Mac OS X v10 7 0 XNU不再支持PowerPC二进制文件 大二进制文件仅适用于i386 x86 64 XNU需要x86 64处理器 基于ARM的iOS除外 改进了应用程序的沙箱 完全支持自动引用计数11 1 0 2011年8月16日 Mac OS X v10 7 111 2 0 2011年10月13日 Mac OS X v10 7 211 3 0 2012年2月2日 Mac OS X v10 7 311 4 2 2012年10月4日 Mac OS X v10 7 5 额外的 12 0 0 2012年2月16日 OS X Mountain Lion OS X v10 8 0 Mac OS X被更名为OS X 不再推荐使用Objective C垃圾收集 建议使用自动引用计数12 6 0 2015年1月27日 OS X v10 8 5 带有安全更新2015 001 13 0 2013年6月10日 OS X MavericksiOS 6 OS X v10 9 0 虚拟内存压缩 计时器合并 OpenGL 4 1和OpenCL 1 2 服务器消息块版本2 SMB2 取代AFP成为共享文件的默认协议 这是为了提高性能和跨平台兼容性 IPoTB 基于Thunderbolt桥的Internet协议 Open Transport API已被删除13 4 0 2014年9月7日 OS X v10 9 514 0 0 2014年9月18日 OS X YosemiteiOS 7iOS 8 OS X v10 10 014 5 0 2015年8月13日 OS X v10 10 515 0 0 2015年9月16日 OS X El CapitaniOS 9 OS X v10 11 0 iOS 9 0 系统完整性保护 即使由root或具有root特权的用户运行 也可以防止某些系统部件被进程修改或篡改 sudo配置默认情况下使用 tty tickets 标志 将会话超时限制为用户在其中验证程序的终端会话 例如窗口或选项卡 LibreSSL取代了OpenSSL15 6 0 2016年7月18日 OS X v10 11 6 iOS 9 3 316 0 0 2016年9月13日 macOS SierraiOS 10 macOS v10 12 0 iOS 10 0 1 初始发行版 OS X被更名为macOS 现在 仅有root用户或具有root特权的用户可以写入 Volumes目录 系统完整性保护现在涵盖了 Library ApplicationSupport com apple TCC目录 其中包含允许 控制计算机 的应用程序列表 删除了Objective C垃圾收集器 并替换为Darwin v12 0 OS X v10 8 引入的自动引用计数 使用垃圾回收的Objective C应用程序将不再起作用 对PPTP的本机支持已删除 16 5 0 2017年3月27日 macOS v10 12 4 iOS 10 3 在iOS设备上将文件系统从HFS 更改为APFS 自10 12 0起 APFS已在macOS上可用 但不能在启动分区上使用 16 6 0 2017年7月19日 macOS v10 12 6 iOS 10 3 317 0 0 2017年9月19日 macOS High SierraiOS 11 在具有闪存的Mac上 macOS中引导分区的默认文件系统从HFS 替换为了APFS 在具有HDD的Mac上 必须重新格式化启动分区才能使用APFS 将时间同步服务从ntpd替换为了timed FTP和telnet命令被删除 内核扩展 Kexts 将需要用户明确批准才能运行 17 5 0 2018年3月29日 macOS 10 13 4 支持使用Thunderbolt 3的外部图形处理器 并删除了使用Thunderbolt 1和2的外部图形处理器的支持 17 6 0 2018年6月1日 macOS v10 13 517 7 0 2018年7月9日 macOS v10 13 6 iOS 11 4 118 0 0 2018年9月2日 macOS MojaveiOS 1218 2 0 2018年10月30日 macOS v10 14 1 iOS 12 1 在新的MacBook中增加了对新的Radeon Vega 20 GPU的支持19 0 0 2019年9月19日 macOS CatalinaiOS 1319 2 0 2019年12月10日 macOS 10 15 2 iOS 13 319 3 0 2020年1月28日 macOS 10 15 3 iOS 13 3 1 系统扩展取代了Kexts 并在内核之外的用户空间中运行 17 DriverKit取代了IOKit 它引入了使用DriverKit构建的 Dexts 驱动程序扩展 Driverkit是一个新的SDK 具有基于IOKit的所有新框架 但已进行了更新和现代化 设备驱动程序在内核外部的用户空间中运行 18 19 20 20 1 0 2020年10月30日 macOS Big SuriOS 14 macOS 11 0 120 2 0 2021年12月15日 macOS 11 120 3 0 2021年2月2日 macOS 11 220 4 0 2021年4月20日 macOS 11 320 5 0 2021年5月24日 macOS 11 420 6 0 2021年6月2日 macOS 11 521 0 0 2021年6月7日 macOS MontereyiOS 15 macOS 12 0 beta 121 0 1 2021年10月25日 macOS 12 021 1 0 2021年10月25日 macOS 12 0 121 2 0 2021年12月7日 macOS 12 121 3 0 2022年1月7日 macOS 12 2Mac 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开头 依此类推 早期的内部版本号代表开发人员的版本 21 命令终端中的 a href Uname html title Uname uname a r 命令将显示Darwin版本号 a href Uname html title Uname uname a 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等自由软件发行版中 22 2006年7月25日 OpenDarwin团队宣布该项目已关闭 因为他们认为OpenDarwin 已成为Mac OS X相关项目的唯一托管工具 并且创建独立的Darwin操作系统的努力失败了 他们还指出 消息来源的可用性 与Apple代表的互动 建立和跟踪消息来源的困难以及社区缺乏兴趣 这一切都为此做出了贡献 23 它最后的稳定版本是2004年7月16日发行的7 2 1版 24 PureDarwin 编辑 PureDarwin是一个从Apple发行的Darwin源代码中创建可引导的操作系统映像的项目 25 自从OpenDarwin停止运行以及Darwin8 x以来发布可启动映像以来 由于许多组件都成为封闭源 因此创建完整的操作系统变得越来越困难 该项目已成功创建了基于Darwin 9和X11 GUI的Xmas版本 26 和仅基于Darwin 17的命令行17 4 Beta 27 其他衍生项目 编辑 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上的移植 28 它已被合并到Mac OS X 10 5中 29 Darbat项目是Darwin在L4微内核系列上的试验性移植 它旨在与现有的Darwin二进制文件二进制兼容 30 Darling项目是用于在Linux系统上运行macOS二进制文件的兼容性层 它使用了一些Darwin的源代码 31 有许多项目专注于驱动程序支持 例如无线驱动程序 32 33 有线NIC驱动程序 34 35 36 调制解调器驱动程序 37 读卡器 38 ext2和ext3文件系统 39 40 参考 编辑 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的差異 取自 https zh wikipedia org w index php title Darwin 操作系统 amp oldid 75431475, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。