有些人可能會認爲 macOS 和 Linux 內核之間存在類似之處,由於它們能夠處理相似的命令和相似的軟件。有些人甚至認爲蘋果公司的 macOS 是基於 Linux 的。事實上是,兩個內核有着大相徑庭的歷史和特徵。今天,咱們來看看 macOS 和 Linux 的內核之間的區別。html
咱們將從 macOS 內核的歷史開始。1985 年,因爲與首席執行官 John Sculley 和董事會不和,史蒂夫·喬布斯Steve Jobs離開了蘋果公司。而後,他成立了一家名爲 NeXT 的新電腦公司。喬布斯但願將一款(帶有新操做系統的)新計算機快速推向市場。爲了節省時間,NeXT 團隊使用了卡耐基梅隆大學的 Mach 內核 和部分 BSD 代碼庫來建立 NeXTSTEP 操做系統。linux
NeXT 歷來沒有取得過財務上的成功,部分歸因於喬布斯花錢的習慣,就像他還在蘋果公司同樣。與此同時,蘋果公司曾屢次試圖更新其操做系統,甚至與 IBM 合做,但從未成功。1997年,蘋果公司以 4.29 億美圓收購了 NeXT。做爲交易的一部分,史蒂夫·喬布斯回到了蘋果公司,同時 NeXTSTEP 成爲了 macOS 和 iOS 的基礎。android
與 macOS 內核不一樣,Linux 的建立並不是源於商業嘗試。相反,它是由芬蘭計算機科學專業學生林納斯·託瓦茲Linus Torvalds於 1991 年建立的。最初,內核是按照林納斯本身的計算機的規格編寫的,由於他想利用其新的 80386 處理器(的特性)。林納斯於 1991 年 8 月在 Usenet 上發佈了他的新內核代碼。很快,他就收到了來自世界各地的代碼和功能建議。次年,Orest Zborowski 將 X Window 系統移植到 Linux,使其可以支持圖形用戶界面。git
在過去的 27 年中,Linux 已經慢慢成長並增長了很多功能。這再也不是一個學生的小型項目。如今它運行在世界上大多數的計算設備和超級計算機上。不錯!github
macOS 內核被官方稱爲 XNU。這個首字母縮寫詞表明「XNU is Not Unix」。根據 蘋果公司的 Github 頁面,XNU 是「將卡耐基梅隆大學開發的 Mach 內核和 FreeBSD 組件整合而成的混合內核,加上用於編寫驅動程序的 C++ API」。代碼的 BSD 子系統部分「在微內核系統中一般實現爲用戶空間的服務」。Mach 部分負責底層工做,例如多任務、內存保護、虛擬內存管理、內核調試支持和控制檯 I/O。macos
雖然 macOS 內核結合了微內核(Mach)和宏內核(BSD)的特性,但 Linux 只是一個宏內核。宏內核負責管理 CPU、內存、進程間通訊、設備驅動程序、文件系統和系統服務調用( LCTT 譯註:原文爲 system server calls,但結合 Linux 內核的構成,譯者認爲這裏翻譯成系統服務調用更合適,即 system service calls)。windows
macOS 內核(XNU)比 Linux 歷史更悠久,而且基於兩個更古老一些的代碼庫的結合;另外一方面,Linux 新一些,是從頭開始編寫的,而且在更多設備上使用。windows批量網站管理app