Darwin (作業系統)

作業系統 来自维基百科,自由的百科全书

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

快速預覽 開發者, 程式語言 ...
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 編輯維基數據鏈結
倉庫 編輯維基數據鏈結
關閉

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頁面。

更多資訊 版本, 版本發佈日期 ...
版本 版本發佈日期 對應的版本 註解
0.1 1999年03月16日 Mac OS X Server 1.0發行版  
  • 初始版本
  • 0.1是人為設定的版本號,為了便於排序和標識。它本身的標識是 Rhapsody 5.3
0.2 1999年04月14日 Mac OS X Server 1.0.1
0.3 1999年08月05日 基於 Rhapsody 5.5
  • 可於archive.org找到ISO鏡像
  • 此後,核心從 NeXTSTEP/OPENSTEP/Rhapsody 更改為Mac OS X的較新XNU。
1.0 2000年04月12日 開發者預覽第3版
1.1 2000年04月05日 開發者預覽第4版
1.2.1 2000年11月15日 Mac OS X 公開測試版 代號 "Kodiak"
1.3.1 2001年04月13日 Mac OS X v10.0
  • 代號 "Cheetah"
  • Darwin的首個商業版本
  • Cheetah(v10.0.0-4)的所有版本都有相同版本的Darwin
1.4.1 2001年10月02日 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年06月05日 Mac OS X v10.1.5
6.0.1 2002年09月23日 Mac OS X v10.2  
6.8 2003年10月03日 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年04月15日 Mac OS X v10.3.9
8.0 2005年04月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年08月05日 Mac OS X v.10.5.8
10.0 2009年08月28日 Mac OS X Snow Leopard
iOS 4.0
Mac OS X v10.6.0
10.1 2009年09月10日 Mac OS X v10.6.1
10.2 2009年11月09日 Mac OS X v10.6.2
10.3 2010年03月29日 Mac OS X v10.6.3
iOS 4.0
10.4 2010年06月15日 Mac OS X v10.6.4
10.5 2010年11月11日 Mac OS X v10.6.5
10.6 2011年01月06日 Mac OS X v10.6.6
10.7 2011年03月21日 Mac OS X v10.6.7
10.8 2011年06月23日 Mac OS X v10.6.8
11.0.0 2011年07月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年08月16日 Mac OS X v10.7.1
11.2.0 2011年10月13日 Mac OS X v10.7.2
11.3.0 2012年02月02日 Mac OS X v10.7.3
11.4.2 2012年10月04日 Mac OS X v10.7.5 (額外的)
12.0.0 2012年02月16日 OS X Mountain Lion OS X v10.8.0
12.6.0 2015年01月27日 OS X v10.8.5(帶有安全更新2015-001)
13.0 2013年06月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年09月07日 OS X v10.9.5
14.0.0 2014年09月18日 OS X Yosemite
iOS 7
iOS 8
OS X v10.10.0
14.5.0 2015年08月13日 OS X v10.10.5
15.0.0 2015年09月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年07月18日 OS X v10.11.6
iOS 9.3.3
16.0.0 2016年09月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年03月27日 macOS v10.12.4
iOS 10.3
  • 在iOS裝置上將檔案系統從HFS+更改為APFS。自10.12.0起,APFS已在macOS上可用,但不能在啟動分割區上使用。
16.6.0 2017年07月19日 macOS v10.12.6
iOS 10.3.3
17.0.0 2017年09月19日 macOS High Sierra
iOS 11
 
  • 在具有快閃記憶體的Mac上,macOS中引導分割區的預設檔案系統HFS+替換為了APFS。在具有HDD的Mac上,必須重新格式化啟動分割區才能使用APFS
  • 將時間同步服務從ntpd替換為了timed
  • FTPtelnet命令被刪除。
  • 核心擴充(Kexts)將需要使用者明確批准才能執行。
17.5.0 2018年03月29日 macOS 10.13.4
  • 支援使用Thunderbolt 3的外部圖形處理器,並刪除了使用Thunderbolt 1和2的外部圖形處理器的支援。
17.6.0 2018年06月01日 macOS v10.13.5
17.7.0 2018年07月09日 macOS v10.13.6
iOS 11.4.1
18.0.0 2018年09月02日 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年09月19日 macOS Catalina
iOS 13
19.2.0 2019年12月10日 macOS 10.15.2
iOS 13.3
19.3.0 2020年01月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年02月02日 macOS 11.2
20.4.0 2021年04月20日 macOS 11.3
20.5.0 2021年05月24日 macOS 11.4
20.6.0 2021年06月02日 macOS 11.5
21.0.0 2021年06月07日
macOS 12.0 beta 1
iOS 15.0 beta 1
21.0.1 2021年10月25日 macOS 12.0
21.1.0 2021年10月25日 macOS 12.0.1
iOS 15.0
21.2.0 2021年12月07日 macOS 12.1
iOS 15.2
21.3.0 2022年01月26日 macOS 12.2
iOS 15.3
21.4.0 2022年03月14日 macOS 12.3
iOS 15.4
21.5.0 2022年06月24日 macOS 12.4
iOS 15.5
21.6.0 2022年07月20日 macOS 12.5
iOS 15.6
22.0 2022年06月06日 macOS 13.0 beta 1
iOS 16.0
watchOS 9.0
tvOS 16.0
22.1.0 2022年10月24日 macOS 13.0
iOS 16.1
iPadOS 16.1
watchOS 9.1
tvOS 16.1
22.2.0 2022年12月13日 macOS 13.1
iOS 16.2
iPadOS 16.2
watchOS 9.2
tvOS 16.2
22.3.0 2023年01月23日 macOS 13.2
iOS 16.3
iPadOS 16.3
watchOS 9.3
tvOS 16.3
22.4.0 2023年03月27日 macOS 13.3
iOS 16.4
iPadOS 16.4
watchOS 9.4
tvOS 16.4
22.5.0 2023年05月18日 macOS 13.4
iOS 16.5
iPadOS 16.5
watchOS 9.5
tvOS 16.5
22.6.0 2023年07月24日 macOS 13.5
iOS 16.6
iPadOS 16.6
watchOS 9.6
tvOS 16.6
23.0.0 2023年09月18日 macOS 14.0
iOS 17.0
iPadOS 17.0
watchOS 10.0
tvOS 17.0
23.1.0 2023年10月25日 macOS 14.1
iOS 17.1
iPadOS 17.1
watchOS 10.1
tvOS 17.1
23.2.0 2023年11月15日 macOS 14.2
iOS 17.2
iPadOS 17.2
watchOS 10.2
tvOS 17.2
23.3.0 2024年01月22日 macOS 14.3
iOS 17.3
iPadOS 17.3
watchOS 10.3
tvOS 17.3
23.4.0 2024年03月05日 macOS 14.4
iOS 17.4
iPadOS 17.4
watchOS 10.4
tvOS 17.4
23.5.0 2024年05月13日 macOS 14.5
iOS 17.5
iPadOS 17.5
watchOS 10.5
tvOS 17.5
24.0.0 2024年09月16日 macOS 15.0
iOS 18.0
iPadOS 18.0
watchOS 11.0
tvOS 18.0
關閉

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

參考

外部連結

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.