国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

再說驅(qū)動

2014-04-29 04:08:32
中國信息技術教育 2014年1期
關鍵詞:聲卡驅(qū)動程序網(wǎng)卡

編者按::新的一年,“高手論技”繼續(xù)伴隨大家前行,身處一線的你,就那些技術上最常遇到的故障、最需要解決的難題、最成熟的應用……都可以在此暢所欲言,各抒己見。是繼續(xù)圍觀還是現(xiàn)身說法,新浪微群http://q.t.sina.com.cn/264976,期待您的共同參與。

隨著計算機應用的不斷人性化,我們的許多工作便利了,這其中驅(qū)動程序功不可沒,但作為幕后英雄,卻甚少為人關注。在此,主持人和嘉賓將分兩期來探討驅(qū)動程序所帶給我們的精彩。

主持人:

劉宗凡 廣東省四會中學

嘉賓:

陳守家 山東省濰坊商業(yè)學校

邱元陽 河南省安陽縣職業(yè)中專

驅(qū)動程序在電腦系統(tǒng)中起著非常關鍵的接口作用,是聯(lián)接硬件和操作系統(tǒng)的橋梁,其重要性不言而喻。驅(qū)動程序從本質(zhì)上來說還是一段程序代碼,但它是一段特殊的代碼。驅(qū)動程序在操作系統(tǒng)中的工作處在一個管理級別的狀態(tài),這個狀態(tài)具有沒有約束的權利,這樣的代碼如果工作不正常就會給系統(tǒng)帶來災難,因此驅(qū)動程序?qū)儆诘讓拥南到y(tǒng)軟件。而因為硬件的多樣性,驅(qū)動程序的安裝也成了一個難題。在上一期我們已經(jīng)探討了驅(qū)動程序的概念和安裝的基本問題,這一期我們再來深入談談驅(qū)動程序的方方面面。

● 驅(qū)動的分類

劉宗凡:驅(qū)動程序不是普通的應用軟件,它的特殊性體現(xiàn)在哪里?

邱元陽:驅(qū)動程序的代碼是為應用服務的,所以它的調(diào)用通常都是被動的,因為你不知道用戶什么時間使用哪個功能,所以驅(qū)動程序的代碼多數(shù)是些片段,用計算機術語來描述就是完成某個功能的函數(shù)。不像應用程序一樣自己知道下一步該干啥了,沒有整體感,只要函數(shù)完成一個規(guī)定的功能就可以了。不用管它什么時間被調(diào)用,只要讓系統(tǒng)知道完成該項功能的函數(shù)在哪里就行了。簡單來說設備驅(qū)動程序?qū)嵸|(zhì)就是提供一組供應用程序操作設備的接口函數(shù),各種設備提供的功能不同,驅(qū)動程序提供的函數(shù)接口也就不相同了。

陳守家:根據(jù)接口函數(shù)的不同,驅(qū)動程序的分類也比較復雜,我們用一個圖能看得更清楚(如圖1)。

1.虛擬設備驅(qū)動程序(Virtual Device Driver,縮寫為VDD)。它可使DOS應用程序訪問x86平臺上的硬件,也可支持Windows系統(tǒng)下的對端口訪問。

2.PnP驅(qū)動程序。類驅(qū)動程序是管理已定義類的設備,小驅(qū)動程序是為了給廠商提供專業(yè)支持的。由它們倆共同組成了視窗驅(qū)動程序模塊(Windows Driver Model,縮寫為WDM),它們是一種遵循電源管理協(xié)議并能在windows系統(tǒng)上實現(xiàn)源代碼級兼容的PnP驅(qū)動程序。PnP的任務是把物理設備和軟件設備驅(qū)動程序相配合并操作設備,在每個設備和它的驅(qū)動程序之間建立通信信道。

3.顯示驅(qū)動程序。這是用于顯示和打印設備的內(nèi)核模式驅(qū)動程序。

4.文件系統(tǒng)驅(qū)動程序。在本地磁盤或網(wǎng)絡上實現(xiàn)標準PC文件系統(tǒng)模型(含多層次目錄結構和命名文件概念)。

5.保留設備驅(qū)動程序。這主要包括Windows NT早期版本的驅(qū)動程序,它直接控制一個硬件設備而不用其他驅(qū)動程序幫助,可以不做修改地在Windows的現(xiàn)行版本中運行。

