日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

1 蘋(píng)果開(kāi)發(fā)人員技術(shù)文檔連載之-系統(tǒng)架構(gòu)

在對(duì)Mac OS X設(shè)計(jì)時(shí)的一個(gè)關(guān)鍵性考慮是:需要把不同的一組技術(shù)集成到一起(其中某些技術(shù)在發(fā)展歷史上有著很大的差異) , 并將這套統(tǒng)一整合后的技術(shù)建立在一個(gè)高級(jí)內(nèi)核環(huán)境的基礎(chǔ)上 。本章針對(duì)使上述設(shè)計(jì)構(gòu)想成為可能的系統(tǒng)架構(gòu) , 進(jìn)行了概括性的探究 。

Mac OS X架構(gòu)的主要特點(diǎn)是系統(tǒng)軟件和接口的分層結(jié)構(gòu) , 其中一層依賴(lài)于它的下一層 。Mac OS X有四個(gè)截然不同的系統(tǒng)軟件層(按照從屬關(guān)系區(qū)分):

·應(yīng)用程序環(huán)境 包含了五種應(yīng)用程序(或執(zhí)行)環(huán)境:Carbon、Cocoa、Java、Classic和BSD命令行 。對(duì)于開(kāi)發(fā)者來(lái)說(shuō) , 前三種環(huán)境是最重要的 。Mac OS X提供了為這五種環(huán)境所設(shè)計(jì)的開(kāi)發(fā)工具和運(yùn)行時(shí)環(huán)境 。
·應(yīng)用服務(wù) 包含了那些與圖形用戶界面有關(guān)的系統(tǒng)服務(wù) , 它們對(duì)所有的應(yīng)用程序環(huán)境開(kāi)放 。應(yīng)用服務(wù)層包括Quartz、QuickDraw、OpenGL和一些基礎(chǔ)的系統(tǒng)管理器 。
·核心服務(wù) 包含了那些與圖形用戶界面無(wú)關(guān)的系統(tǒng)服務(wù) 。它包括Core Foundation、Open Transport和Carbon的某些核心部分 。
·內(nèi)核環(huán)境 為Mac OS X提供基礎(chǔ)層 。它主要由Mach和BSD組成 , 但它同時(shí)也包括了網(wǎng)絡(luò)協(xié)議棧、網(wǎng)絡(luò)服務(wù)、文件系統(tǒng)和設(shè)備驅(qū)動(dòng)程序 。內(nèi)核環(huán)境為開(kāi)發(fā)設(shè)備驅(qū)動(dòng)(I/OKit)和可裝載內(nèi)核擴(kuò)展提供了工具 , 其中的可裝載內(nèi)核擴(kuò)展包括了網(wǎng)絡(luò)內(nèi)核擴(kuò)展(Network Kernel Extensions , NKE) 。

核心服務(wù)層、應(yīng)用服務(wù)層以及Carbon、Cocoa應(yīng)用程序環(huán)境在包羅框架中被打包內(nèi)核環(huán)境的許多公共API可以在位于 /usr/include文件夾中的頭文件中找到 。

作為前面幾段的總結(jié) , 在本章的第一部分從系統(tǒng)軟件分層的角度闡述了Mac OS X的架構(gòu)思想 。接下來(lái)的靜態(tài)透視圖則可以動(dòng)態(tài)得來(lái)呈現(xiàn)系統(tǒng)內(nèi)部對(duì)用戶事件的整個(gè)處理過(guò)程 。當(dāng)用戶通過(guò)輸入設(shè)備 , 如鼠標(biāo)或鍵盤(pán) , 進(jìn)行操作時(shí) , 就在Mac OS X中產(chǎn)生了一個(gè)典型的事件 。設(shè)備驅(qū)動(dòng)程序通過(guò)I/O Kit產(chǎn)生一個(gè)低級(jí)事件 , 并把這個(gè)事件放入視窗服務(wù)器的事件隊(duì)列中 , 同時(shí)通知視窗服務(wù)器 。視窗服務(wù)器把事件傳遞給目標(biāo)進(jìn)程的特定運(yùn)行循環(huán)端口 。在那里事件被Carbon事件管理器接收并轉(zhuǎn)發(fā)給相應(yīng)的應(yīng)用程序環(huán)境下的事件處理機(jī)制 。事件也可以是異步傳輸?shù)?, 例如一個(gè)包含有配置信息的網(wǎng)絡(luò)數(shù)據(jù)包 。


分層透視圖

分析復(fù)雜軟件的一種通用方式就是把軟件的各個(gè)部分分解成不同的“層” 。直觀地看來(lái) , 一層位于另一層之上 , 最基礎(chǔ)的層位于最底端 。這種視圖暗示了軟件層與層之間的一般接口與依賴(lài)關(guān)系 。軟件中位置越高的層就越接近于實(shí)際的應(yīng)用程序代碼 , 其下又緊緊依賴(lài)于其他層的支持 , 層層累加 , 高層依賴(lài)于低層 。

Mac OS X可以簡(jiǎn)述為這樣一種透視圖 。圖1描述了Mac OS X系統(tǒng)軟件的一般結(jié)構(gòu) , 以及庫(kù)、框架和服務(wù)之間的相互依賴(lài)關(guān)系 。

盡管該圖對(duì)于理清整個(gè)架構(gòu)體系的思路有所幫助 , 但免不了有對(duì)架構(gòu)內(nèi)容的闡述過(guò)于簡(jiǎn)化之嫌 。不同的應(yīng)用程序所使用的Mac OS X服務(wù)和子系統(tǒng) , 以及它們被使用的方式 , 可能會(huì)有很大差別 。因此不同標(biāo)準(zhǔn)下的依賴(lài)關(guān)系與接口可以視程序?qū)Τ绦虻膫€(gè)別需要和具體情況而定 。

把警告先放在一邊 , 讓我們對(duì)這張圖所描述的層進(jìn)行深入了解 。

在圖1中 , 最上面的一排方塊表示了Mac OS X的不同應(yīng)用程序(或執(zhí)行)環(huán)境 。有五種這樣的環(huán)境 。其中 , Classic環(huán)境和BSD命令環(huán)境與系統(tǒng)底層之間進(jìn)行交互的方式是非常獨(dú)特的:

Classic“兼容性”環(huán)境是指用戶在該環(huán)境下可以運(yùn)行Mac OS 8 或 Mac OS 9應(yīng)用程序 。在這張圖中 , Classic環(huán)境不再是位于應(yīng)用服務(wù)之上 , 而是用線與其他各層相連 。這些連接表明Classic環(huán)境是以“硬布線方式連入Mac OS X的;它不是一種為開(kāi)發(fā)人員在Mac OS X上提供特定代碼編譯的環(huán)境 。換句話說(shuō) , 該環(huán)境在Mac OS X系統(tǒng)上沒(méi)有公共的可被編譯的Mac OS 8或Mac OS 9 API(非Carbon方式的) 。

推薦閱讀