亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

靜態(tài)設(shè)備驅(qū)動程序的動態(tài)擴展的制作方法

文檔序號:6413761閱讀:225來源:國知局
專利名稱:靜態(tài)設(shè)備驅(qū)動程序的動態(tài)擴展的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及計算機系統(tǒng),尤其涉及一種不需重建操作系統(tǒng)而擴展靜態(tài)設(shè)備驅(qū)動程序功能的方法。
常規(guī)的計算機系統(tǒng)10的基本結(jié)構(gòu)示于

圖1。計算機系統(tǒng)10的中心部件是中央處理部件(CPU)或處理器12,它與多個外圍設(shè)備相連,他們是與用戶接口的輸入/輸出(I/O)設(shè)備14(如顯示器及鍵盤),用于存儲計算機操作系統(tǒng)及用戶程序的永久存儲設(shè)備16(如硬盤或軟盤),及由處理器12所使用以執(zhí)行程序指令的暫時存儲設(shè)備18(如隨機訪問存儲器或RAM)。處理器12通過總線20或直接通道22等各種方式與外圍設(shè)備通信。計算機系統(tǒng)10還有許多未圖示的附加部件,如用于連接調(diào)制解調(diào)器或打印機等的串行及并行口等。熟練的技術(shù)人員將能理解,還有一些其它部件可以與示于圖1的方框圖中的部件相連使用;如,可以有一顯示適配器與處理器12相連,用于控制視頻顯示監(jiān)視器。各種不同類型的設(shè)備驅(qū)動程序(軟件程序)用于控制硬件設(shè)備。
計算機系統(tǒng)10還包括固件24,其基本功能是當計算機第一次開機時從一個外圍設(shè)備(經(jīng)常是永久存儲設(shè)備16)中查找并裝入操作系統(tǒng)。查找和裝入操作系統(tǒng)的過程被稱為“引導(dǎo)”計算機可以將計算機系統(tǒng)10設(shè)計成不需關(guān)閉計算機及再開機就可以讓固件24重新初始化一個操作系統(tǒng)(“軟”引導(dǎo))。固件24實際上是被典型地存儲在如只讀存儲器(ROM)等的只讀存儲(ROS)設(shè)備上的一系列機器指令。如圖2的流程圖所示,計算機系統(tǒng)10的電源打開后,處理器12開始執(zhí)行固件指令并查找操作系統(tǒng)(26)。若找到操作系統(tǒng),則將其裝入(28)暫時存儲器18,其中包括呈現(xiàn)在操作系統(tǒng)映象中的任何一種設(shè)備驅(qū)動程序。這些設(shè)備驅(qū)動程序使得系統(tǒng)與適當?shù)挠布ㄐ?。然后,例如若引?dǎo)序列后硬件設(shè)備已連到計算機系統(tǒng)上,則操作系統(tǒng)(30)可以動態(tài)地裝入附加的設(shè)備驅(qū)動程序。最后,操作系統(tǒng)允許加入其它應(yīng)用層,如用戶軟件程序(32)。
以上描述一般應(yīng)用于任何一種類型的操作系統(tǒng),包括兩種最常用的操作系統(tǒng)MSDOS和UNIX(MSDOS是微軟公司的注冊商標;UNIX是UNIX系統(tǒng)實驗室的注冊商標)。但是本發(fā)明尤其適用于UNIX。UNIX是一個具有不同版本的多個來源的多用戶、多任務(wù)操作系統(tǒng)。其中包括System V(美國電報電話公司)、AIX(國際商業(yè)機器公司)及Mach(NeXT計算機公司(。圖3示出了典型的UNIX工作站34。工作站34包括示于圖1的各種硬件部件,在圖3中用36表示,此外還包括兩個軟件層,內(nèi)核部分38及用戶應(yīng)用層40。內(nèi)核部分36是操作系統(tǒng)的最低層并且是用戶程序和硬件設(shè)備之間的媒介,其中包括與硬件控制42接口的設(shè)備驅(qū)動程序。內(nèi)核部分38包括靜態(tài)設(shè)備驅(qū)動程序44,它們在初始化時與內(nèi)核部分最先連接在一起,內(nèi)核部分還包括動態(tài)裝入的設(shè)備驅(qū)動程序46,它們在初始化后加到內(nèi)核部分。動態(tài)裝入設(shè)備驅(qū)動程序可以為單獨的設(shè)備所使用,也可以作為通用靜態(tài)設(shè)備驅(qū)動程序的簡單替換。兩種類型的設(shè)備驅(qū)動程序通常都可以為設(shè)備轉(zhuǎn)換表48等緩沖機構(gòu)所訪問。
設(shè)備驅(qū)動程序常依賴于硬件,在裝入或使用具體的硬件設(shè)備時,程序常出現(xiàn)問題。若內(nèi)核中尚未有適用于一新的設(shè)備的驅(qū)動程序(即靜態(tài)連接)并且沒有可用的動態(tài)可裝入驅(qū)動程序,則內(nèi)核部分必須與一新的靜態(tài)設(shè)備驅(qū)動程序重新連接。若動態(tài)可裝入驅(qū)動程序是可用的,則其可以輕易地作為內(nèi)核擴展部分裝入,但是,在有些情況下,系統(tǒng)所需要的某些設(shè)備或硬件功能必須通過連接在內(nèi)核部分的靜態(tài)設(shè)備驅(qū)動程序才能提供,這是由于它們所需要的設(shè)備必須在裝入內(nèi)核擴展部分之前就存在。這些功能包括例如NVRAM,RAMDD及控制臺設(shè)備驅(qū)動程序。這時,增強靜態(tài)設(shè)備驅(qū)動程序功能或能力的唯一辦法是重建基本內(nèi)核部分。同樣的,一旦靜態(tài)設(shè)備驅(qū)動程序裝入后,就不能再修改。例如,靜態(tài)設(shè)備驅(qū)動程序中可能有缺陷(軟件指令錯誤),但是在內(nèi)核部分重建之前它是不能被修改的。因此,特別希望設(shè)計一種不需重建內(nèi)核部分或重新引導(dǎo)操作系統(tǒng)就能改變靜態(tài)連接的設(shè)備驅(qū)動程序功能的方法。
本發(fā)明的一個目的是提供一種改進的將設(shè)備驅(qū)動程序裝入計算機系統(tǒng)的方法。
本發(fā)明的另一個目的是提供一種允許修改靜態(tài)連接的設(shè)備驅(qū)動程序的方法。
本發(fā)明的再一個目的是提供一種不需重建操作系統(tǒng)就能修改靜態(tài)連接的設(shè)備驅(qū)動程序的方法。
以上目的可通過對計算機系統(tǒng)中的設(shè)備進行控制的方法得以實現(xiàn),該方法一般包括如下步驟將靜態(tài)設(shè)備驅(qū)動程序裝入計算機系統(tǒng)的內(nèi)存中,然后使用擴展驅(qū)動程序動態(tài)地擴展靜態(tài)設(shè)備驅(qū)動程序,其中擴展驅(qū)動程序注冊到靜態(tài)設(shè)備驅(qū)動程序中。靜態(tài)設(shè)備驅(qū)動程序具有用于控制設(shè)備的多個驅(qū)動程序或功能(如輸入/輸出功能)。盡管擴展驅(qū)動程序可以改變幾個或全部功能,但它至少修改其中一個功能。在實施例中計算機系統(tǒng)是一個內(nèi)核部分駐留在內(nèi)存中的UNIX類型的工作站,靜態(tài)設(shè)備驅(qū)動程序在內(nèi)核部分,并且通過為擴展驅(qū)動程序提供至少一個入口點被動態(tài)擴展。
通過以下的詳細描述,本發(fā)明以上及其它目的,特征和優(yōu)點將更清楚。
本發(fā)明的新穎特征在附加的權(quán)利要求書中。通過以下實施例及附圖的描述,將能更好地理解本發(fā)明及其優(yōu)選方式及其進一步的目的和優(yōu)點。其中圖1是現(xiàn)有技術(shù)中計算機操作系統(tǒng)的方框圖。
圖2是示出計算機如何裝入具有與操作系統(tǒng)連接在一起的靜態(tài)設(shè)備驅(qū)動程序的現(xiàn)有技術(shù)的操作系統(tǒng),然后在操作系統(tǒng)裝入之后動態(tài)裝入可裝入的設(shè)備驅(qū)動程序的流程圖。
圖3是現(xiàn)有技術(shù)中具有靜態(tài)和動態(tài)設(shè)備驅(qū)動程序的現(xiàn)有技術(shù)UNIX類型工作站的方框圖。
圖4是根據(jù)本發(fā)明配置的具有注冊的擴展驅(qū)動程序的UNIX類型工作站方框圖。
圖5是示出根據(jù)本發(fā)明計算機如何裝入具有靜態(tài)設(shè)備驅(qū)動程序的操作系統(tǒng),靜態(tài)設(shè)備驅(qū)動程序中可以注冊擴展驅(qū)動程序,及靜態(tài)驅(qū)動程序如何動態(tài)地訪問已注冊的擴展驅(qū)動程序的流程圖。
現(xiàn)在參考附圖,尤其是圖4,其中展示了根據(jù)本發(fā)明的UNIX類型工作站實施例50。工作站50一般包括如圖1所示的同樣的基本硬件,其中一部分示于52,但是工作站50具有裝入在內(nèi)核部分54的新穎操作系統(tǒng),該操作系統(tǒng)允許登記擴展的靜態(tài)設(shè)備驅(qū)動程序。內(nèi)核部分54具有與其連接在一起的靜態(tài)設(shè)備驅(qū)動程序56,并包括與設(shè)備驅(qū)動程序的輸出相連的常規(guī)的硬件控制器58。通過常規(guī)的設(shè)備轉(zhuǎn)換表60訪問靜態(tài)設(shè)備驅(qū)動程序56,其中轉(zhuǎn)換表是與用戶應(yīng)用程序62之間的接口。內(nèi)核部分54還包括“注冊”到靜態(tài)設(shè)備驅(qū)動程序56的擴展驅(qū)動程序64,擴展驅(qū)動程序用于控制硬件控制器58,但不是由設(shè)備轉(zhuǎn)換表訪問。而是由靜態(tài)設(shè)備驅(qū)動程序56注冊專門的驅(qū)動程序或功能(如open(打開)、read(讀取)、ioctl(輸入輸出控制)或其它I/O控制功能)從而為正在被訪問的專門設(shè)備的那些功能提供處理入口點。
這種方案使得在還需要靜態(tài)引導(dǎo)時間功能性時可以動態(tài)地擴展靜態(tài)設(shè)備驅(qū)動程序的功能以得到可裝入設(shè)備驅(qū)動程序的靈活性。其中一個這樣的例子是在系統(tǒng)初始化的較后的點,內(nèi)核擴展部分根據(jù)調(diào)用一個靜態(tài)設(shè)備驅(qū)動程序的一個功能ioctl,可以向它自己注冊被調(diào)用的ioctl()驅(qū)動程序。該例子還可以擴展到其它的設(shè)備驅(qū)動程序入口點。這樣,用戶不需重新連接內(nèi)核部分就可以改變靜態(tài)連接的設(shè)備驅(qū)動程序的功能。這種適用性允許用戶增強設(shè)備驅(qū)動程序如提供硬件專用微分器,或者修改驅(qū)動程序如改正錯誤。
使用注冊的設(shè)備擴展的計算機系統(tǒng)的典型操作示于圖5,系統(tǒng)加電后(或執(zhí)行軟引導(dǎo)命令后),固件查找是裝入的操作系統(tǒng)(70)。然后包括所有靜態(tài)設(shè)備驅(qū)動程序的操作系統(tǒng)被裝入主存儲器(72),這些驅(qū)動程序被配置成能根據(jù)設(shè)備驅(qū)動程序入口點(74)識別擴展功能。例如,若調(diào)用了靜態(tài)NVRAM讀/寫設(shè)備驅(qū)動程序入口點,則驅(qū)動程序首先檢查是否有任何一種對應(yīng)于該入口點的注冊的擴展功能,若有,則調(diào)用注冊的擴展功能。該擴展功能檢測NVRAM請求的偏移并確定該偏移是否在它所控制的NVRAM設(shè)備中。若在,擴展功能將服務(wù)該請求,否則將控制權(quán)還給靜態(tài)驅(qū)動程序,靜態(tài)驅(qū)動程序接著調(diào)用下一個已注冊的擴展功能或者,如果合適的話,自己處理請求。當裝入操作系統(tǒng)并注冊完所有的驅(qū)動程序擴展功能后,執(zhí)行正常的用戶程序(76)。接著,一旦應(yīng)用程序向具有注冊的擴展功能的靜態(tài)設(shè)備驅(qū)動程序發(fā)送功能調(diào)用時,靜態(tài)驅(qū)動程序重定路徑,調(diào)用擴展功能(78)。這樣,注冊使得注冊功能代替一具體的功能或為靜態(tài)驅(qū)動程序增加新的功能。
在本發(fā)明的一個具體實施方案中,AIX操作系統(tǒng)被修改以提供一個機器設(shè)備驅(qū)動程序(/dev/nuram),該驅(qū)動程序為一個靜態(tài)設(shè)備驅(qū)動程序,用于在可能動態(tài)地裝入進一步的支持之前提供所需要的基本功能。但是,通過使用為機器設(shè)備驅(qū)動程序注冊的專用擴展文件,可以得到該機器專用的附加功能。該方法使得將公用的靜態(tài)功能保留在基本操作系統(tǒng)中,而將機器專用的功能放入適當?shù)膬?nèi)核擴展部分,只在運行期間將其動態(tài)地裝入和注冊進機器設(shè)備驅(qū)動程序。
注冊的擴展驅(qū)動程序64不象動態(tài)裝入的驅(qū)動程序,它經(jīng)常不是完全的驅(qū)動程序,即擴展程序常常僅修改驅(qū)動程序功能的一部分。注冊擴展功能部能完全替代某個靜態(tài)驅(qū)動程序的所有功能,或者可以使用兩個或更多的注冊擴展功能替代所有的基本功能。熟練的技術(shù)人員將能理解,根據(jù)本發(fā)明構(gòu)建的操作系統(tǒng)除了能夠動態(tài)裝入注冊的驅(qū)動程序擴展功能64外,還能動態(tài)裝入驅(qū)動程序(未示于圖4)。
盡管本發(fā)明是根據(jù)具體實施例描述的,但是該描述不具有限制意義。熟練的技術(shù)人員可以根據(jù)本發(fā)明的描述對公開的實施例作各種修改或做出其它替代的實施例。因此在不偏離本發(fā)明的精神和范圍內(nèi)的這種修改附在權(quán)利要求書中。
權(quán)利要求
1.一種在具有內(nèi)存的計算機系統(tǒng)中提供控制一臺設(shè)備的方法,包括如下步驟將靜態(tài)設(shè)備驅(qū)動程序裝入計算機系統(tǒng)的內(nèi)存中,靜態(tài)設(shè)備驅(qū)動程序具有用于控制該設(shè)備的多個功能的模塊;及使用擴展驅(qū)動程序動態(tài)地擴展靜態(tài)設(shè)備驅(qū)動程序。
2.如權(quán)利要求1所述的方法,其特征在于,靜態(tài)設(shè)備驅(qū)動程序根據(jù)來自于用戶應(yīng)用程序的功能調(diào)用被動態(tài)地擴展。
3.如權(quán)利要求1所述的方法,其特征在于,靜態(tài)設(shè)備驅(qū)動程序被作為將操作系統(tǒng)裝入計算機系統(tǒng)的更進一步步驟的一部分而被裝入。
4.如權(quán)利要求1所述的方法,其特征在于,計算機系統(tǒng)是具有駐留于內(nèi)存的內(nèi)核部分的UNIX類型工作站;靜態(tài)設(shè)備驅(qū)動程序被裝入內(nèi)核部分;及通過為擴展驅(qū)動程序提供至少一個入口點來動態(tài)地擴展靜態(tài)設(shè)備驅(qū)動程序。
5.如權(quán)利要求1所述的方法,其特征在于,通過在靜態(tài)設(shè)備驅(qū)動程序中對擴展驅(qū)動程序進行注冊來動態(tài)地擴展靜態(tài)設(shè)備驅(qū)動程序。
6.如權(quán)利要求1所述的方法,其特征在于,擴展驅(qū)動程序至少修改靜態(tài)設(shè)備驅(qū)動程序的多個功能中的一個。
7.如權(quán)利要求1所述的方法,其特征在于,擴展驅(qū)動程序提供一個新的功能以控制該設(shè)備。
8.如權(quán)利要求1所述的方法,其特征在于,擴展驅(qū)動程序也裝入計算機的內(nèi)存中。
9.如權(quán)利要求6所述的方法,其特征在于,至少一個功能是輸入/輸出功能。
10.如權(quán)利要求6所述的方法,其特征在于,通過向擴展驅(qū)動程序注冊至少一個功能來動態(tài)地擴展靜態(tài)設(shè)備驅(qū)動程序。
11.一種計算機系統(tǒng),包括硬件設(shè)備;內(nèi)存設(shè)備,存儲用于控制所述硬件設(shè)備的靜態(tài)設(shè)備驅(qū)動程序;處理器設(shè)備,執(zhí)行所述靜態(tài)設(shè)備驅(qū)動程序中的指令以控制所述硬件設(shè)備;及向所述靜態(tài)設(shè)備驅(qū)動程序注冊的擴展設(shè)備驅(qū)動程序,使得發(fā)送到所述硬件設(shè)備的功能調(diào)用被所述靜態(tài)設(shè)備驅(qū)動程序重定路徑到所擴展設(shè)備驅(qū)動程序。
12.如權(quán)利要求11所述的計算機系統(tǒng),其特征在于,所述靜態(tài)設(shè)備驅(qū)動程序提供多個用于控制所述硬件設(shè)備的功能;及所述靜態(tài)設(shè)備驅(qū)動程序?qū)⒁粋€功能調(diào)用重定路徑到所述擴展設(shè)備驅(qū)動程序并僅調(diào)用所述功能中的一個。
13.如權(quán)利要求11所述的計算機系統(tǒng),其特征在于,所述靜態(tài)設(shè)備驅(qū)動程序提供多個用于控制所述硬件設(shè)備的功能;及所述靜態(tài)設(shè)備驅(qū)動程序?qū)⒁粋€功能調(diào)用重定路徑到所述擴展設(shè)備驅(qū)動程序以調(diào)用所述功能中的至少兩個。
14.如權(quán)利要求11所述的計算機系統(tǒng),其特征在于,計算機系統(tǒng)是具有駐留在所述內(nèi)存設(shè)備中的內(nèi)核部分的UNIX類型工作站;所述靜態(tài)設(shè)備驅(qū)動程序被裝入所述內(nèi)核部分;及所述靜態(tài)設(shè)備驅(qū)動程序通過為所述擴展設(shè)備驅(qū)動程序提供一個入口點從而為所述功能調(diào)用重定路徑。
15.如權(quán)利要求11所述的計算機系統(tǒng),其特征在于,所述擴展設(shè)備驅(qū)動程序提供一個用于控制設(shè)備的新的功能。
16.如權(quán)利要求14所述的計算機系統(tǒng),其特征在于,內(nèi)核部分包括一個硬件控制單元,并且所述擴展設(shè)備驅(qū)動程序直接與所述硬件控制單元接口。
全文摘要
一種通過使用注冊的擴展驅(qū)動程序動態(tài)地擴展靜態(tài)設(shè)備驅(qū)動程序以改變靜態(tài)連接的設(shè)備驅(qū)動程序的功能的方法,靜態(tài)設(shè)備驅(qū)動程序具有多個用于控制與計算機系統(tǒng)相連或部分相連的設(shè)備的驅(qū)動程序或功能(如輸入/輸出功能),擴展驅(qū)動程序至少修改這些功能中的一種。計算機系統(tǒng)是一個具有駐留在內(nèi)存的內(nèi)核部分的UNIX類型工作站,靜態(tài)設(shè)備驅(qū)動程序被裝入內(nèi)核并且通過為擴展驅(qū)動程序提供至少一個入口點來動態(tài)擴展之。
文檔編號G06F13/10GK1193774SQ98103839
公開日1998年9月23日 申請日期1998年2月16日 優(yōu)先權(quán)日1997年3月17日
發(fā)明者布魯斯·杰勒德·米利, 蘭德爾·克雷格·斯旺伯格, 邁克爾·斯蒂芬·威廉斯 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1