劉宗凡:虛擬驅(qū)動程序除了陳老師講的這層含義,通常還有另一個含義:對不存在的設備的驅(qū)動。我們通過安裝一個虛擬驅(qū)動程序,來模擬一個實際的設備,哪怕這個設備是子虛烏有的。最有名的應該是虛擬光驅(qū)。我們在安裝虛擬光驅(qū)軟件時,實際上系統(tǒng)中已經(jīng)安裝了一個虛擬光驅(qū)的驅(qū)動程序,通過這種方式來“欺騙”操作系統(tǒng),讓它認為系統(tǒng)中存在一個實際的光驅(qū)。通過這個虛擬光驅(qū)的操作,可以大大加快真實光盤的運行速度,另外還減少了光盤的磨損,可謂一舉兩得。虛擬驅(qū)動這種“無中生有”的本事,給我們帶來了很多便利。

邱元陽:對,除了虛擬光驅(qū),我們還可能用到虛擬網(wǎng)卡、虛擬打印機等,這都是通過虛擬驅(qū)動程序來實現(xiàn)的。打印機的驅(qū)動可以在沒有打印機的情形下進行安裝,以滿足文檔的打印預覽要求。虛擬打印機則往往是一個應用程序,實現(xiàn)文件的特殊輸出要求,如輸出為不同格式和類型的文件。

在虛擬機中的硬件,有真實物理機上的設備,也有虛擬的設備,其驅(qū)動程序與真實設備一樣。支持硬件虛擬化的設備,如CPU,可能還需要在主板BIOS中打開相應的設置。比如光驅(qū),我們既可以使用實際的光驅(qū),也可以使用某個ISO文件虛擬出來的光驅(qū)。當然網(wǎng)卡,必須有一個虛擬的,用來實現(xiàn)和宿主機之間的網(wǎng)絡連接。

● 驅(qū)動安裝之惑

劉宗凡:從各類的驅(qū)動程序就可以看出它們是非常復雜的,雖然很少走上前臺和我們直接打交道,但碰上一些不常見的設備,安裝驅(qū)動程序就是一件非常令人頭疼的事。我們在安裝驅(qū)動程序時使用什么辦法、會碰到哪些麻煩?

陳守家:驅(qū)動精靈是一個很智能很好用的驅(qū)動安裝輔助工具,能夠自動識別并從網(wǎng)絡上下載安裝相應設備的驅(qū)動程序。但是,如果網(wǎng)卡驅(qū)動本身還沒有正常安裝,驅(qū)動精靈的在線安裝也就無能為力了,因此驅(qū)動精靈又推出了離線版本,自帶了大量的驅(qū)動程序,需要事先完整下載下來才能進行安裝。當然,驅(qū)動精靈也有自帶的網(wǎng)卡驅(qū)動版本,如果驅(qū)動精靈在運行時檢測不到網(wǎng)絡連接,將自動識別、安裝網(wǎng)卡驅(qū)動。另外,驅(qū)動人生也是一款常用的驅(qū)動安裝軟件。

劉宗凡:除了用軟件來在線檢測硬件安裝驅(qū)動程序外,網(wǎng)上還有一種所謂的“萬能驅(qū)動”程序下載,從聲卡、顯卡、網(wǎng)卡到攝像頭、主板、游戲手柄等設備的萬能驅(qū)動都有。當然,每一個驅(qū)動程序都只能驅(qū)動某一種型號的硬件設備,所以萬能驅(qū)動聽起來好像很神秘,其實就是一堆常見硬件驅(qū)動程序的集合而已。如果我們在沒有網(wǎng)絡的情況下要安裝驅(qū)動程序,先下載好萬能驅(qū)動也未嘗不是一種好的選擇。另外,不同網(wǎng)站制作的萬能驅(qū)動也良莠不齊,大家應選擇比較專業(yè)的驅(qū)動程序網(wǎng)站制作的,這樣才會有更好的效果。

邱元陽:在早期的Windows中,安裝驅(qū)動程序是很困難的,因為那時在尚不完善的“即插即用”環(huán)境下,硬件的驅(qū)動程序間常常會發(fā)生沖突,從而導致無法正常工作。特別是在Windows 98時代,這種硬件沖突常常發(fā)生,系統(tǒng)安裝和維護時經(jīng)常會為硬件的IRQ分配大傷腦筋。

