版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、操作系統(tǒng)與驅(qū)動程序sigangWindow 2000 (NT5.0)的設(shè)計目標(biāo)兼容性操作系統(tǒng)應(yīng)該盡量支持已經(jīng)存在的 硬件和軟件。健壯性和可靠性用戶程序的錯誤不應(yīng)該使 操作系統(tǒng)崩潰??梢浦残圆僮飨到y(tǒng)應(yīng)該盡量能夠在現(xiàn)有和 未來的硬件平臺上運行??蓴U展性操作系統(tǒng)應(yīng)該易于增加新功能和支持新的硬件,并且對已有代碼的影響應(yīng) 該盡可能的小。Windows 2000中的硬件特權(quán)層為了實現(xiàn)健壯性和可靠性目標(biāo),NT的設(shè)計 者為它的核心實現(xiàn)部分選擇了客戶服務(wù)器 體系結(jié)構(gòu)。即用戶應(yīng)用程序作為操作系統(tǒng) 服務(wù)器的一個客戶在操作系統(tǒng)上運行 Windows 2000中的程序運行于兩個模式中: 用戶模式和內(nèi)核模式用戶模式用戶的
2、應(yīng)用程序運行于這個模式中,在這 個模式中的程序執(zhí)行有很多的限制,例如 不能訪問其它應(yīng)用程序的內(nèi)存(除非運用 各種機制進(jìn)行內(nèi)存共享),不能執(zhí)行硬件 I/O等。如果用戶程序需要各種受到限制的 服務(wù),那么必須向操作系統(tǒng)提供請求,一 種由硬件提供的陷阱機制用來處理這些請 耒。內(nèi)核模式操作系統(tǒng)的代碼在這個模式下運行。內(nèi)核 模式在特權(quán)環(huán)境中運行,而用戶模式在非 特權(quán)環(huán)境中執(zhí)行。在一個Intel平臺上使用指 令集中的Rmg 3執(zhí)行用戶模式,而使用Ring 0執(zhí)行內(nèi)核模式。 Windows中的大部分驅(qū)動程序運行于內(nèi)核模 式的環(huán)境中,在這種特權(quán)環(huán)境下運行使得 它們幾乎可以進(jìn)行各種操作內(nèi)核模式圖1 Windows
3、 2000操作系統(tǒng)的分層心硬件抽象層硬件抽象層將處理器和平臺依賴與設(shè)備驅(qū)動程序 和內(nèi)核分開。通常在設(shè)備驅(qū)動程序被移植到一個 新的平臺上時,只要重新編譯即可。設(shè)備驅(qū)動程序代碼本質(zhì)上是設(shè)備、處理器和平臺 特有的。顯然設(shè)備驅(qū)動程序代碼必須依賴于HAL 中的代碼,以便引用硬件寄存器和總線。在某些情況下,設(shè)備驅(qū)動程序代碼必須依賴于I/O 管理程序(及其它程序)提供的抽象代碼來控制 共享的硬件資源(例如,DMA通道)。Windows 2000的內(nèi)核 Windows 2000中的一個重要設(shè)計概念內(nèi)核從執(zhí)行程序組件中分離岀來Windows 2000中的內(nèi)核主要負(fù)責(zé)線程調(diào)度。 每一個線程都有一個獨立的線程環(huán)境。
4、線 程環(huán)境包括CPU寄存器狀態(tài)、線程ID、優(yōu) 先權(quán)、線程本地存儲等等。執(zhí)行程序組件執(zhí)行程序組件負(fù)責(zé)執(zhí)行內(nèi)存管理、進(jìn)程管理、安 全管理和I/O管理等工作。這些可執(zhí)行的程序組件被設(shè)計成模塊軟件這些組件包括即插即用管理器(Plug and PhyManager) > 電源管理器(Power Manager)、配置 管理器(Con figuration Man ager )、內(nèi)祥管理器(Memory Manager)、對象管理器(Object Manager)等需要考慮改進(jìn)和折衷時,Microsoft增加、刪除、 融合或者分離這些組件I/O管理程序 I/O管理程序是一個可執(zhí)行的程序組件由一系列的
5、內(nèi)核模式的例程所實現(xiàn),這些例程為 用戶模式的進(jìn)程提供一個統(tǒng)一的抽象以實現(xiàn)I/O操 作 I/O管理程序的目標(biāo)之一是使所有來自用戶模式的 I/O訪問獨立于設(shè)窯 I/O管理程序?qū)⒄埱笠訧RP(I/O Request Packet)的形 式從用戶模式發(fā)送到設(shè)備驅(qū)動程序例程。 I/O管理程序是用戶模式代碼和設(shè)備驅(qū)動程序之間 的接口層API(應(yīng)用程序編程接口) Windows 2000的執(zhí)行程序組件和I/O管理程 序執(zhí)行操作系統(tǒng)的核心服務(wù),但是這些服 務(wù)不是直接暴露給用戶模式的應(yīng)用程序 的。 Microsoft定義了幾種API(應(yīng)用程序編程接 口),用戶模式代碼把它們看成是操作系統(tǒng) 服務(wù)的抽象,這些API
6、形成不同的環(huán)境子系 統(tǒng)環(huán)境子系統(tǒng)這些子系統(tǒng)包括Win 32子系統(tǒng)、VDM (Virtual DOS Machine)子系統(tǒng)、WOW(Wmdows On Windows)子系統(tǒng)、POSIX子系統(tǒng)、OS/2子系統(tǒng)只有Win 32子系統(tǒng)是本機子系統(tǒng),其它子系統(tǒng)依 賴于Win 32子系統(tǒng),模擬它們自己的環(huán)境因此與Win 32子系統(tǒng)相比,它們都將承受不同程 度的性能下降。但是,它們的目的是為了實現(xiàn)兼 容性而不是速度環(huán)境子系統(tǒng) 一個特定的應(yīng)用程序只能存在于一個環(huán)境子系統(tǒng)環(huán)境子系統(tǒng)通常作為單獨的用戶模式進(jìn)程被實 現(xiàn)。它們根據(jù)需要裝入,支持和代理用戶模式進(jìn) 程環(huán)境子系統(tǒng)成為用戶模式客戶的服務(wù)器。本地過程調(diào)用執(zhí)
7、行程序組件,將來自客戶的每個 請求傳遞到合適的服務(wù)器進(jìn)程(環(huán)境子系統(tǒng)), 服務(wù)器進(jìn)程要么直接完成請求的作業(yè),要么依次 請求合適的執(zhí)行程序組件。Win 32環(huán)境子系統(tǒng)的工作系統(tǒng)用戶可見的圖形用戶接口(GDI) o 控制臺I/O,包括鍵盤、鼠標(biāo)以及各個子系 統(tǒng)的顯示。 Win 32 API的實現(xiàn)。這是應(yīng)用程序和其它子 系統(tǒng)用來與可執(zhí)行組件的交互的接口。Win 32函數(shù)分類 USER函數(shù),負(fù)責(zé)管理窗口、菜單、對話框 和空間。 GDI函數(shù),在物理設(shè)備(如顯示器和打印 機)上執(zhí)行繪圖操作。 KERNEL函數(shù),管理非GUI資源,諸如進(jìn) 程、線程、文件和同步服務(wù)。Windows 2000中驅(qū)動程序的種類文件
8、系統(tǒng) 驅(qū)動程序“其它內(nèi)核模式±設(shè)備驅(qū)動程序4內(nèi)核模式驅(qū)動程序用戶模式驅(qū)動程序運行于用戶模式下,只能通過Wm 32 API調(diào)用來訪問系統(tǒng)數(shù)據(jù)。用戶模式驅(qū)動程序和內(nèi)核模式驅(qū)動程序有 不同的結(jié)構(gòu)、入口點和系統(tǒng)接口有一些設(shè)備驅(qū)動程序可以部分或者全部運 行于用戶模式,如打印機的驅(qū)動程序而實際上的大部分設(shè)備驅(qū)動程序運行于內(nèi) 核模式內(nèi)核模戎驅(qū)動程序分為遺留驅(qū)動程序和 WDM驅(qū)動程序遺留驅(qū)動程序不支持PnP,而WDM驅(qū)動程 序則支持PnP,它還支持電源管理和WMI等 新特性。文件系統(tǒng)驅(qū)動程序即FSD ( File System Drivers),這些驅(qū)動程序獨立 于任何底層設(shè)備進(jìn)行I/O操作在基于N
9、T的操作系統(tǒng)中,文件系統(tǒng)驅(qū)動是核心模 式的驅(qū)動這些文件系統(tǒng)驅(qū)動程序總是要依靠底層的外圍設(shè) 備的支持,它們還有可能需要一個或幾個的總 線驅(qū)動程序的支持。進(jìn)行文件系統(tǒng)驅(qū)動程序開發(fā)、,需要安裝IFS(Instailable File System),這是Microsoft提供的開 發(fā)工具其它內(nèi)核模式設(shè)備驅(qū)動程序它內(nèi)核模式設(shè)備驅(qū)動程序提供對底層設(shè)備 的I/O服務(wù)。這些程序包括總線驅(qū)動程序、類驅(qū)動程 序、微型驅(qū)動程序以及過濾器驅(qū)動程序以 及各種功能驅(qū)動程序功能驅(qū)動程序是我們最有可能寫的驅(qū)動程 序WDM驅(qū)動程序的層次結(jié)構(gòu)功能驅(qū)動程序下層過濾器驅(qū)動程序總線驅(qū)動程序上層過濾器驅(qū)動程序是一個收集讓操作系統(tǒng)調(diào)用的
10、用來執(zhí)行各種涉及到硬件操 作的子程序的容器些例稈,女nDriverEntry和AddDcvice例程和一些特定的 I/O請求包(IRP)的分發(fā)函數(shù)會出現(xiàn)在每個這樣的容器 中。需要排隊請求的驅(qū)動程序可能還有一個亂2江1。例程。而執(zhí) 行直接存儲器存?。―MA)操作的驅(qū)動程序會有一個 AdapterContfollJ程。而執(zhí)行直接存儲器存?。―MA)操 作的驅(qū)動程序會有一個AdapterContfollJ程。產(chǎn)生硬件中斷 的驅(qū)動程序也會有一個中斷服務(wù)例程(ISR)和一個延遲 程序調(diào)用(DPC)例程r二品“a. nou(j門©合DriverEntryAddDeviceI/O Control
11、RoutinesStartsAdapterContmlDispatch RoutinesDsspatchPnpDispatch PowerDsspatchVlfmiDpcForlsrDispatchReadDisps Eh Writs| | Required driver routinesI Include S/arf/o Io handle request queuing|l Include Adaptercontrol routine for DMA Include interrupt and DPC routines if device interruptsOptional IRP di
12、spatch routinessys和exc就像EXE程序一樣,驅(qū)動程序也是可執(zhí)行文件。 其擴展名為.SYS在結(jié)構(gòu)上嚴(yán)格地說驅(qū)動程序和任何32位的Windows 或者控制臺的應(yīng)用程序沒什么區(qū)別。和EXE程序 一樣,一個驅(qū)動程序也需要許多輔助程序,許多 也都是動態(tài)鏈接自操作系統(tǒng)內(nèi)核或來自一組驅(qū)動 或者其他的支持庫。但是驅(qū)動程序沒有主程序。取而代之的是其包含 了一批系統(tǒng)可以在適當(dāng)?shù)臅r候調(diào)用的子程序集。 驅(qū)動程序除了其自己的硬件外沒有照管任何別的 事情:系統(tǒng)管理了其他的任何事務(wù),包括決定在 何時運行你的驅(qū)動程序代碼。操作系統(tǒng)調(diào)用驅(qū)動程序的各個例程的簡要過程:系統(tǒng)運行時設(shè)備插入系統(tǒng)或者系統(tǒng)重新啟動,
13、系統(tǒng)就會裝載可執(zhí)行的驅(qū)動程序到內(nèi)存中,并 且調(diào)用 D riverEntryJ 程。D rive En try做 了 一 些操 作之后返回。 即插即用管理器(PnP Manager)調(diào)用AddDevice 例程,讓其做一些操作之后返回。即插即用管理器發(fā)送給驅(qū)動程序一些IRP,分發(fā) 函數(shù)依次處理每一個IRP之后返回。操作系統(tǒng)調(diào)用驅(qū)動程序的各個例程的簡要過程: 一個應(yīng)用程序打開了設(shè)備,因此系統(tǒng)發(fā)送 給驅(qū)動另一個IRP,分發(fā)函數(shù)進(jìn)行了少量 的操作之后返回應(yīng)用程序嘗試讀取或者寫入一些數(shù)據(jù),因 此系統(tǒng)發(fā)送一個IRP,分發(fā)例程將IRP放入 一個隊列之后追回。某些I/O操作引發(fā)設(shè)備中斷,中斷服務(wù)例 程做一些很少的操作,然后請求一個 DPC,之后返回。操作系統(tǒng)調(diào)用驅(qū)動程序的各個例程的簡要過程: DPC例程運行了,它可能要讀回數(shù)據(jù),或者繼 續(xù)下一次的寫操作等,然后開始下一個排在隊 列中的IRP,之后DPC例程返回系統(tǒng)。隨著時間變化,在這期間系統(tǒng)會發(fā)送各種IRP給 驅(qū)動程序,驅(qū)動程序進(jìn)行相應(yīng)的處理。最后,用戶拔岀設(shè)備或者關(guān)閉系統(tǒng),這時,系 統(tǒng)發(fā)送
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版B項目光伏發(fā)電系統(tǒng)工程承包合同2篇
- 2024年太陽能電站運維與光伏發(fā)電效率提升合同3篇
- 2024版房地產(chǎn)抵押貸款合同范本5篇
- 2024年度建筑垃圾搬運處理合同范本3篇
- 飲品加盟意向金合同范例
- 2024年度長沙二手房買賣合同中的房屋交易優(yōu)惠政策3篇
- 2024年個體工商戶向企業(yè)借款合同3篇
- 2024版企業(yè)工商注冊代理合同范本升級版2篇
- 2024年市政道路施工護欄租賃合同3篇
- 2024年度注塑模具環(huán)保生產(chǎn)標(biāo)準(zhǔn)合同3篇
- 線路工程灌注樁施工作業(yè)指導(dǎo)書施工方案
- 重力壩的分縫與止水
- 三重管高壓旋噴樁施工工藝規(guī)程與施工方案
- 云南白藥公司近三年財報分析
- 衛(wèi)浴產(chǎn)品世界各國認(rèn)證介紹
- 個體診所藥品清單
- 國網(wǎng)基建國家電網(wǎng)公司輸變電工程結(jié)算管理辦法
- 深度學(xué)習(xí)數(shù)學(xué)案例(課堂PPT)
- 中國地圖含省份信息可編輯矢量圖
- 臥式鉆床液壓系統(tǒng)設(shè)計課件
- 水庫維修養(yǎng)護工程施工合同協(xié)議書范本
評論
0/150
提交評論