1. 程式人生 > >macOS 和 Linux 的核心區別

macOS 和 Linux 的核心區別

有些人可能會認為 macOS 和 Linux 核心之間存在相似之處,因為它們可以處理類似的命令和類似的軟體。有些人甚至認為蘋果公司的 macOS 是基於 Linux 的。事實上是,兩個核心有著截然不同的歷史和特徵。今天,我們來看看 macOS 和 Linux 的核心之間的區別。

macOS 核心的歷史

我們將從 macOS 核心的歷史開始。1985 年,由於與執行長 John Sculley 和董事會不和,史蒂夫·喬布斯Steve Jobs離開了蘋果公司。然後,他成立了一家名為 NeXT 的新電腦公司。喬布斯希望將一款(帶有新作業系統的)新計算機快速推向市場。為了節省時間,NeXT 團隊使用了卡耐基梅隆大學的 

Mach 核心 和部分 BSD 程式碼庫來建立 NeXTSTEP 作業系統

NeXT 從來沒有取得過財務上的成功,部分歸因於喬布斯花錢的習慣,就像他還在蘋果公司一樣。與此同時,蘋果公司曾多次試圖更新其作業系統,甚至與 IBM 合作,但從未成功。1997年,蘋果公司以 4.29 億美元收購了 NeXT。作為交易的一部分,史蒂夫·喬布斯回到了蘋果公司,同時 NeXTSTEP 成為了 macOS 和 iOS 的基礎。

Linux 核心的歷史

與 macOS 核心不同,Linux 的建立並非源於商業嘗試。相反,它是由芬蘭電腦科學專業學生林納斯·託瓦茲Linus Torvalds於 1991 年建立的

。最初,核心是按照林納斯自己的計算機的規格編寫的,因為他想利用其新的 80386 處理器(的特性)。林納斯於 1991 年 8 月在 Usenet 上釋出了他的新核心程式碼。很快,他就收到了來自世界各地的程式碼和功能建議。次年,Orest Zborowski 將 X Window 系統移植到 Linux,使其能夠支援圖形使用者介面。

在過去的 27 年中,Linux 已經慢慢成長並增加了不少功能。這不再是一個學生的小型專案。現在它執行在世界上大多數的計算裝置超級計算機上。不錯!

macOS 核心的特性

macOS 核心被官方稱為 XNU。這個首字母縮寫詞代表“XNU is Not Unix”。根據 

蘋果公司的 Github 頁面,XNU 是“將卡耐基梅隆大學開發的 Mach 核心和 FreeBSD 元件整合而成的混合核心,加上用於編寫驅動程式的 C++ API”。程式碼的 BSD 子系統部分“在微核心系統中通常實現為使用者空間的服務”。Mach 部分負責底層工作,例如多工、記憶體保護、虛擬記憶體管理、核心除錯支援和控制檯 I/O。

Linux 核心的特性

雖然 macOS 核心結合了微核心(Mach)和巨集核心(BSD)的特性,但 Linux 只是一個巨集核心。巨集核心負責管理 CPU、記憶體、程序間通訊、裝置驅動程式、檔案系統和系統服務呼叫( LCTT 譯註:原文為 system server calls,但結合 Linux 核心的構成,譯者認為這裡翻譯成系統服務呼叫更合適,即 system service calls)。

用一句話總結 Linux 和 Mac 的區別

macOS 核心(XNU)比 Linux 歷史更悠久,並且基於兩個更古老一些的程式碼庫的結合;另一方面,Linux 新一些,是從頭開始編寫的,並且在更多裝置上使用。