開發者 | 蘋果公司 |
---|---|
程式語言 | C, C++, Objective-C, 組合語言 |
作業系統家族 | 類Unix系統 |
運作狀態 | Current |
原始碼模式 | 自由及開放原始碼件 |
最新版本 | 20.3.0 / 2021年2月2日 |
支援平台 | 目前: x86-64, 64-bit ARM 歷史上: PowerPC, IA-32, 32-bit ARM (ARM32位元支援是閉源的) |
核心類別 | 混合核心 |
許可證 | 主要為APSL,含有閉源的裝置驅動 |
官方網站 | opensource |
倉庫 | github |
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的各種要素(包括過程模型,網路堆疊和虛擬檔案系統),[1]還有一個稱為I/O Kit的物件導向的裝置驅動程式API。[2]混合核心設計使其具備了了微核心的靈活性和單核心的效能。[3]
硬體和軟體支援
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年以來似乎未進行過更新。[4]XNU核心的開源移植也可用於ARM平台。[5]較舊的版本支援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不相容的自由軟體許可證。[6]它之前的版本是根據APSL許可證的較早版本發布的,儘管它確實滿足了開放原始碼定義的要求,但它不符合FSF對自由軟體的定義。[7]
版本歷史
下表是主要的Darwin版本及其發行日期和相應的macOS版本的表格。[8]請注意,相應的macOS版本可能是在其他日期發布的;有關這些日期,請參閱macOS頁面。
版本 | 版本發佈日期 | 對應的版本 | 註解 |
---|---|---|---|
0.1 | 1999年3月16日 | Mac OS X Server 1.0發行版 |
|
0.2 | 1999年4月14日 | Mac OS X Server 1.0.1 | |
0.3 | 1999年8月5日 | 基於 Rhapsody 5.5
| |
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 |
|
1.4.1 | 2001年10月2日 | Mac OS X v10.1 | |
5.1 | 2001年11月12日 | Mac OS X v10.1.1
| |
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 | |
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 |
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[15] |
Mac OS X v10.7.0 |
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
|
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 |
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(初始發行版)
|
16.5.0 | 2017年3月27日 | macOS v10.12.4
iOS 10.3 | |
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 |
|
17.5.0 | 2018年3月29日 | macOS 10.13.4
| |
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
| |
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 | |
20.1.0 | 2020年10月30日 | macOS Big Sur | macOS 11.0.1 |
20.2.0 | 2021年12月15日 | macOS 11.1 | |
20.3.0 | 2021年2月2日 | macOS 11.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開頭,依此類推(早期的內部版本號代表開發人員的版本)。[20]
命令終端中的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等自由軟體發行版中。[21]
2006年7月25日,OpenDarwin團隊宣布該專案已關閉,因為他們認為OpenDarwin「已成為Mac OS X相關專案的唯一代管工具」,並且建立獨立的Darwin作業系統的努力失敗了。他們還指出:「訊息來源的可用性,與Apple代表的互動,建立和跟蹤訊息來源的困難以及社群缺乏興趣,這一切都為此做出了貢獻。」[22]它最後的穩定版本是2004年7月16日發行的7.2.1版。[23]
PureDarwin
PureDarwin是一個從Apple發行的Darwin原始碼中建立可引導的作業系統映像的專案。[24]自從OpenDarwin停止執行以及Darwin8.x以來發布可啟動映像以來,由於許多組件都成為封閉源,因此建立完整的作業系統變得越來越困難。 該專案已成功建立了基於Darwin 9和X11 GUI的Xmas版本[25]和僅基於Darwin 17的命令列17.4 Beta。[26]
其他衍生專案
- 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上的移植。[27]它已被合併到Mac OS X 10.5中。[28]
- Darbat專案是Darwin在L4微核心系列上的試驗性移植。 它旨在與現有的Darwin二進位檔案二進位相容。[29]
- Darling專案是用於在Linux系統上執行macOS二進位檔案的相容性層。它使用了一些Darwin的原始碼。[30]
- 有許多專案專注於驅動程式支援:例如無線驅動程式[31][32],有線NIC驅動程式[33][34][35],數據機驅動程式[36],讀卡機[37],ext2和ext3檔案系統[38][39]。
參考
- ↑ Mac Technology Overview: Kernel and Device Drivers Layer. Apple Developer Connection. [2013-02-11].
- ↑ Singh, Amit. XNU: The Kernel. 2004-01-07 [2013-02-11].
- ↑ Additional Features. Porting UNIX/Linux Applications to OS X. Apple Inc.
- ↑ Voodoo XNU Kernel Source. 需要一個Apache SVN客戶端。
- ↑ XNU on ARMv7.
- ↑ FSF's Opinion of the Apple Public Source License (APSL) 2.0.
- ↑ The Problems with older versions of the Apple Public Source License (APSL).
- ↑ Open Source Releases. Apple Developer Connection. [2013-02-11].
- ↑ "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] (英語).
- ↑ System Extensions. Apple Developer Documentation.
- ↑ DriverKit. Apple Developer Documentation. [2020-04-09].
- ↑ System Extensions and DriverKit. Apple Developer Documentation. [2020-04-09].
- ↑ Prabhakar, Ernie. Darwin Version - New Scheme in Software Update 1. darwin-development (郵寄清單). 2001-11-09 [2008-06-02].
- ↑ OpenDarwin. OpenDarwin Project. [2020-04-29].
- ↑ OpenDarwin Core Team and Administrators. OpenDarwin Shutting Down. OpenDarwin Project. 2006-07-25 [2020-04-29].
- ↑ OpenDarwin 7.2.1 Released. 2004-08-05 [2019-10-07].
- ↑ PureDarwin. [2010-04-04].
- ↑ PureDarwin Xmas (2015)
- ↑ PureDarwin 17.4 Beta. GitHub. PureDarwin. 2019-11-30 [2020-01-11].
- ↑ Security Enhanced Darwin. SEDarwin. 2007-01-22 [2020-04-29].
- ↑ What's New In Mac OS X: Mac OS X v10.5. Mac OS X Reference Library. Apple Inc. 2009-11-13 [2020-04-29].
- ↑ L4/Darwin (aka Darbat). Ertos.nicta.com.au. 2007-05-09 [2020-04-29].
- ↑ Darling: macOS translation layer for Linux. www.darlinghq.org. [2020-01-11].
- ↑ yuriwho. WirelessDriver Home Page. Wirelessdriver.sourceforge.net. 2002-05-05 [2010-07-12].
- ↑ iwi2200 Darwin. SourceForge. 2009-03-27 [2010-06-13].
- ↑ Port BSD tulip driver(s) to Darwin OS | Download Port BSD tulip driver(s) to Darwin OS software for free at. Sourceforge.net. [2010-07-12].
- ↑ RealTek network driver for Mac OS X/Darwin. SourceForge. 2006-03-15 [2010-06-03]. Project inactive since March 15, 2006.
- ↑ fansui; et al. RTL8150LMEthernet. SourceForge. 2007-08-01 [2010-06-13].
- ↑ ZyXEL Modem Drivers for OS X/Darwin | Download ZyXEL Modem Drivers for OS X/Darwin software for free at. Sourceforge.net. 2002-05-14 [2010-07-12].
- ↑ Mac OS X PC Card ATA Driver. Pccardata.sourceforge.net. 2001-12-20 [2010-07-12].
- ↑ Mac OS X Ext2 Filesystem | Download Mac OS X Ext2 Filesystem software for free at. Sourceforge.net. 2002-10-14 [2010-07-12].
- ↑ ext2 filesystem in user space. SourceForge. 2008-07-14 [2010-06-13].