IRQ(Interrupt Request),即“中斷請求”。硬件需要處理器去執(zhí)行某些工作時,就會發(fā)出一個請求信號,通知處理器“中斷”正在執(zhí)行的其他工作,優(yōu)先處理請求,完成之后再繼續(xù)處理之前未完成的工作。

系統(tǒng)提供了16個IRQ請求號(從IRQ0至IRQ15),但是其中很多已經(jīng)預先分配給特定的硬件了,只有IRQ5、IRQ9、IRQ10和IRQ11是空置的。但是要使用IRQ的周邊設備卻很多,聲卡、網(wǎng)卡等PCI設備都需要配置一個IRQ。如果有兩個設備使用了同一個IRQ,就會出現(xiàn)IRQ沖突,致使兩者都不能正常工作,尤以聲卡與其他設備的沖突最為常見。

有些硬件是可以共用一個IRQ的,但有些卻又不行。例如,PCI聲卡就需要獨享一個IRQ,有時甚至需要兩個(MIDI庫和Wave波表)。因此當系統(tǒng)自動分配IRQ時,若分配聲卡與其他設備共用一個IRQ,就容易發(fā)生IRQ沖突,這時就需要我們到BIOS中進行手動設置。

在Windows XP以后的系統(tǒng)中,即插即用(Plug-and-Play,簡稱PnP)功能已經(jīng)非常完善,系統(tǒng)將自動找到一個不沖突的中斷號和I/O地址分配給外部設備,完全不需要人工干預,因而發(fā)生硬件沖突的可能性已經(jīng)很小了。

PnP實現(xiàn)了硬件設備和驅(qū)動程序的協(xié)調(diào)配合,在每個設備和它的驅(qū)動程序之間建立通信信道,自動將I/O地址、IRQ、DMA通道和內(nèi)存地址段等資源分配給相應的硬件,使它們無沖突地正常工作。但是,在主板的PCI、AGP和PCI-E等插槽中,存在共用中斷的情況,當在這些插槽中插入相應的板卡時,就有可能發(fā)生沖突。不過現(xiàn)在的主板基本上都集成了常用的聲卡、網(wǎng)卡和顯卡等芯片,去掉了共享中斷的多余插槽,不需要手工配置中斷,一般不會再出現(xiàn)硬件沖突。

陳守家:在安裝聲卡驅(qū)動程序時,我們常常會接到WDM的驅(qū)動程序。WDM(Windows Driver Model),即Win32驅(qū)動程序模型,是微軟力推的全新驅(qū)動程序模式,旨在通過提供一種靈活的方式來簡化驅(qū)動程序的開發(fā),在實現(xiàn)對新硬件支持的基礎上減少并降低所必須開發(fā)的驅(qū)動程序的數(shù)量和復雜性。

WDM支持USB、IEEE 1394、ACPI等硬件標準,以往在兩個平臺上同時運行時需要編寫兩個截然不同的驅(qū)動程序,現(xiàn)在只要編寫一個WDM驅(qū)動程序就可以了。

Windows的驅(qū)動程序體系包括類驅(qū)動程序、總線驅(qū)動程序、迷你驅(qū)動程序和過濾器驅(qū)動程序。其支持的硬件可以在硬件兼容性列表(Hardware Compatibility list,HCL)中查到。WDM實現(xiàn)了一個模塊化的、分層次類型的微型驅(qū)動程序結構,這種架構有利于提升音效處理的效能。

劉宗凡:我們在安裝HD Audio聲卡驅(qū)動程序時有時會碰到一個提示:“需要HD Audio總線驅(qū)動程序,但是沒有找到?!睙o論你如何重新安裝聲卡驅(qū)動程序,也是無法成功的。其實這是缺少微軟HD Audio總線驅(qū)動程序,或稱UAA補丁,安裝這一補丁再安裝驅(qū)動程序就可以解決該問題。注意這只能用在Windows XP SP2及之前的系統(tǒng)。

陳守家:Windows XP以后的系統(tǒng)自帶有VGA驅(qū)動,即使沒有安裝顯卡驅(qū)動程序,也能夠以正常分辨率來顯示圖像。但是在VGA驅(qū)動下,顯示器的顯示效果很差,圖像變化的延遲非常明顯,甚至用鼠標拖動一下窗口都有明顯的閃爍和滯后,更不用說運行復雜的程序了。當有這種情況發(fā)生時,一般都是沒有安裝相應的顯卡驅(qū)動程序所致。

