Unix/BSD/Mac OS X 指南
外觀
蘋果的 Mac OS X(及其前身 NextStep)的核心是 Darwin,其中包含大量 BSD 程式碼,尤其是 FreeBSD 5 程式碼。
- Darwin,和其他 *BSD 系統一樣,被分發為完整的類 Unix 作業系統,包括核心、shell 命令、C 編譯器和其他重要實用程式。
- Darwin 與其他 *BSD 系統有所不同。如下所述,它有一些其他 *BSD 系統所沒有的改變。
- Darwin 以 查爾斯·達爾文 命名。
- 名稱: 核心被稱為 xnu。它由一個經過修改的 Mach 微核心 和一個 BSD 核心移植的“伺服器”組成。
- 處理器架構: Mac OS X 在 PowerPC、Intel 和 ARM 架構的 Mac 上執行。
- 雙重核心: 核心使用雙重核心設計。Mach 微核心 包含裝置驅動程式、多工處理和程序間通訊。其他核心服務,如網路、檔案系統和傳統的 Unix 系統呼叫,必須由“伺服器”提供。
- Darwin 使用一個伺服器,即 BSD 核心的移植。因此,網路類似於其他 *BSD 系統,並且來自 BSD 的 UFS 檔案系統也可用。這與 GNU Hurd 形成對比,後者使用了一個由許多伺服器組成的複雜設計。
- NextStep 可能引入了雙重核心設計,因為 Mach 微核心比 BSD 更便攜,或者提供了比 BSD 更好的多工處理優勢。他們可以將 Mach 移植到 x86 和 PowerPC。從那以後,NetBSD 使 *BSD 變得非常便攜,並建立了一個單片 NetBSD/macppc 移植。FreeBSD 和 OpenBSD 正在獲取 NetBSD 程式碼用於其 Macintosh 硬體移植。
- 蘋果(在收購 NextStep 之前)使用了類似的策略來移植 x86 作業系統 Linux 到 PowerPC。由 mkLinux(微核心 Linux)專案開始,透過移植 Linux/x86 來使用 Mach。然後 Mach 被移植到 Macintosh 硬體上。在 Linux 2.0 出現後,Linux 變得更便攜,單片 Linux/powerpc 移植取代了 mkLinux。蘋果收購了 NextStep 並切換到使用 Darwin。
- 微核心和伺服器緊密整合。微核心期望 Darwin BSD 伺服器,因此使用另一個伺服器,例如 mkLinux 伺服器,將很困難。
- 裝置驅動程式: 由於它們由 Mach 處理,因此裝置驅動程式與 NetBSD/macppc 中的驅動程式大不相同。使用 Darwin,蘋果對 NextStep 驅動程式進行了許多替換。
- Darwin 在任何 Mac 上執行,只要對應的 Mac OS X 可以執行。
- HFS+ 檔案系統: Darwin 還包含 Mac OS 8.1 中引入的 HFS+ 檔案系統的實現。它不適用於經典 Mac OS 檔案系統 HFS,該系統在 Mac OS 8.1 之前的 Macintosh 系統軟體中使用。HFS+ 而不是 UFS 是 Darwin 的首選檔案系統。
- GNU 命令: Darwin 用其 GNU 等效項替換了幾個 BSD 使用者空間程式;這使得 Darwin 在許多情況下感覺更像 GNU/Linux 而不是 BSD。在較新的 Darwin 版本中,GNU bash 是預設的 shell,就像在 GNU/Linux 上一樣。
- NetInfo: 自 NextStep 時代起,NetInfo 資料庫就儲存了使用者和組資訊。其他 *BSD 系統使用傳統的/etc/passwd和/etc/master.passwd系統代替。(這兩個檔案存在於 Darwin 上,但通常不包含普通使用者。)
蘋果使用與 Mac OS X 版本號匹配的版本號來標記 Darwin 原始碼。
- Jaguar: Darwin 6.v = Mac OS 10.2.v
- Panther: Darwin 7.v = Mac OS 10.3.v
- Tiger: Darwin 8.v = Mac OS 10.4.v
- Leopard: Darwin 9.v = Mac OS 10.5.v
例如,與 Mac OS 10.4.3 對應的 Darwin 原始碼是 Darwin 8.3。
- Darwin - 開源 來自蘋果開發者網站