MacOS結構
OS X 是蘋果公司 Mac OS 作業系統替代品的產物。 佇咧幾若擺失敗的試驗了後,蘋果佇一九九四年啟動矣 Pink 項目(後來佮 IBM 進行矣合作), 這就是 Taligent 和 Copland ,兩冬後這項目取消。 通過買買會著 NeXT 佮其 NeXTSTEP 作業系統了後,蘋果公司開始動手開發𪜶上新的作業系統 ( Mac OS X ) OS X 頭擺出現一九九九年的 OS X Server 一垺零,頭一个正式的 OS X 桌面版本發佈佇二空空一年三月二四。 對十曉五版本開始,OS X 通過矣 Open group Unix O 三單一 Unix 規範認證。
二空一六年六月,蘋果公司宣佈 OS X 閣較號名做 macOS,以便佮蘋果其他的作業系統若 iOS、watchOS 和 tvOS 保持統一的號名風格。
Mac OS X 包含兩个主要的部份:以 FreeBSD 原始碼佮 Mach 微核心做基礎的 XNU 混合內核,並佇咧 XNU 上構建的 Darwin 核心系統;佮一个由蘋果來開發,這號做 Aqua 的閉源、獨占版權的圖形用戶界面。 細分的看,Mac OS X 系統會當分做五層的結構,每一層有其代表性的技術。
開發
NeXTSTEP
NeXTSTEP 使用是卡內底基梅隆大學開發的 Mach 二孵五微內核 BSD 四配三子系統開發的混合內核。NeXTSTEP 閣推出著是無 DPS 的窗口系統,通過佇顯示器佮印表機頂頭使用仝一種語言以達到閣較好的所見即所得效果。 NeXT 閣共伊包含講 StepStone 伊的收購的物件導向的 Objective-C 的語言佮一系列旨佇咧加緊軟體開發的框殼(工具包)。
NeXTSTEP 上早設計運行咧走摩托羅拉六十八 K 處理器上,但是後來予移栽去真特別的 x 八十六,惠普的 PA-RISC 佮這个昇陽電腦的 SPARC 處理器。後來,開發工具和框殼以 OpenStep 形式發布,當做一个開發平台,伊會當其他的作業系統上運行。
Rhapsody
一九九七年二月初四,蘋果公司買收矣 NeXT,並且動手開發 Rhapsody 作業系統。Rhapsody 是因為 NeXTSTEP 構建,閣將核心系統徙栽到矣 PowerPC 架構頂懸閣加一个重新設計的用戶接口。允准舊 Mac OS 的程序運行佇咧獨立的 JAVA 平台頂的模擬重號做 Blue Box,而且 Objective-C 開發工具和框殼予人叫做是 Yellow Box,Yellow Box 將為 Windows 獨立提供。
Rhapsody 項目的最終結果,以 OS X Server 一鋪排的形式一九九九年發布。
Mac OS X
佇一九九八年的蘋果全球開發者大會 ( WWDC ) 上,因為 Macintosh 平台軟體開發者著 Rhapsody 上的 Yellow Box 和 Blue Box 有真濟不滿,蘋果公司作出回應,稱 Mac OS X 欲提供一个無仝款 Rhapsody 中現存的、全新的 API。
來自 Macintosh Toolbox 的關鍵 API 予得 OS X 會當直接提運行佇 BSD 層上而無需要 Macintosh 模擬層,這个接口予人叫做是 Carbon,是 Mac OS X 中五大主要 API 之一,Carbon 去除了約兩千个有問題的 API(系統當中 API 總數約八千个)並共之替換做現代作業系統兼容的系統調用。
佮這个同時,蘋果宣布將 Mach 部份內核版本號升級到三,BSD 部份的內核將去予 FreeBSD , NetBSD 和 OpenBSD 項目所替代 . 𪜶閣發佈出名為 I / O Kit 的新驅動層,用佇替代 NeXTSTEP 中的 Driver Kit,針對 Driver Kit 欠缺電源管理佮熱交換特性、自動配置功能缺欠等問題作出改進。
佇一九九九年的 WWDC 上,蘋果公司發佈矣 Quartz,一个是會當紮文檔格式的窗口系統以避免產生(早前 NeXTSTEP 中 DPS 系統當中拄著過的)和 Adobe 的版權糾紛佮相關費用。
蘋果閣宣佈,Yellow Box 予人閣較號做 Cocoa 並退回了 Yellow Box 將在 Windows 系統上提供的承諾。這改 WWDC 蘋果閣頭擺演示共 Mac OS X 運行佇咧 HFS + 格式的驅動器上。
頭一个面向消費者的 Mac OS X 版本是二空空空年九月十三發佈的公開預覽版。
結構
內核和設備服務層
內核和設備服務層包括 XNU 內核、設備驅動佮其他底層組件。 XNU 是由蘋果電腦發展的作業系統內核,予人使用佇 Mac OS X 中。伊是 Darwin 作業系統的一部份,綴牢咧 Darwin 做伙做為自由及開放原始碼軟體被發布。其中,XNU 是 X is Not Unix 的縮寫。 XNU 包括講 Mach 和 BSD(libSystem)兩个部份,上蓋起初版的 XNU 是 Mach 二孵五版本佮 BSD 四配三的混合,隨著 OS X 的發布,Mach 版本升級到三,BSD 部份去予伊 FreeBSD 替代。
- Mach:
Mach 是一个由卡內基梅隆大學開發的計算機作業系統微內核,是上早實現微核心作業系統的例之一,嘛是誠濟其他相𫝛的項目標準。 仝 UNIX 仝款,Mach 系統嘛包括一組豐富的實用工具,並且保留 Unix 中驅動程序的概念用硬體交互。 佇咧 OS X 中,Mach 內核為系統提供了六十四位內核和主要驅動支持。
- BSD:
伯克利軟體套件(英語:Berkeley Software Distribution,縮寫為 BSD), 嘛是予人叫做伯克利 Unix(Berkeley Unix), 是一个作業系統的名稱,這馬乎 BSD 嘛予人用稱呼其衍生的各種套件。 BSD 開創了現代計算機的潮流,因為 BSD 設計出眾,代碼編寫予清楚,包括伊的文檔,BSD 是按上早添加庫以支持 IP 協議棧佮伯克利套接字的 Unix 系統,套接字系統的發明予得計算機系統的網路通批和本地讀寫仝款方便,BSD。時到今仔日,BSD 猶是佇學術機構,乃至濟濟商業抑是自由產品的高科技實驗中,繼續予人用做試驗平台,甚至佇1875入式的設備內底。 上代先的 OS X 彼个內核 XNU 所使用的是四配三 BSD,該版本發佈佇一九八六年六月。時到今仔日,OS X 中間的真濟命令行工具猶是來源於 BSD。佇咧 OS X 中,文件系統、網路棧、IPC、通知機制的支持嘛來自 BSD。
核心系統層(Core OS)
核心系統層的技術和框架是硬體 / 網路相關的底層服務,遮的服務是佮內核特性直接相關的。包括以下的組件佮框殼(無完全列舉):
- 安全措施:(為上層提供支持)包括講 Gatekeeper、APP 沙盒化、代碼簽名等。
- Core OS 框架:包括磁碟管理、硬體加速、OpenCL、系統配置等等。
- Hypervisor:虛擬化支持。
核心服務層(Core service)
核心服務層佮用戶界面的應用程式無直接聯絡,毋過𪜶建立佇內核佮核心系統層上,為 APP 提供諸如數據處理、字符合串控制、封裝網路庫等核心支持。包括以下的組件佮框殼(無完全列舉):
- iCloud 存儲服務佮 CloudKit
- 社交網絡數號:包括保存佇咧 OS X 內底的社交戶頭的管理。
- 文件管理
- 本地化設置:語言、貨幣、日期佮時間的格式化、編碼、字體排版佮渲染。
- 安全認證:包括本地的口座、信任的證書、安全傳輸、密鎖串訪問等等。
- Time Machine 支持:OS X 的系統備份功能。
- Bonjour:區域網路的設備發現服務,是印表機服務佮區域網檔案分享服務的基礎。
- XML 和 SQLite 支持:系統佮 APP 的配置文件使用 XML 格式來進行存儲,數據使用 SQLite 格式進行保存。
- Webkit : 容允 APP 進行網頁渲染,具有 Web Core 和 JavaScript Core 兩个部份。
- 快速預覽:包括佇 spotlight 中預覽佮空格鍵預覽。
- Store Kit : 為 Mac Appstore 和 iTunes 提供支持,處理相關請求。
- Core Services Umbrella Framework:包括管理文件拍開方式、MIME 支持、文件數據管理、SearchKit 搜查支持、詞典服務等等。
- Carbon : Carbon 嘛是啦 OS X 最的原生 API,嘛是啦 Core Services Umbrella Framework 的子集,和 Cocoa 無仝的是,Carbon 是向過程(Procedural)的程式語言 API,嘛更加倚近系統底層,會使用包括 C 和 C + + 在內的濟種程式語言進行開發,類似 Windows 的 win 三十二 API。Carbon API 提供真好的向下兼容性,為開發者快速將舊 MacOS 上的程序徙栽到 OS X 提供了便利,猶毋過 Carbon 本身已經處理予蘋果無建議使用的狀態,嘛無六十四个支持,佇咧 OS X 十曉八後蘋果無著 Carbon 提供後續更新。
媒體層
媒體層負責音頻、圖像等等多媒體文件的處理,二 D 佮三 D 圖像的渲染,各種的動畫支持。
- OpenGL:OpenGL 是一个定義一个跨程式語言、迒過平台的應用程式接口(API)的規範,伊用佇生做二維、三維圖像。OpenGL 本身佮語言和平台無關係,就是伊將具體實現交予窗口系統,OS X 嘛提供矣 OpenGL 的實現。
- Metal:Metal 是一種面向底層的硬體加速 API,Metal 單一 API 下提供類似 OpenGL 和 OpenCL 的功能,旨咧為著提供和 Windows 上 Direct 三 D 十二佮跨平台的 Vulkan 相𫝛的功能佮特性。對十一開始佇咧 OS X 上提供支持。
- Quartz:Quartz 是 OS X 上的 UI 畫圖層,由 Quartz Compositor(合做視窗系統,管理佮合成幕後視窗視頻來創建 Mac OS X 用戶界面)和 Quartz 二 D(以 PDF 規範為基礎的圖形庫,用來畫製二維文字佮圖形,這馬予人叫做是 Core Graphics)組成。
- 色水管理
- 音視頻文件解析:包括講 QuickTime Kit、Core Media、Core Video 等等系列多媒體處理框架。
- 字體渲染系統:包括講 Cocoa Text 系統佮 Core Text。
圖形用戶界面(Cocoa 層)
圖形用戶界面層包括設計佮用戶交互的 UI、響應用戶操作、管理程序的行為。
- Aqua:Aqua 是承載佇咧 Quartz 上的 GUI 系統佮視覺主題,頭一擺發布佇二空空年。
- X 十一(XQuartz): XQuartz 是 OS X 上 X 窗口系統的一个實現,上蓋起初和 OS X 十二公開前預覽版做伙提供,對 OS X 十二八開始袂隨系統提供。
- Spotlight:OS X 下跤的搜查工具。
- Cocoa : Cocoa 是 Mac OS X 上原生物件導向的編程環境,建立佇咧 Quartz 上並由 Objective-C 語言編寫,Cocoa 程序嘛主要是使用 Objective-C 語言編寫,但是通過橋接技術,嘛會使用 JAVA、Python、Ruby 等語言開發 Cocoa 應用。Cocoa 是典型的 MVC 模式。
- Appkit:直接派生自 NeXTSTEP 的 AppKit 的。伊包含著程序佮圖形用戶界面交互所需要的代碼。
- Foundation 工具包:起先出現佇 OpenStep 中。佇咧 Mac OS X 中,伊是對Core Foundation 的。做通用的物件導向的函數庫,Foundation 提供了字符合,數值的管理,容器佮其枚舉,分布式計算,事件循環,猶閣有一寡其他的佮圖形用戶界面無直接關係的功能。
- Core Data:Core Data 是 Mac OS X 中 Cocoa API 的一部份,伊會允准照 MVC 模型組織 APP 的數據,並以 XML,二進位文件抑 SQLite 數據文件的風格共排佇內底。
參考文檔
外部連結
- OS X 和 PDF
- Apple : Mac OS X—OS X 官方頁面。
- Mac OS X ( arstechnica . com )— Mac OS X 評測 ( 十曉零-十曉一空 )
- Mac OS X Internals The web page associated with the book .
- OpenGL for OS X Apple developer guide for OpenGL .
- Kernel Extension Programming Topics Mac developer library .