邱元陽:在設置顯示器分辨率時,有時一不小心選擇了顯示器不支持的高分辨率時,或者將某臺原來分辨率設置太高的主機搬到另一臺不支持這個分辨率的顯示器上用時,顯示器將無法顯示。這個問題其實很容易解決。我們將電腦重新啟動到安全模式,然后在設備管理器中將顯卡驅(qū)動卸載再重啟,我們就又回到了只有VGA驅(qū)動支持的情況,重新安裝顯卡驅(qū)動就可以了。

● 特殊設備驅(qū)動和驅(qū)動增強

劉宗凡:上面的驅(qū)動程序安裝其實還只算是比較普通的情況,驅(qū)動程序基本上都是裝完操作系統(tǒng)以后再安裝,但也有些特別的設備會有特別的要求。

邱元陽:對,如某些SCSI硬盤的驅(qū)動,磁盤陣列或陣列卡的驅(qū)動,甚至一些非原生SATA硬盤的驅(qū)動。在安裝系統(tǒng)的過程中如果沒有加載,就可能無法正常安裝操作系統(tǒng),或者安裝后這類硬件也無法發(fā)揮正常功能。

在Windows系統(tǒng)特別是網(wǎng)絡操作系統(tǒng)的安裝過程中,會有一個按下F6鍵安裝第三方驅(qū)動的提示,用于安裝Windows沒有自帶而又需要在操作系統(tǒng)安裝完成之前加載的驅(qū)動。這類驅(qū)動程序往往需要光盤或者軟盤來提供,因為此時可能硬盤尚不能使用。在安裝服務器的操作系統(tǒng)時,特別是有些老式的SCSI設備或磁盤陣列卡時,經(jīng)常會遇到這樣的問題。

此外,一些打印機可能還會要求在安裝驅(qū)動程序時斷開USB連接,安裝完成后再插上USB連接線,避免系統(tǒng)的PnP自動識別硬件。

陳守家:在驅(qū)動程序之外,我們可能會使用到一些設備增強軟件,因為這些軟件和硬件的特殊緊密關系,有時我們也可以把這些程序看作是驅(qū)動程序的一部分。例如,微軟通用的UAA高清音頻補丁能實現(xiàn):①簡化音頻外設的安裝。②簡化音頻驅(qū)動程序的安裝。③提高系統(tǒng)穩(wěn)定性。④提高性能。⑤免音頻干擾。⑥為需要保護的內(nèi)容提供更高的安全性。這個補丁程序和設備驅(qū)動關系緊密,可以看成是驅(qū)動程序的一部分。

而RivaTuner是一款顯卡強力超頻調(diào)試軟件。它能夠提高圖像顯示質(zhì)量和解決一些兼容性問題。aTuner是德國硬件網(wǎng)站3DCenter.de的nVIDIA顯示卡調(diào)節(jié)工具。它可以對nVIDIA GPU的反鋸齒、各項異性過濾、垂直刷新同步和MipMap LOD進行調(diào)節(jié)。軟件在啟動的時候會要求你打開4x全屏抗鋸齒。軟件界面非常簡單,所有功能都包含其中。在常用的項目中有OpenGL的全屏抗鋸齒、各項異性過濾、垂直刷新同步、MipMap LOD和D3D的全屏抗鋸齒、各項異性過濾、垂直刷新同步、MipMap LOD調(diào)節(jié)項目。

PowerStrip是一款通用各種顯卡的、功能非常強悍的顯卡、屏幕功能配置工具,諸如調(diào)整桌面尺寸、屏幕更新頻率、放大縮小桌面、屏幕位置調(diào)整、桌面字型調(diào)整、鼠標游標放大縮小、圖形與顯卡系統(tǒng)信息、顯卡運行性能調(diào)整等;而這些功能都可利用附在桌面上的Toolbar或是快速鍵來快速變更,支持用戶的喜好。它能修改顯卡的各個細致的配置,如添加一些顯卡原本不支持的分辨率,進行顯示核心軟超頻等(如圖2)。因此,它成為了不少顯卡發(fā)燒友的首選軟件。要注意的是,這個軟件能直接修改顯卡的工作參數(shù),在錯誤的設置時可能會對顯卡造成損壞,不了解它的作用的選項最好不要貿(mào)然設置。

● 驅(qū)動開發(fā)環(huán)境

