驅動進程

設備驅動程式(英語:device driver),簡稱驅動程式(driver),是一個允許高端(High level)計算機軟體(computer software)與硬體(hardware)互動的程式,這種程式創建了一個硬體與硬體,或硬體與軟體溝通的接口,經由主機板上的匯流排(bus)或其它溝通子系統(subsystem)與硬體形成連線的機制,這樣的機制使得硬體設備(device)上的數據交換成為可能。

簡介

設備驅動程式(英語: device driver),簡稱 驅動程式(driver),是一個允許高端(High level)計算機軟體(computer software)與硬體(hardware)互動的程式,這種程式創建了一個硬體與硬體,或硬體與軟體溝通的接口,經由主機板上的匯流排(bus)或其它溝通子系統(subsystem)與硬體形成連線的機制,這樣的機制使得硬體設備(device)上的數據交換成為可能。

依據不同的計算機體系結構與作業系統差異平台,驅動程式可以是8位(8-bit)、16位(16-bit)、32位(32-bit),甚至是最新的64位(64-bit),這是為了調和作業系統與驅動程式之間的依存關係,例如在Windows 3.11的16位作業系統時代,大部分的驅動程式都是16位,到了32位的Windows XP則大部分是使用32位驅動程式(微軟提供了Windows Driver Model可實現driver),至於64位的Linux或是Windows平台上,就必須使用64位的驅動程式(WDM與WDF皆可實現64位驅動程式)。

驅動程式的開發

驅動程式的開發工作是很具挑戰性的,因為必須配合著硬體與軟體上相當明確與高級的平台技術。由於大多數的驅動程式(device drivers)運行在核心模式(kernel mode),軟體的錯誤經常造成系統嚴重的不穩定,例如藍屏(blue screen),這跟過去的用戶模式(user mode)下的程式設計(例如Delphi、VB、Java)有明顯的差異性。

Windows平台

為了大量減輕驅動程式開發人員的負擔,微軟不斷的改進驅動程式的開發軟體與架構,從早期複雜深晦的VxD,到Windows XP上的Windows Driver Model(以下簡稱WDM)開發架構,如今Windows Driver Foundation(以下簡稱WDF)已成為新一代的Windows平台驅動程式發展架構,這個架構大量簡化了驅動程式的開發流程,更匹配面向對象的精神,此架構包含了User Mode Driver Framework與Kernel Mode Driver Framework兩種開發模式。在開發Windows平台上的驅動程式之前,必須先安裝DDK(Driver Development Kit),DDK包同時支持WDM與WDF兩種架構。

Linux平台

Linux下的設備有三種基本類型:字元設備,塊設備和網路接口。

驅動程式的套用

因為常見的硬體和作業系統的差異性,驅動程式存在著不同的方式。用於:

• 印表機

• 顯示卡

• 網卡

• 音效卡

• 不同種類的匯流排

• 不同種類的低頻寬的輸入/輸出匯流排(如定點設備:滑鼠、鍵盤、USB等等。)

• 硬碟的連線接口/RAID(RAID,SCSI);

• 實現對不同的檔案系統的支持。

• 實現對掃瞄器、數字相機的支持。

驅動程式的抽象化共同層級(Common levels of abstraction):

• 在硬體層方面:

• 直接連線(Interfacing directly)

• 使用一些較高層次的接口(如:視頻BIOS)

• 使用另一低級別的驅動程式(如檔案系統驅動程式使用磁碟驅動程式)

• 模擬硬體工作

• 在軟體層方面:

• 允許作業系統直接訪問硬體資源

• 僅實現其原始樣式(primitives)

• 實現對非驅動程式的軟體的界面(如TWAIN)

• 實現一個更高層級的語言,例如PostScript

虛擬設備驅動程式

有一種特殊的驅動程式名為虛擬設備驅動程式(virtual device drivers),可用於虛擬化的環境(virtualization environments),例如DOS程式要運行於Windows平台上,就必須要利用這種虛擬設備驅動程式,像是VMware就是一種“虛擬PC”的軟體,可以在一台機器上同時運行兩個或兩個以上的Windows、DOS、LINUX系統,VMWare是真正實現了“同時”運行,多個作業系統在主系統的平台上,就像標準Windows應用程式那樣切換一樣容易。

驅動程式的API

• Advanced Linux Sound Architecture(ALSA) - 標準新式Linux音效卡驅動程式接口(sound driver interface)

• I/O Kit - 一種蘋果計算機(Apple)上的開放式接口適用於發展麥金塔作業系統(Mac OS X)的設備驅動程式

• Installable File System(IFS) - 一種IBM OS/2與Microsoft Windows NT的檔案系統API

• Network Driver Interface Specification(NDIS) - 一種標準網卡(network card)驅動程式API

• Open Data-Link Interface(ODI) - 一種類似NDIS的網卡API

• Scanner Access Now Easy(SANE) - a public domain interface to raster image scanner hardware

• Uniform Driver Interface(UDI) - 跨平台(cross platform)驅動程式的接口規範

• Windows Display Driver Model(WDDM) - Windows Vista及以後平台上新式的圖形顯示(graphic display)驅動程式架構。從Windows 8開始,Windows不支持舊的XPDM。

• Windows Driver Foundation(WDF)

• Windows Driver Model(WDM)

參見

• Windows Driver Model

• Windows Driver Foundation

• 硬體抽象層

• Class driver

• 開源硬體

• 暫存器(Processor register)

• 中斷(interrupt)

• 連線埠(port)

相關詞條

熱門詞條

聯絡我們