驅(qū)動(dòng)程序是一種可以使計(jì)算機(jī)和設(shè)備通信的特殊程序;它創(chuàng)建了一個(gè)硬件與硬件,或硬件與軟件溝通的接口,經(jīng)由主板上的總線或其它溝通子系統(tǒng)與硬件形成連接的機(jī)制,這樣的機(jī)制使得硬件設(shè)備(device)上的數(shù)據(jù)交換成為可能。驅(qū)動(dòng)程序相當(dāng)于硬件的接口,操作系統(tǒng)只有通過(guò)這個(gè)接口,才能控制硬件設(shè)備的工作;因此,驅(qū)動(dòng)程序被比作“硬件的靈魂”、“硬件的主宰”、“硬件和系統(tǒng)之間的橋梁”等。
php零基礎(chǔ)到就業(yè)直播視頻課:進(jìn)入學(xué)習(xí)
本教程操作環(huán)境:windows7系統(tǒng)、Dell G3電腦。
驅(qū)動(dòng)程序(Device Driver)全稱(chēng)為“設(shè)備驅(qū)動(dòng)程序”,是一種可以使計(jì)算機(jī)和設(shè)備通信的特殊程序,是一個(gè)允許高級(jí)(High level)電腦軟件(computer software)與硬件(hardware)交互的程序,這種程序創(chuàng)建了一個(gè)硬件與硬件,或硬件與軟件溝通的接口,經(jīng)由主板上的總線(bus)或其它溝通子系統(tǒng)(subsystem)與硬件形成連接的機(jī)制,這樣的機(jī)制使得硬件設(shè)備(device)上的數(shù)據(jù)交換成為可能。
驅(qū)動(dòng)程序相當(dāng)于硬件的接口,操作系統(tǒng)只有通過(guò)這個(gè)接口,才能控制硬件設(shè)備的工作,假如某設(shè)備的驅(qū)動(dòng)程序未能正確安裝,便不能正常工作。因此,驅(qū)動(dòng)程序被比作“ 硬件的靈魂”、“硬件的主宰”、“硬件和系統(tǒng)之間的橋梁”等。
驅(qū)動(dòng)程序在系統(tǒng)中的所占的地位十分重要,一般當(dāng)操作系統(tǒng)安裝完畢后,首要的便是安裝硬件設(shè)備的驅(qū)動(dòng)程序。不過(guò),大多數(shù)情況下,我們并不需要安裝所有硬件設(shè)備的驅(qū)動(dòng)程序,例如硬盤(pán)、顯示器、光驅(qū)等就不需要安裝驅(qū)動(dòng)程序,而顯卡、聲卡、掃描儀、攝像頭、Modem等就需要安裝驅(qū)動(dòng)程序。
設(shè)備驅(qū)動(dòng)程序用來(lái)將硬件本身的功能告訴操作系統(tǒng),完成硬件設(shè)備電子信號(hào)與操作系統(tǒng)及軟件的高級(jí)編程語(yǔ)言之間的互相翻譯。設(shè)備驅(qū)動(dòng)程序通常會(huì)占到70%以上份額的操作系統(tǒng)內(nèi)核源碼,且設(shè)備驅(qū)動(dòng)程序的更新維護(hù)往往會(huì)牽涉到超過(guò)35%的源碼修改,故而保持設(shè)備驅(qū)動(dòng)程序與操作系統(tǒng)內(nèi)核不斷變化的其余部分的一致性是操作系統(tǒng)內(nèi)核開(kāi)發(fā)的一項(xiàng)難題 。
當(dāng)操作系統(tǒng)需要使用某個(gè)硬件時(shí),比如:讓聲卡播放音樂(lè),它會(huì)先發(fā)送相應(yīng)指令到聲卡驅(qū)動(dòng)程序,聲卡驅(qū)動(dòng)程序接收到后,馬上將其翻譯成聲卡才能聽(tīng)懂的電子信號(hào)命令,從而讓聲卡播放音樂(lè)。
所以簡(jiǎn)單的說(shuō),驅(qū)動(dòng)程序提供了硬件到操作系統(tǒng)的一個(gè)接口以及協(xié)調(diào)二者之間的關(guān)系,而因?yàn)轵?qū)動(dòng)程序有如此重要的作用,所以人們都稱(chēng)“驅(qū)動(dòng)程序是硬件的靈魂”、“硬件的主宰”,同時(shí)驅(qū)動(dòng)程序也被形象的稱(chēng)為“硬件和系統(tǒng)之間的橋梁”。驅(qū)動(dòng)程序即添加到操作系統(tǒng)中的一小塊代碼,其中包含有關(guān)硬件設(shè)備的信息,計(jì)算機(jī)就可以與設(shè)備進(jìn)行通信基于此信息。驅(qū)動(dòng)程序是硬件廠商根據(jù)操作系統(tǒng)編寫(xiě)的配置文件,可以說(shuō)沒(méi)有驅(qū)動(dòng)程序,計(jì)算機(jī)中的硬件就無(wú)法工作。操作系統(tǒng)不同,硬件的驅(qū)動(dòng)程序也不同,各個(gè)硬件廠商為了保證硬件的兼容性及增強(qiáng)硬件的功能會(huì)不斷地升級(jí)驅(qū)動(dòng)程序。如:Nvidia顯卡芯片公司平均每個(gè)月會(huì)升級(jí)顯卡驅(qū)動(dòng)程序2-3次。驅(qū)動(dòng)程序是硬件的一部分,當(dāng)你安裝新硬件時(shí),驅(qū)動(dòng)程序是一項(xiàng)不可或缺的重要元件。凡是安裝一個(gè)原本不屬于你電腦中的硬件設(shè)備時(shí),系統(tǒng)就會(huì)要求你安裝驅(qū)動(dòng)程序,將新的硬件與電腦系統(tǒng)連接起來(lái)。驅(qū)動(dòng)程序扮演溝通的角色,把硬件的功能告訴電腦系統(tǒng),并且也將系統(tǒng)的指令傳達(dá)給硬件,讓它開(kāi)始工作。
驅(qū)動(dòng)程序的應(yīng)用
因?yàn)槌R?jiàn)的硬件和操作系統(tǒng)的差異性,驅(qū)動(dòng)程序存在著不同的方式。用于:
打印機(jī)
顯卡
網(wǎng)卡
聲卡
不同種類(lèi)的總線
不同種類(lèi)的低帶寬的輸入/輸出總線(如定點(diǎn)設(shè)備:鼠標(biāo)、鍵盤(pán)、USB等等。)
硬盤(pán)驅(qū)動(dòng)器總線(ATA,SCSI)
實(shí)現(xiàn)對(duì)不同的文件系統(tǒng)的支持
實(shí)現(xiàn)對(duì)掃描儀、數(shù)碼相機(jī)的支持
驅(qū)動(dòng)程序的抽象化共同層級(jí)(Common levels of abstraction):
在硬件層方面:
直接連接(Interfacing directly)
使用一些較高層次的接口(如:視頻BIOS)
使用另一低級(jí)別的驅(qū)動(dòng)程序(如文件系統(tǒng)驅(qū)動(dòng)程序使用磁盤(pán)驅(qū)動(dòng)程序)
模擬硬件工作
在軟件層方面:
允許操作系統(tǒng)直接訪問(wèn)硬件資源
僅實(shí)現(xiàn)其原始樣式(primitives)
實(shí)現(xiàn)對(duì)非驅(qū)動(dòng)程序的軟件的界面(如TWAIN)
實(shí)現(xiàn)一個(gè)更高層級(jí)的語(yǔ)言,例如PostScript
虛擬設(shè)備驅(qū)動(dòng)程序
有一種特殊的驅(qū)動(dòng)程序名為虛擬設(shè)備驅(qū)動(dòng)程序(virtual device drivers),可用于虛擬化的環(huán)境(virtualization environments),例如DOS程序要運(yùn)行于Windows平臺(tái)上,就必須要利用這種虛擬設(shè)備驅(qū)動(dòng)程序,像是VMware就是一種“虛擬PC”的軟件,可以在一臺(tái)機(jī)器上同時(shí)運(yùn)行兩個(gè)或兩個(gè)以上的Windows、DOS、LINUX系統(tǒng),VMWare是真正實(shí)現(xiàn)了“同時(shí)”運(yùn)行,多個(gè)操作系統(tǒng)在主系統(tǒng)的平臺(tái)上,就像標(biāo)準(zhǔn)Windows應(yīng)用程序那樣切換一樣容易。