摘 要:計算機(jī)驅(qū)動程序是其非常重要的組成部分之一,應(yīng)用程序和操作系統(tǒng)要發(fā)揮其管理和操作功能必須要依賴于驅(qū)動程序,并且驅(qū)動代碼在各類系統(tǒng)中都占據(jù)非常高的比例。從另一個方面來說,操作系統(tǒng)中的各種主要錯誤都是來自于設(shè)備驅(qū)動的程序,該部分的錯誤概率高于系統(tǒng)中其他部分好幾倍。驅(qū)動程序一般來說復(fù)雜性非常的高,并且體量都比較龐大。驅(qū)動程序的運(yùn)行需要嚴(yán)格按照操作規(guī)范的要求,結(jié)合硬件條件,對其進(jìn)行管理和操作。計算機(jī)驅(qū)動程序包含操作系統(tǒng)、代碼和硬件等,各部分相互作用和影響,加深了驅(qū)動程序結(jié)構(gòu)的復(fù)雜性。此外,其中的任何一個元素如果發(fā)生變化,都會重新構(gòu)造新的驅(qū)動程序。所以,在軟件開發(fā)中,要想方設(shè)法的提升驅(qū)動程序的效率,減少出現(xiàn)的錯誤概率,提高其質(zhì)量。
關(guān)鍵詞:計算機(jī)驅(qū)動;復(fù)雜性;測試模塊;開發(fā)研究
引言
外圍設(shè)備是通過輸入輸出總線與中央處理器相連,通常集成在同一塊電路上,更像是附加的設(shè)備,但都具有特定的功能,比如一些基本的硬件,像鼠標(biāo)、鍵盤等。計算機(jī)的驅(qū)動程序是介于操作系統(tǒng)及設(shè)備之間的軟件,提供了管理和操作設(shè)備所必須的接口。驅(qū)動程序針對操作系統(tǒng)和應(yīng)用程序的請求進(jìn)行轉(zhuǎn)換,成為控制設(shè)備所使用的操作命令。與此同時,它也用來回應(yīng)和處理各種事件以及請求。此外,在對設(shè)備狀態(tài)進(jìn)行查詢時也需要依靠驅(qū)動程序來完成。在現(xiàn)代計算機(jī)操作系統(tǒng)中,驅(qū)動程序的代碼占據(jù)了很大一部分,也是產(chǎn)生各類錯誤最主要的原因,也是由于其自身的復(fù)雜性所造成的,也給對其進(jìn)行維護(hù)的工作造成了很大的困難。
現(xiàn)代電子技術(shù)的發(fā)展更求更加完善的計算機(jī)驅(qū)動程序與之相適應(yīng),原來的開發(fā)方法很難再開發(fā)出高質(zhì)量的系統(tǒng),面臨著非常多的挑戰(zhàn),比如驅(qū)動程序復(fù)雜性較難控制、可復(fù)用性較低、質(zhì)量較為低劣等。因此,需要創(chuàng)新開發(fā)方法,改善開發(fā)的效率,減少錯誤發(fā)生的概率,確保驅(qū)動質(zhì)量。
1 模塊設(shè)備驅(qū)動程序開發(fā)途徑
計算機(jī)驅(qū)動程序?qū)嶋H上是一層軟件,也是一種特殊程序能夠在計算機(jī)和設(shè)備之間建立通信渠道,其結(jié)構(gòu)整體上較為復(fù)雜,并且以前的開發(fā)方法對人的因素要求很高,利用模塊化的開發(fā)方法能夠比較有效的解決傳統(tǒng)開發(fā)方法中存在的許多問題。
1.1 計算機(jī)驅(qū)動程序的功能及其結(jié)構(gòu)
計算機(jī)驅(qū)動的作用就是將高層的請求轉(zhuǎn)換為底層的輸入和輸出序列,在此過程還需要接口以及資源跟操作系統(tǒng)的其他部分交互。這個過程也就是實現(xiàn)驅(qū)動接口的過程,需要操作系統(tǒng)通過驅(qū)動接口提供集合和代碼。以往的開發(fā)方法會涉及到供應(yīng)商和制造商以及集成商,需要三方面主體的配合。
計算機(jī)驅(qū)動程序是一種可以向操作系統(tǒng)提供硬件設(shè)備的接口的特殊程序,驅(qū)動的主要功能就是將請求轉(zhuǎn)換為操作序列。驅(qū)動接口實際上是一種接口的集合,由操作系統(tǒng)提供給計算機(jī)驅(qū)動。主要是由內(nèi)核中的子系統(tǒng)來提供這一功能,除此之外,驅(qū)動接口還為計算機(jī)提供以太網(wǎng)卡設(shè)備驅(qū)動等相關(guān)性服務(wù)[1]。計算機(jī)驅(qū)動程序在發(fā)揮其功能時實際上就是編寫實現(xiàn)代碼的一個過程,主要就是輸入和輸出操作,主要是針對設(shè)備寄存器和內(nèi)存進(jìn)行的相關(guān)操作,實現(xiàn)對設(shè)備的控制。該過程還會涉及到其他內(nèi)核的服務(wù),主要以子系統(tǒng)提供的服務(wù)為主,還有內(nèi)核提供的服務(wù)。除此之外,還要做到了解基本的平臺信息??偟膩碚f,在計算機(jī)驅(qū)動程序發(fā)揮功能時主要用到的接口和資源包括操作系統(tǒng)提供的驅(qū)動接口、內(nèi)核、C庫、子系統(tǒng)、設(shè)備的訪問接口及寄存器和系統(tǒng)的平臺資源。計算機(jī)的驅(qū)動程序功能的發(fā)揮主要依據(jù)上述接口和資源,進(jìn)行交互,涉及平臺、設(shè)備以及操作系統(tǒng)三個主要的對象。
1.2 原本的開發(fā)方法
芯片的制造商會依據(jù)編寫出來的描述語言或者其他的手段進(jìn)行芯片的生產(chǎn),然后系統(tǒng)集成商會根據(jù)需要購買芯片,將其集成到平臺上,目標(biāo)計算機(jī)系統(tǒng)就此誕生,這是硬件方面的開發(fā)方法。關(guān)于軟件的開發(fā)方法,操作系統(tǒng)的開發(fā)商會提供一個操作平臺,同時將芯片的有關(guān)資料集成到電路上[2]。相關(guān)的開發(fā)人員會開發(fā)出每個系統(tǒng)下面的驅(qū)動程序,提供這一類的接口的集合和基本的內(nèi)核服務(wù)以及子系統(tǒng)服務(wù)等,把知識有效地轉(zhuǎn)換成代碼,驅(qū)動程序也就建立成功。但是,要想正確地運(yùn)行需要對各種資源進(jìn)行整合然后再將其轉(zhuǎn)換成程序代碼。
2 模塊化分析、接口的設(shè)計及實現(xiàn)
2.1 模塊化分析
模塊化實際上是生產(chǎn)過程中的一種分工的思想,能夠有效解決很多復(fù)雜的問題。用在軟件開發(fā)方面就是將待開發(fā)的軟件進(jìn)行劃分,使之成為較小的部分,稱之為模塊,然后針對每個模塊進(jìn)行單獨(dú)的開發(fā)和測試,最終整合成完整的軟件。模塊化方法的應(yīng)用對于解決復(fù)雜軟件的開發(fā)問題非常有效,并且具有靈活的特點,也更容易刺激創(chuàng)新成果的出現(xiàn),也會加強(qiáng)專業(yè)化的程度。軟件開發(fā)的模塊化方法主要涉及兩部分,即接口和實現(xiàn)。
2.2 操作系統(tǒng)
該模塊的主要作用就是讀取平臺上硬件的配置參數(shù),對計算機(jī)模塊的接口進(jìn)行調(diào)用,同時完成內(nèi)核的交互,實現(xiàn)驅(qū)動接口。除此之外,還要為計算機(jī)各模塊提供基本的內(nèi)核服務(wù)。在模塊化之后,操作系統(tǒng)還要調(diào)用系統(tǒng)平臺提供的具體參數(shù)。該模塊的組成也是依靠驅(qū)動接口的集合和代碼。
2.3 設(shè)備
設(shè)備模塊的作用就是能夠直接和設(shè)備的輸出輸入端進(jìn)行交互,并且能夠提供一層接口來對設(shè)備的運(yùn)行進(jìn)行控制,也就是設(shè)備控制層,其中包括屬性和狀態(tài)的描述,還有一些調(diào)用接口。其中包括一些代碼的實現(xiàn)以及對很多資源和接口的調(diào)用。
2.4 系統(tǒng)平臺
該模塊主要是給設(shè)備提供硬件環(huán)境,并且也能夠為其他設(shè)備所用。能夠提供設(shè)備的地質(zhì)空間,有效的提升計算機(jī)的工作效率,使得所有的硬件都能夠在計算機(jī)的運(yùn)行過程中發(fā)揮各自的作用??偟膩碚f,計算機(jī)的正常運(yùn)行離不開中央處理器、內(nèi)存等,系統(tǒng)平臺模塊能夠完整的提供這些硬件的描述。
3 結(jié)束語
通過對模塊設(shè)備驅(qū)動程序及其開發(fā)途徑來分析計算機(jī)驅(qū)動程序的模塊開發(fā),然后針對模塊開發(fā)中三個重要的模塊進(jìn)行分析,包括操作系統(tǒng)、設(shè)備和系統(tǒng)平臺。還對三個模塊的關(guān)系及其設(shè)計中的一些基本問題做了簡單的探討,與業(yè)內(nèi)人士共同學(xué)習(xí)。
參考文獻(xiàn)
[1]劉振宇,王恒.基于形式化方法的測試驅(qū)動開發(fā)研究[J].計算機(jī)工程與設(shè)計,2008,29(15):3944-3946.
[2]季義欽.模塊化設(shè)備驅(qū)動開發(fā)途徑研究[D].南京:南京大學(xué),2013.
作者簡介:林支朋(1980,01-),男,漢族,江蘇寶應(yīng),學(xué)位:學(xué)士,研究方向:計算機(jī)科學(xué)與技術(shù)。