macOS和Linux的內(nèi)核有什么區(qū)別
有些人可能會認(rèn)為 macOS 和 Linux 內(nèi)核之間存在相似之處,因?yàn)樗鼈兛梢蕴幚眍愃频拿詈皖愃频能浖?。有些人甚至認(rèn)為蘋果公司的 macOS 是基于 Linux 的。事實(shí)上是,兩個(gè)內(nèi)核有著截然不同的歷史和特征。今天,我們來看看 macOS 和 Linux 的內(nèi)核之間的區(qū)別。
macOS 內(nèi)核的歷史
我們將從 macOS 內(nèi)核的歷史開始。1985 年,由于與***執(zhí)行官 John Sculley 和董事會不和,史蒂夫·喬布斯離開了蘋果公司。然后,他成立了一家名為 NeXT 的新電腦公司。喬布斯希望將一款(帶有新操作系統(tǒng)的)新計(jì)算機(jī)快速推向市場。為了節(jié)省時(shí)間,NeXT 團(tuán)隊(duì)使用了卡耐基梅隆大學(xué)的 Mach 內(nèi)核 和部分 BSD 代碼庫來創(chuàng)建 NeXTSTEP 操作系統(tǒng)。
NeXT 從來沒有取得過財(cái)務(wù)上的成功,部分歸因于喬布斯花錢的習(xí)慣,就像他還在蘋果公司一樣。與此同時(shí),蘋果公司曾多次試圖更新其操作系統(tǒng),甚至與 IBM 合作,但從未成功。1997年,蘋果公司以 4.29 億美元收購了 NeXT。作為交易的一部分,史蒂夫·喬布斯回到了蘋果公司,同時(shí) NeXTSTEP 成為了 macOS 和 iOS 的基礎(chǔ)。
Linux 內(nèi)核的歷史
與 macOS 內(nèi)核不同,Linux 的創(chuàng)建并非源于商業(yè)嘗試。相反,它是由芬蘭計(jì)算機(jī)科學(xué)專業(yè)學(xué)生林納斯·托瓦茲于 1991 年創(chuàng)建的。最初,內(nèi)核是按照林納斯自己的計(jì)算機(jī)的規(guī)格編寫的,因?yàn)樗肜闷湫碌?80386 處理器(的特性)。林納斯于 1991 年 8 月在 Usenet 上發(fā)布了他的新內(nèi)核代碼。很快,他就收到了來自世界各地的代碼和功能建議。次年,Orest Zborowski 將 X Window 系統(tǒng)移植到 Linux,使其能夠支持圖形用戶界面。
在過去的 27 年中,Linux 已經(jīng)慢慢成長并增加了不少功能。這不再是一個(gè)學(xué)生的小型項(xiàng)目。現(xiàn)在它運(yùn)行在世界上大多數(shù)的計(jì)算設(shè)備和超級計(jì)算機(jī)上。不錯(cuò)!
macOS 內(nèi)核的特性
macOS 內(nèi)核被官方稱為 XNU。這個(gè)首字母縮寫詞代表“XNU is Not Unix”。根據(jù) 蘋果公司的 Github 頁面,XNU 是“將卡耐基梅隆大學(xué)開發(fā)的 Mach 內(nèi)核和 FreeBSD 組件整合而成的混合內(nèi)核,加上用于編寫驅(qū)動程序的 C++ API”。代碼的 BSD 子系統(tǒng)部分“在微內(nèi)核系統(tǒng)中通常實(shí)現(xiàn)為用戶空間的服務(wù)”。Mach 部分負(fù)責(zé)底層工作,例如多任務(wù)、內(nèi)存保護(hù)、虛擬內(nèi)存管理、內(nèi)核調(diào)試支持和控制臺 I/O。
Linux 內(nèi)核的特性
雖然 macOS 內(nèi)核結(jié)合了微內(nèi)核(Mach)和宏內(nèi)核(BSD)的特性,但 Linux 只是一個(gè)宏內(nèi)核。宏內(nèi)核負(fù)責(zé)管理 CPU、內(nèi)存、進(jìn)程間通信、設(shè)備驅(qū)動程序、文件系統(tǒng)和系統(tǒng)服務(wù)調(diào)用( LCTT 譯注:原文為 system server calls,但結(jié)合 Linux 內(nèi)核的構(gòu)成,譯者認(rèn)為這里翻譯成系統(tǒng)服務(wù)調(diào)用更合適,即 system service calls)。
用一句話總結(jié) Linux 和 Mac 的區(qū)別
macOS 內(nèi)核(XNU)比 Linux 歷史更悠久,并且基于兩個(gè)更古老一些的代碼庫的結(jié)合;另一方面,Linux 新一些,是從頭開始編寫的,并且在更多設(shè)備上使用。