專利名稱:應(yīng)用于Java操作系統(tǒng)中的設(shè)備搜尋器實現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及Java操作系統(tǒng),尤其是涉及一種應(yīng)用于Java操作系統(tǒng)中的設(shè)備搜尋器實現(xiàn)方法。
背景技術(shù):
目前,實現(xiàn)Java平臺主要有三種方式Java虛擬機以虛擬機運行在現(xiàn)有操作系統(tǒng)之上,實現(xiàn)Java程序的運行。這種方式由于其簡易、低代價等特點,是現(xiàn)在最常用的一種。
Java操作系統(tǒng)這種方式又分為兩種1.將Java虛擬機整合進現(xiàn)有的操作系統(tǒng);2開發(fā)一種全新的獨立的基于Java的操作系統(tǒng)。這種方式省去了虛擬機到操作系統(tǒng)那一層的通訊和調(diào)度,因而較之虛擬機的方式有效率的提高。但要開發(fā)一個全新的操作系統(tǒng)并提供相關(guān)的支持(包括驅(qū)動程序支持和應(yīng)用軟件支持)代價也是非常大的。
Java芯片這種方式將操作系統(tǒng)這一軟件的架構(gòu)整合進了芯片之中,或者打造一個全新的Java專用芯片。由于采用硬件的方式來解決軟件的問題,這種方式的性能比較前兩種都有更大的提升,但缺點也是顯而易見的喪失了Java的跨平臺特性。
可以看出,Java操作系統(tǒng)是性能和通用性的一種折中。而且根據(jù)一些測試數(shù)據(jù)表明,Java操作系統(tǒng)的性能已不輸于傳統(tǒng)的其他操作系統(tǒng)。
在操作系統(tǒng)發(fā)展歷史上,設(shè)備支持方法經(jīng)歷了很復雜的變遷,一直到微軟公司的Windows95才開始支持即插即用,之后在一些服務(wù)器平臺上才出現(xiàn)了支持熱插拔的操作系統(tǒng)。因為即插即用和熱插拔技術(shù)出現(xiàn)時間前后相隔較長,而且側(cè)重應(yīng)用在不同的平臺上,所以兩種技術(shù)往往是分開實現(xiàn)。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種應(yīng)用于Java操作系統(tǒng)中的設(shè)備搜尋器實現(xiàn)方法。
本發(fā)明解決技術(shù)問題所采用的技術(shù)方案如下1)支持系統(tǒng)啟動時即插即用設(shè)備的搜尋和初始化Java操作系統(tǒng)完成內(nèi)核加載自檢后,按如下步驟初始化設(shè)備①運行設(shè)備搜尋器按照設(shè)備總線編號從小到大依次搜尋每條總線;
②對每條總線,按照總線插槽編號從小到大依次搜尋即插即用設(shè)備;③在設(shè)備信息數(shù)據(jù)庫中搜索設(shè)備識別字符串,對搜索到的每個設(shè)備加以識別,生成唯一的設(shè)備標志號;④將識別出的設(shè)備的標志號連同設(shè)備位置,即設(shè)備所在總線編號和插槽編號,登記到設(shè)備管理器中;2)支持系統(tǒng)運行時設(shè)備的熱插拔Java操作系統(tǒng)運行時,如有新的設(shè)備連接到設(shè)備總線上,則按照如下步驟初始化設(shè)備①根據(jù)設(shè)備總線上發(fā)出的中斷信號獲得新加入設(shè)備的位置;②在設(shè)備信息數(shù)據(jù)庫中搜索設(shè)備識別字符串,對新加入設(shè)備加以識別,生成唯一的設(shè)備標志號;③將識別出的設(shè)備的標志號連同設(shè)備位置,即設(shè)備所在總線編號和插槽編號,登記到設(shè)備管理器中;3)用統(tǒng)一的方法支持1)和2),從而支持所有即插即用設(shè)備的熱插拔1)中步驟和③和2)中步驟②一致,1)步驟④和2)中步驟③一致,差別僅在于2)中設(shè)備位置信息是第①步從設(shè)備總線中斷中獲得,而1)中是通過第①②步枚舉每一個位置來搜尋,因此可以支持所有即插即用設(shè)備的熱插拔。
本發(fā)明具有的有益效果是本發(fā)明在設(shè)計時就充分綜合系統(tǒng)初始化和熱拔插兩種技術(shù)??紤]到這兩種技術(shù)本身非常類似,所以其實完全可以用同一種方法來實現(xiàn)。在這個用統(tǒng)一的接口實現(xiàn)即插即用和熱插拔的設(shè)備搜索器的支持下,設(shè)備驅(qū)動程序也就不需要同時考慮即插即用的支持和熱插拔的支持問題了。這樣就大大簡化了系統(tǒng)設(shè)計,也簡化了驅(qū)動程序的設(shè)計,并且可以支持所有即插即用設(shè)備的熱插拔
附圖是本發(fā)明的流程圖。
具體實施例方式
設(shè)備支持是任何一個操作系統(tǒng)都要解決的問題?,F(xiàn)代的硬件設(shè)備發(fā)展有兩個趨勢,一是設(shè)備種類和型號越來越豐富,二是設(shè)備接口越來越趨向于標準化、統(tǒng)一化。第一種趨勢要求操作系統(tǒng)能夠識別、支持越來越多的設(shè)備,第二種趨勢則方便了操作系統(tǒng)對設(shè)備的支持。
從即插即用設(shè)備概念提出至今,現(xiàn)在的大多數(shù)設(shè)備都已經(jīng)符合即插即用標準;并且為了使用方便,越來越多的設(shè)備都開始支持熱插拔。因為歷史原因,即插即用和熱插拔屬于兩個不同的技術(shù),但是事實上它們在本質(zhì)上差不多完全一致?;谶@點考慮,Java操作系統(tǒng)可以采用本發(fā)明所示的設(shè)備搜尋器來同時支持設(shè)備即插即用和熱插拔。
如附圖所示,本發(fā)明所采用的技術(shù)方案如下1)支持系統(tǒng)啟動時即插即用設(shè)備的搜尋和初始化Java操作系統(tǒng)完成內(nèi)核加載自檢后,按如下步驟初始化設(shè)備①運行設(shè)備搜尋器按照設(shè)備總線編號從小到大依次搜尋每條總線②對每條總線,按照總線插槽編號從小到大依次搜尋即插即用設(shè)備③對搜索到的每個設(shè)備加以識別,生成唯一的設(shè)備標志號。
本發(fā)明支持已安裝設(shè)備的自動。所謂自動識別,就是自動根據(jù)探測設(shè)備的各項參數(shù),從已知的設(shè)備信息數(shù)據(jù)庫中搜索匹配。這只需要把各大硬件廠商的產(chǎn)品信息列舉出來即可,并且因為現(xiàn)在的硬件廠商基本上都遵循某一種或某幾種接口標準,所以設(shè)備類型雖然繁多,卻容易加以枚舉;并且如果Java操作系統(tǒng)中事先并沒有某種設(shè)備的信息,也可以安裝此種設(shè)備的驅(qū)動程序,隨后系統(tǒng)所支持的設(shè)備列表中就自動添加了這種設(shè)備,以后就可以對這種設(shè)備進行自動識別。所以一般來說,設(shè)備識別的步驟如下所示I檢測設(shè)備類型、廠家、型號等信息,按照設(shè)備識別標志的格式生成設(shè)備識別字符串。
II用設(shè)備識別字符串作為索引,在Java操作系統(tǒng)的已知設(shè)備信息數(shù)據(jù)庫中進行搜索匹配。
III如果找到,則匹配成功,生成唯一的設(shè)備標志號。
IV如未找到,則標記匹配失敗,需要用戶手工安裝設(shè)備驅(qū)動程序后才能識別。在用戶安裝合適的設(shè)備驅(qū)動后,Java操作系統(tǒng)會自動運行設(shè)備搜尋器,搜索到相應(yīng)的之前未正確識別的設(shè)備,然后重復I、II、III的步驟,完成設(shè)備識別。
④將識別出的設(shè)備的標志號連同設(shè)備位置,即設(shè)備所在總線編號和插槽編號,登記到設(shè)備管理器中2)支持系統(tǒng)運行時設(shè)備的熱插拔Java操作系統(tǒng)運行時,如有新的設(shè)備連接到設(shè)備總線上,則按照如下步驟初始化設(shè)備①根據(jù)設(shè)備總線上發(fā)出的中斷信號獲得新加入設(shè)備的位置②對新加入設(shè)備加以識別,生成唯一的設(shè)備標志號。
本發(fā)明支持以安裝設(shè)備的動態(tài)識別。所謂動態(tài)識別,就是前面所述的在熱插拔時,要隨時響應(yīng)設(shè)備插入的中斷信號,及時地對設(shè)備加以識別,也就是動態(tài)地調(diào)用設(shè)備搜尋器,并對熱插拔的設(shè)備自動識別。
能夠隨時自動相應(yīng)設(shè)備的插入事件,歸功于設(shè)備總線在發(fā)現(xiàn)有新設(shè)備插入時,會發(fā)生一個中斷,通知CPU有新設(shè)備插入。Java操作系統(tǒng)對這一中斷的處理過程中最后包含了調(diào)用設(shè)備搜尋器,并把發(fā)生中斷的總線編號以及新插入設(shè)備所在的插槽編號作為參數(shù)傳遞給設(shè)備搜尋器。
此后,設(shè)備搜尋器就按照1)中的步驟③,依次執(zhí)行I、II、III、IV,完成設(shè)備識別過程。
③將識別出的設(shè)備的標志號連同設(shè)備位置,即設(shè)備所在總線編號和插槽編號,登記到設(shè)備管理器中其中最關(guān)鍵的是用統(tǒng)一的方法支持設(shè)備即插即用和熱插拔1)中步驟和③和2)中步驟②一致,1)步驟④和2)中步驟③一致,差別僅在于2)中設(shè)備位置信息是第①步從設(shè)備總線中斷中獲得,而1)中是通過第①②步枚舉每一個位置來搜尋。所以本發(fā)明使得Java操作系統(tǒng)可以支持所有即插即用設(shè)備的熱插拔。
現(xiàn)在這個計算機上安裝了應(yīng)用了本發(fā)明的Java操作系統(tǒng)。系統(tǒng)加電啟動后,經(jīng)過最初的自檢和操作系統(tǒng)引導,就進入1)設(shè)備搜尋和初始化階段,假設(shè)三個設(shè)備都能被識別①運行設(shè)備搜尋器先搜索總線1,找到插槽0上的設(shè)備A②對設(shè)備A加以檢測,假設(shè)發(fā)現(xiàn)A是一個CDRom,廠家是AAA,型號是CD001,于是生成設(shè)備識別字符串CDRom-AAA-CD001。
③對設(shè)備A加以識別,即從已知設(shè)備信息數(shù)據(jù)庫中查詢字符串CDRom-AAA-CD001,發(fā)現(xiàn)存在相應(yīng)記錄,生成唯一的設(shè)備標志號BUS1-SLOT0-CDROM。
④將設(shè)備A的標志號BUS1-SLOT0-CDROM和設(shè)備位置(BUS1,SLOT0)登記到設(shè)備管理器中。
⑤重復步驟①到④,將設(shè)備B、C依次識別出來,并登記到設(shè)備管理器中。
2)現(xiàn)在假設(shè)Java操作系統(tǒng)已經(jīng)在運行,運行中在總線2的插槽1上插入一個新設(shè)備D,于是執(zhí)行熱插拔支持
①D插入后,總線2會發(fā)出一個中斷,告知CPU在總線2的插槽1上新增加一個設(shè)備。于是操作系統(tǒng)就調(diào)用設(shè)備搜尋器去識別這個新設(shè)備,把設(shè)備的位置信息作為參數(shù)傳入。
②對新加入設(shè)備D加以檢測,假設(shè)發(fā)現(xiàn)D是一個攝像頭,廠家為DDD,型號為CAM001,于是生成設(shè)備生成識別字符串CAM-DDD-CAM001。
③對設(shè)備D加以識別,在已知設(shè)備信息數(shù)據(jù)庫中查詢字符串查詢CAM-DDD-CAM001。假設(shè)發(fā)現(xiàn)不能匹配,也就是識別失敗,說明操作系統(tǒng)中還缺乏該設(shè)備所需的驅(qū)動程序。
④通知用戶需要安裝驅(qū)動程序才能正確使用設(shè)備D。
⑤用戶安裝驅(qū)動程序后,Java操作系統(tǒng)會自動調(diào)用設(shè)備搜尋器,重復執(zhí)行①至③的操作,匹配成功后,生成唯一的設(shè)備標志號BUS2-SLOT1-CAM。
⑥將設(shè)備D的標志號BUS2-SLOT1-CAM和設(shè)備位置(BUS2,SLOT1)登記到設(shè)備管理器中。
本Java操作系統(tǒng)軟件已經(jīng)向中華人民共和國版權(quán)局申請計算機軟件著作權(quán)登記。
權(quán)利要求
1.一種應(yīng)用于Java操作系統(tǒng)中的設(shè)備搜尋器實現(xiàn)方法,其特征在于1)支持系統(tǒng)啟動時即插即用設(shè)備的搜尋和初始化Java操作系統(tǒng)完成內(nèi)核加載自檢后,按如下步驟初始化設(shè)備①運行設(shè)備搜尋器按照設(shè)備總線編號從小到大依次搜尋每條總線;②對每條總線,按照總線插槽編號從小到大依次搜尋即插即用設(shè)備;③在設(shè)備信息數(shù)據(jù)庫中搜索設(shè)備識別字符串,對搜索到的每個設(shè)備加以識別,生成唯一的設(shè)備標志號;④將識別出的設(shè)備的標志號連同設(shè)備位置,即設(shè)備所在總線編號和插槽編號,登記到設(shè)備管理器中;2)支持系統(tǒng)運行時設(shè)備的熱插拔Java操作系統(tǒng)運行時,如有新的設(shè)備連接到設(shè)備總線上,則按照如下步驟初始化設(shè)備①根據(jù)設(shè)備總線上發(fā)出的中斷信號獲得新加入設(shè)備的位置;②在設(shè)備信息數(shù)據(jù)庫中搜索設(shè)備識別字符串,對新加入設(shè)備加以識別,生成唯一的設(shè)備標志號;③將識別出的設(shè)備的標志號連同設(shè)備位置,即設(shè)備所在總線編號和插槽編號,登記到設(shè)備管理器中;3)用統(tǒng)一的方法支持1)和2),從而支持所有即插即用設(shè)備的熱插拔1)中步驟和③和2)中步驟②一致,1)步驟④和2)中步驟③一致,差別僅在于2)中設(shè)備位置信息是第①步從設(shè)備總線中斷中獲得,而1)中是通過第①②步枚舉每一個位置來搜尋,因此可以支持所有即插即用設(shè)備的熱插拔。
全文摘要
本發(fā)明公開了一種應(yīng)用于Java操作系統(tǒng)中的設(shè)備搜尋器實現(xiàn)方法?,F(xiàn)代的操作系統(tǒng)中往往支持設(shè)備的即插即用,同時也支持某些設(shè)備的熱插拔。但是對設(shè)備即插即用的支持和設(shè)備熱插拔的支持雖然本質(zhì)上非常相似,在現(xiàn)有的操作系統(tǒng)中卻都是分別以不同的方式實現(xiàn)。本法名系統(tǒng)啟動時的設(shè)備識別和初始化,也以同樣的方法負責系統(tǒng)運行時熱插拔設(shè)備的識別和初始化,把設(shè)備的即插即用支持和熱插拔支持統(tǒng)一起來,從而支持所有即插即用設(shè)備的熱插拔,促進了Java操作系統(tǒng)中設(shè)備支持的簡化和設(shè)備驅(qū)動程序開發(fā)的簡化。
文檔編號G06F9/445GK1804802SQ200610049100
公開日2006年7月19日 申請日期2006年1月16日 優(yōu)先權(quán)日2006年1月16日
發(fā)明者陳天洲, 戴鴻君, 葉敏嬌, 黃域 申請人:浙江大學