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