Windows NT 裝置驅動程式開發基礎(1) (轉)
Windows NT 裝置驅動程式開發基礎(1) (轉)[@more@]一、背景介紹
1.1 NT操作的組成
1.1.1 (User Mode)與核心模式(Kernel Mode)
從 80386開始,出於性和穩定性的考慮,該系列的可以執行於ring0
~ring3從高到低四個不同的級,對資料也提供相應的四個保護級別。執行於較
低階別的程式碼不能隨意高階別的程式碼和訪問較高階別的資料,而且也只有ring0
層的程式碼可以直接進行對物理的訪問。由於Windows NT是一個支援多平臺的操作
系統,為了與其他平臺相容,它只利用了CPU的兩個執行級別。一個被稱為核心模式,
對應80x86的ring0層,的核心部分,包括裝置都執行在該模式;另
一個被稱為使用者模式,對應80x86的ring3層,作業系統的使用者介面部分以及所有的用
戶應用程式都執行在該級別。
1.1.2 Windows NT作業系統的結構
圖1簡要地描述了Windows NT的系統組成。
圖一
從圖中可以看到,在物理硬體(Hardware)與系統核心(Kernel)之間有一個硬體抽象
層(Hardware Abstraction Layer),它遮蔽了不同平臺硬體的差異,向作業系統的
上層提供了一套統一的介面。從圖中我們還可以看到,裝置驅動程式(Device )
是被I/O管理器(I/O Manager)包圍起來的,即驅動程式與作業系統上層的通訊全部都
要透過I/O管理器。這給驅動程式的編寫帶來了很大的便利,因為很多諸如接收使用者的請
求 、與使用者程式資料、對映、掛接中斷、同步等等麻煩的工作都由I/O管理器代
勞了。
1.1.3 Windows NT裝置驅動程式的分類
根據是否直接操作硬體,可以把驅動程式分成兩大類:核心模式的驅動程式和專用驅
動程式。
核心模式的驅動程式根據硬體的通訊,直接對硬體進行埠訪問、中斷響應、DM
A傳輸。它包括:串、並行口,鍵盤,系統,,等驅動程式;專用驅動程式
包括影片,列印,多,虛擬DOS等驅動程式,他們在實現上與前者有很大區別。我在
實習期間所做的工作以及本文以下的討論都侷限於核心模式的驅動程式。
--
1.1 NT操作的組成
1.1.1 (User Mode)與核心模式(Kernel Mode)
從 80386開始,出於性和穩定性的考慮,該系列的可以執行於ring0
~ring3從高到低四個不同的級,對資料也提供相應的四個保護級別。執行於較
低階別的程式碼不能隨意高階別的程式碼和訪問較高階別的資料,而且也只有ring0
層的程式碼可以直接進行對物理的訪問。由於Windows NT是一個支援多平臺的操作
系統,為了與其他平臺相容,它只利用了CPU的兩個執行級別。一個被稱為核心模式,
對應80x86的ring0層,的核心部分,包括裝置都執行在該模式;另
一個被稱為使用者模式,對應80x86的ring3層,作業系統的使用者介面部分以及所有的用
戶應用程式都執行在該級別。
1.1.2 Windows NT作業系統的結構
圖1簡要地描述了Windows NT的系統組成。
圖一
從圖中可以看到,在物理硬體(Hardware)與系統核心(Kernel)之間有一個硬體抽象
層(Hardware Abstraction Layer),它遮蔽了不同平臺硬體的差異,向作業系統的
上層提供了一套統一的介面。從圖中我們還可以看到,裝置驅動程式(Device )
是被I/O管理器(I/O Manager)包圍起來的,即驅動程式與作業系統上層的通訊全部都
要透過I/O管理器。這給驅動程式的編寫帶來了很大的便利,因為很多諸如接收使用者的請
求 、與使用者程式資料、對映、掛接中斷、同步等等麻煩的工作都由I/O管理器代
勞了。
1.1.3 Windows NT裝置驅動程式的分類
根據是否直接操作硬體,可以把驅動程式分成兩大類:核心模式的驅動程式和專用驅
動程式。
核心模式的驅動程式根據硬體的通訊,直接對硬體進行埠訪問、中斷響應、DM
A傳輸。它包括:串、並行口,鍵盤,系統,,等驅動程式;專用驅動程式
包括影片,列印,多,虛擬DOS等驅動程式,他們在實現上與前者有很大區別。我在
實習期間所做的工作以及本文以下的討論都侷限於核心模式的驅動程式。
--
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-992236/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Windows NT 裝置驅動程式開發基礎(3) (轉)Windows
- Windows NT 裝置驅動程式開發基礎(2) (轉)Windows
- Windows NT 裝置驅動程式開發基礎(4) (轉)Windows
- Windows NT 裝置驅動程式開發基礎(5) (轉)Windows
- Windows NT 裝置驅動程式開發基礎(7) (轉)Windows
- Windows NT 裝置驅動程式開發基礎(6) (轉)Windows
- Windows NT 裝置驅動程式開發基礎(8) (轉)Windows
- DeviceDriver Windows NT 驅動程式型別 (轉載) (轉)devWindows型別
- SCO UNIX 下裝置驅動程式開發 (轉)
- SCO UNIX 下裝置驅動程式開發(轉)
- 使用Windows 95虛擬裝置驅動程式(VxD) (轉)Windows
- Linux裝置驅動程式學習----1.裝置驅動程式簡介Linux
- Windows95的裝置驅動程式的編寫 (轉)Windows
- Linux裝置驅動程式 (轉)Linux
- linux裝置驅動編寫基礎Linux
- 開發Linux系統裝置驅動程式並不難(轉)Linux
- 《Linux裝置驅動開發詳解(第2版)》——第1章Linux裝置驅動概述及開發環境構建1.1裝置驅動的作用Linux開發環境
- Linux驅動開發筆記(四):裝置驅動介紹、熟悉雜項裝置驅動和ubuntu開發雜項裝置DemoLinux筆記Ubuntu
- Windows裝置和驅動的安裝Windows
- Linux下的硬體驅動——USB裝置(下)(驅動開發部分)(轉)Linux
- LINUX下的裝置驅動程式 (轉)Linux
- 用 Delphi 編寫 VxD 裝置驅動程式(轉) (轉)
- Linux裝置驅動探究第1天----spi驅動(1)Linux
- Linux驅動之裝置樹的基礎知識Linux
- 字元裝置驅動 —— 字元裝置驅動框架字元框架
- iOS 裝置驅動 for windows 32&64iOSWindows
- Linux裝置驅動之字元裝置驅動Linux字元
- UNIX下裝置驅動程式的基本結構(轉)
- 基於匯流排裝置驅動模型的按鍵讀取驅動程式模型
- 在Linux中,什麼是裝置驅動程式?如何安裝和解除安裝裝置驅動程式?Linux
- 裝置驅動程式包可以刪除嗎 win10裝置驅動程式包能刪嗎Win10
- 裸裝置基礎知識(轉)
- 深入淺出:Linux裝置驅動之字元裝置驅動Linux字元
- 乾坤合一:Linux裝置驅動之塊裝置驅動Linux
- Windows的驅動開發模型Windows模型
- Windows驅動開發入門Windows
- 虛擬裝置驅動程式的設計與實現 (轉)
- 深入淺出分析Linux裝置驅動程式中斷(轉)Linux