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

Quick Facts 開發者, 程式語言 ...
Darwin
開發者蘋果公司
程式語言CC++Objective-C組合語言
作業系統家族類Unix系統
運作狀態Current
原始碼模式自由及開放原始碼件
目前版本
  • 1228 (2007年10月30日)[1]
  • 22.2.0 (2022年12月13日)
編輯維基數據鏈結
支援平台目前:x86-6464-bit ARM
歷史上:PowerPCIA-3232-bit ARM (ARM32位元支援是閉源的)[來源請求]
核心類別混合核心
許可證主要為APSL,含有閉源的裝置驅動
官方網站opensource.apple.com 編輯維基數據鏈結
倉庫 編輯維基數據鏈結
Close

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對於自由軟體的定義。

設計

Thumb
macOS 架構圖

核心

Darwin的核心是XNU,它是一種混合核心,它採用了來自OSF的OSFMK 7.3[2](Open Software Foundation Mach Kernel)和FreeBSD的各種要素(包括過程模型,網路堆疊和虛擬檔案系統),[3]還有一個稱為I/O Kit的物件導向的裝置驅動程式API。[4] 混合核心設計使其具備了了微核心的靈活性和單核心的效能。[5]

硬體和軟體支援

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年以來似乎未進行過更新。[6]XNU核心的開源移植也可用於ARM平台。[7]較舊的版本支援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不相容的自由軟體許可證。[8]它之前的版本是根據APSL許可證的較早版本發布的,儘管它確實滿足了開放原始碼定義的要求,但它不符合FSF對自由軟體的定義。[9]

版本歷史

下表是主要的Darwin版本及其發行日期和相應的macOS版本的表格。[10]請注意,相應的macOS版本可能是在其他日期發布的;有關這些日期,請參閱macOS頁面。

More information 版本, 版本發佈日期 ...
版本 版本發佈日期 對應的版本 註解
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[11]
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).[13]
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[15]
  • 最早用於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[17]
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,並在核心之外的使用者空間中執行。[18]
  • DriverKit取代了IOKit。 它引入了使用DriverKit構建的「 Dexts」(驅動程式擴充)。 Driverkit是一個新的SDK,具有基於IOKit的所有新框架,但已進行了更新和現代化。 裝置驅動程式在核心外部的使用者空間中執行。[19][20][21]
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
Close

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開頭,依此類推(早期的內部版本號代表開發人員的版本)。[22]

命令終端中的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等自由軟體發行版中。[23]

2006年7月25日,OpenDarwin團隊宣布該專案已關閉,因為他們認為OpenDarwin「已成為Mac OS X相關專案的唯一代管工具」,並且建立獨立的Darwin作業系統的努力失敗了。他們還指出:「訊息來源的可用性,與Apple代表的互動,建立和跟蹤訊息來源的困難以及社群缺乏興趣,這一切都為此做出了貢獻。」[24]它最後的穩定版本是2004年7月16日發行的7.2.1版。[25]

PureDarwin

PureDarwin是一個從Apple發行的Darwin原始碼中建立可引導的作業系統映像的專案。[26]自從OpenDarwin停止執行以及Darwin8.x以來發布可啟動映像以來,由於許多組件都成為封閉源,因此建立完整的作業系統變得越來越困難。 該專案已成功建立了基於Darwin 9和X11 GUI的Xmas版本[27]和僅基於Darwin 17的命令列17.4 Beta。[28]

其他衍生專案

Thumb
XDarwin上的Window Maker

參考

外部連結

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.