劉宗凡:我們在安裝驅(qū)動程序時往往會碰到一些很棘手的問題,而驅(qū)動程序的開發(fā)工作更具挑戰(zhàn)性。由于大多數(shù)的驅(qū)動程序在內(nèi)核模式下運行,軟件的錯誤經(jīng)常造成系統(tǒng)嚴重的不穩(wěn)定,如藍屏死機等情況。雖然驅(qū)動程序是一般用戶所能掌握的,但了解一下它的開發(fā)要求和環(huán)境也是“發(fā)燒友”必修的課程。

陳守家:如果你要從事驅(qū)動開發(fā),首先要明白手頭硬件的工作原理,包括處理器架構的知識;其次假如要開發(fā)的整個系統(tǒng)是裸機程序,那你要開發(fā)的驅(qū)動程序就是一套和硬件打交道的函數(shù)庫;但是假如計劃在產(chǎn)品中使用一個操作系統(tǒng),那開發(fā)驅(qū)動之前就需要熟悉這個操作系統(tǒng)的相關內(nèi)部操作原理。

邱元陽:在Windows下進行驅(qū)動程序的編寫和開發(fā),可以使用微軟的驅(qū)動程序開發(fā)環(huán)境DDK(Device Development Kit,設備開發(fā)包)或WDK(Windows Driver Kit,Windows驅(qū)動程序包),它們是不同版本的開發(fā)包,可根據(jù)不同的操作系統(tǒng)來選擇使用。如果是在Windows 7下進行開發(fā),可以使用WDK,若在Windows XP下進行開發(fā),最好使用DDK。

驅(qū)動程序的開發(fā)一般需要使用兩臺電腦,一臺用于開發(fā),一臺用來調(diào)試。在個人工作環(huán)境下,也可以使用虛擬機來進行。

程序設計語言和編譯器也是不可缺少的,如VC++。具體的環(huán)境搭建,可以使用VS2008+DDK方式,再加上一個輔助工具DDK Wizard。Windows 7下也可以使用VS2010+WDK+VisualDDK來進行。

在測試和調(diào)試驅(qū)動程序時,可以使用自由構建和檢查構建的方式進行。內(nèi)核模式調(diào)試需要一個目標機和一個主機,目標機用來運行驅(qū)動程序或另一內(nèi)核模式的應用程序,主機運行調(diào)試程序。使用Driver Verifier這一工具可以用來監(jiān)視和檢查內(nèi)核模式驅(qū)動程序的運行。在DDK中有一些常見驅(qū)動程序的示例可以用來學習,甚至可以在其基礎上進行修改,開發(fā)出適合自己設備的驅(qū)動程序。

劉宗凡:驅(qū)動程序?qū)τ谄胀ㄓ脩魜碚f確實是一匹不易駕馭的“野馬”,但我們只要細心觀察、多加琢磨、廣開思路,還是能夠掌握這門信息技術教師應該掌握的必修課。只要深入了解了驅(qū)動程序,就能讓電腦的各個部件完全發(fā)揮出它的功效來,讓其更好地為我們服務。

猜你喜歡
聲卡驅(qū)動程序網(wǎng)卡
在DDS 中間件上實現(xiàn)雙冗余網(wǎng)卡切換的方法
Server 2016網(wǎng)卡組合模式
挑戰(zhàn)Killer網(wǎng)卡Realtek網(wǎng)游專用Dragon網(wǎng)卡
麻雀成鳳凰 本本聲卡變X—Fi
用心聆聽,“高清”聲卡進階技
驅(qū)動程序更新與推薦
驅(qū)動程序更新與推薦
驅(qū)動程序更新與推薦
巧識劣質(zhì)水晶頭
驅(qū)動程序的真心話和大冒險
大邑县| 兴安县| 泽库县| 偏关县| 隆林| 米脂县| 南漳县| 敖汉旗| 澄江县| 汾阳市| 建始县| 黎城县| 来安县| 内江市| 久治县| 嘉义市| 仲巴县| 砚山县| 长宁县| 新龙县| 当雄县| 西畴县| 渝中区| 宾川县| 昭平县| 莲花县| 肇州县| 本溪| 雷波县| 诏安县| 喀什市| 寿光市| 上饶市| 莎车县| 乌海市| 新建县| 蒲江县| 金塔县| 黄大仙区| 黔南| 鄯善县|