macOS 和 Linux 的內核有什麼區別
macOS 內核的歷史
我們將從 macOS 內核的歷史開始。1985 年,由於與首席執行官 John Sculley 和董事會不和, 史蒂夫·喬布斯 離開了蘋果公司。然後,他成立了一家名為 NeXT 的新電腦公司。喬布斯希望將一款(帶有新操作系統的)新計算機快速推向市場。為了節省時間,NeXT 團隊使用了卡耐基梅隆大學的 Mach 內核 和部分 BSD 代碼庫來創建 NeXTSTEP 操作系統。
NeXT 從來沒有取得過財務上的成功,部分歸因於喬布斯花錢的習慣,就像他還在蘋果公司一樣。與此同時,蘋果公司曾多次試圖更新其操作系統,甚至與 IBM 合作,但從未成功。1997年,蘋果公司以 4.29 億美元收購了 NeXT。作為交易的一部分,史蒂夫·喬布斯回到了蘋果公司,同時 NeXTSTEP 成為了 macOS 和 iOS 的基礎。
Linux 內核的歷史
與 macOS 內核不同,Linux 的創建並非源於商業嘗試。相反,它是由芬蘭計算機科學專業學生 林納斯·托瓦茲 於 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](https://en.wikipedia.org/wiki/Mach_(kernel))和宏內核([BSD](https://en.wikipedia.org/wiki/FreeBSD))的特性,但 Linux 只是一個宏內核。宏內核負責管理 CPU、內存、進程間通信、設備驅動程序、文件系統和系統服務調用( LCTT 譯註:原文為 system server calls,但結合 Linux 內核的構成,譯者認為這裡翻譯成系統服務調用更合適,即 system service calls)。
用一句話總結 Linux 和 Mac 的區別
macOS 內核(XNU)比 Linux 歷史更悠久,並且基於兩個更古老一些的代碼庫的結合;另一方面,Linux 新一些,是從頭開始編寫的,並且在更多設備上使用。
如果您發現這篇文章很有趣,請花一點時間在社交媒體,黑客新聞或 Reddit 上分享。
via: https://itsfoss.com/mac-linux-difference/
作者:John Paul 選題:lujun9972 譯者:stephenxs 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive