專利名稱:基于proc技術(shù)的虛擬串口熱插拔的實(shí)現(xiàn)方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種基于proc技術(shù)的虛擬串口熱插拔的實(shí)現(xiàn)方法及系統(tǒng)。
背景技術(shù):
目前,虛擬串口技術(shù)已經(jīng)得到廣泛應(yīng)用,其目的是采用TCP/IP網(wǎng)絡(luò)替換串口網(wǎng)絡(luò),保持第三方串口應(yīng)用軟件正常工作。開發(fā)虛擬串口驅(qū)動(dòng)是其中重要環(huán)節(jié)。根據(jù)虛擬串口 tty設(shè)備創(chuàng)建的時(shí)機(jī)可以分為靜態(tài)創(chuàng)建和動(dòng)態(tài)創(chuàng)建兩種方式,其中,動(dòng)態(tài)創(chuàng)建即所謂的熱插拔技術(shù)。熱插拔的實(shí)現(xiàn)需要預(yù)先建立信令通道,以便控制后續(xù)虛擬串口 tty設(shè)備(節(jié)點(diǎn)) 的創(chuàng)建,也就是媒體通道的建立。整個(gè)媒體通道包括tty設(shè)備和bridge橋接設(shè)備,Bridge 橋接設(shè)備(節(jié)點(diǎn))本身可以靜態(tài)或動(dòng)態(tài)創(chuàng)建。Bridge橋接設(shè)備的媒體和信令通道可以選擇的通信方式很多,如netlink、udev、pr0C等,相關(guān)技術(shù)中,bridge設(shè)備媒體和信令通道采用不同的通信機(jī)制實(shí)現(xiàn),這種混合方式帶來的問題是軟件架構(gòu)和實(shí)現(xiàn)復(fù)雜,不便于管理維護(hù)。 針對(duì)相關(guān)技術(shù)中上述問題,目前尚未提出有效的解決方案。
發(fā)明內(nèi)容
針對(duì)相關(guān)技術(shù)中,由于橋接設(shè)備(節(jié)點(diǎn))的媒體和信令通道采用不同的通信機(jī)制實(shí)現(xiàn),導(dǎo)致軟件架構(gòu)和實(shí)現(xiàn)較為復(fù)雜,不便于管理維護(hù)等問題,本發(fā)明提供一種基于proc 技術(shù)的虛擬串口熱插拔的實(shí)現(xiàn)方法及系統(tǒng),以解決上述問題至少之一。根據(jù)本發(fā)明的一個(gè)方面,提供一種基于proc技術(shù)的虛擬串口熱插拔的實(shí)現(xiàn)方法, 該方法包括構(gòu)建tty節(jié)點(diǎn)資源和proc節(jié)點(diǎn)資源,其中,tty節(jié)點(diǎn)資源包括tty節(jié)點(diǎn)的信息, proc節(jié)點(diǎn)資源包括proc節(jié)點(diǎn)的信息;獲取與tty節(jié)點(diǎn)資源對(duì)應(yīng)的tty驅(qū)動(dòng)資源、proc節(jié)點(diǎn)的驅(qū)動(dòng)信息和proc節(jié)點(diǎn);根據(jù)tty節(jié)點(diǎn)資源、proc節(jié)點(diǎn)資源、tty驅(qū)動(dòng)資源和獲取的proc 節(jié)點(diǎn),建立proc節(jié)點(diǎn)與所述tty節(jié)點(diǎn)的熱插拔功能的關(guān)聯(lián)關(guān)系。根據(jù)本發(fā)明的另一個(gè)方面,提供一種基于proc技術(shù)的虛擬串口熱插拔的實(shí)現(xiàn)系統(tǒng),該系統(tǒng)包括構(gòu)建模塊,用于構(gòu)建tty節(jié)點(diǎn)資源和proc節(jié)點(diǎn)資源,其中,tty節(jié)點(diǎn)資源包括tty節(jié)點(diǎn)的信息,proc節(jié)點(diǎn)資源包括proc節(jié)點(diǎn)的信息;獲取模塊,用于獲取與tty節(jié)點(diǎn)資源對(duì)應(yīng)的tty驅(qū)動(dòng)資源、proc節(jié)點(diǎn)的驅(qū)動(dòng)信息和proc節(jié)點(diǎn);關(guān)聯(lián)模塊,用于根據(jù)tty節(jié)點(diǎn)資源、proc節(jié)點(diǎn)資源、tty驅(qū)動(dòng)資源和獲取的proc節(jié)點(diǎn),建立與proc節(jié)點(diǎn)與tty節(jié)點(diǎn)的熱插拔功能的關(guān)聯(lián)關(guān)系。通過本發(fā)明,采用構(gòu)建proc節(jié)點(diǎn)資源和tty節(jié)點(diǎn)資源并建立proc節(jié)點(diǎn)和tty節(jié)點(diǎn)的關(guān)聯(lián),利用proc節(jié)點(diǎn)隨路方式實(shí)現(xiàn)熱插拔,解決了相關(guān)技術(shù)中由于橋接設(shè)備(節(jié)點(diǎn))的媒體和信令通道采用不同的通信機(jī)制實(shí)現(xiàn),導(dǎo)致軟件架構(gòu)和實(shí)現(xiàn)較為復(fù)雜,不便于管理維護(hù)等問題,進(jìn)而達(dá)到了從驅(qū)動(dòng)程序內(nèi)部設(shè)計(jì)設(shè)備節(jié)點(diǎn),增刪設(shè)備節(jié)點(diǎn)也無需知道主設(shè)備號(hào), 避免了靜態(tài)分配驅(qū)動(dòng)主設(shè)備號(hào)潛在的沖突可能,同時(shí)也避免了靜態(tài)分配節(jié)點(diǎn)潛在的資源浪費(fèi)的效果。
此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中圖1為根據(jù)本發(fā)明實(shí)施例的基于proc技術(shù)的虛擬串口熱插拔的實(shí)現(xiàn)方法流程圖;圖2為根據(jù)本發(fā)明優(yōu)選實(shí)施例的Iinux多虛擬串口驅(qū)動(dòng)實(shí)現(xiàn)原理示意圖;圖3為根據(jù)本發(fā)明優(yōu)選實(shí)施例的proc代理隨路方式實(shí)現(xiàn)熱插拔hotplug原理示意圖;圖4為根據(jù)本發(fā)明優(yōu)選實(shí)施例的proc代理隨路方式的方法流程示意圖;圖5為基于圖4所示實(shí)施例的卸載方法流程示意圖;圖6為根據(jù)本發(fā)明實(shí)施例的基于proc技術(shù)的虛擬串口熱插拔的實(shí)現(xiàn)系統(tǒng)的結(jié)構(gòu)框圖;圖7為根據(jù)本發(fā)明優(yōu)選實(shí)施例的基于proc技術(shù)的虛擬串口熱插拔的實(shí)現(xiàn)系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式下文中將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。圖1為根據(jù)本發(fā)明實(shí)施例的基于proc技術(shù)的虛擬串口熱插拔的實(shí)現(xiàn)方法流程圖。 如圖1所示,該方法包括步驟S102,構(gòu)建tty節(jié)點(diǎn)資源和proc節(jié)點(diǎn)資源,其中,tty節(jié)點(diǎn)資源包括tty節(jié)點(diǎn)的信息,proc節(jié)點(diǎn)資源包括proc節(jié)點(diǎn)的信息;步驟S104,獲取與tty節(jié)點(diǎn)資源對(duì)應(yīng)的tty驅(qū)動(dòng)資源、proc節(jié)點(diǎn)的驅(qū)動(dòng)信息和所述proc節(jié)點(diǎn);步驟S106,根據(jù)tty節(jié)點(diǎn)資源、proc節(jié)點(diǎn)資源、tty驅(qū)動(dòng)資源和上述獲取的proc 節(jié)點(diǎn)來建立proc節(jié)點(diǎn)與tty節(jié)點(diǎn)的熱插拔功能的關(guān)聯(lián)關(guān)系。優(yōu)選地,上述獲取與tty節(jié)點(diǎn)資源對(duì)應(yīng)的tty驅(qū)動(dòng)資源可以包括以下處理獲取驅(qū)動(dòng)參數(shù)以及注冊(cè)tty節(jié)點(diǎn)的驅(qū)動(dòng)信息;上述獲取與所述proc節(jié)點(diǎn)對(duì)應(yīng)的proc節(jié)點(diǎn)的驅(qū)動(dòng)信息和所述proc節(jié)點(diǎn),包括 在內(nèi)核中設(shè)置proc節(jié)點(diǎn)根目錄,并注冊(cè)proc驅(qū)動(dòng),向內(nèi)核注冊(cè)proc節(jié)點(diǎn)。優(yōu)選地,上述建立proc節(jié)點(diǎn)與tty節(jié)點(diǎn)的熱插拔功能的關(guān)聯(lián)關(guān)系,包括但不限于以下處理(1)、通過ioctl接口操縱proc節(jié)點(diǎn),增加與該proc節(jié)點(diǎn)--對(duì)應(yīng)的tty節(jié)點(diǎn);(2)、建立tty節(jié)點(diǎn)和proc節(jié)點(diǎn)的耦聯(lián)。在優(yōu)選實(shí)施過程中,上述建立proc節(jié)點(diǎn)與tty節(jié)點(diǎn)的熱插拔功能的關(guān)聯(lián)關(guān)系,還可以包括以下處理(1)、刪除與tty節(jié)點(diǎn)資源對(duì)應(yīng)的tty節(jié)點(diǎn);(2)、拆除tty節(jié)點(diǎn)和proc節(jié)點(diǎn)的耦聯(lián)。
5
在上述實(shí)施例的優(yōu)選實(shí)施過程中,上述建立與proc節(jié)點(diǎn)資源對(duì)應(yīng)的tty節(jié)點(diǎn)的熱插拔功能的關(guān)聯(lián)之后,還可以包括刪除與proc節(jié)點(diǎn)資源對(duì)應(yīng)的proc節(jié)點(diǎn);釋放tty節(jié)點(diǎn)資源和proc節(jié)點(diǎn)資源。為了更好地理解上述實(shí)施例,以下結(jié)合圖2詳細(xì)說明Iinux多虛擬串口驅(qū)動(dòng)的實(shí)現(xiàn)原理。如圖2所示,用戶態(tài)tty串口應(yīng)用以標(biāo)準(zhǔn)串口 api接口操作tty串口節(jié)點(diǎn),當(dāng) write ()操作發(fā)生時(shí),調(diào)用Iinux操作系統(tǒng)中第一層tty核心層提供的tty_Write()函數(shù), 然后調(diào)用第二層tty線路規(guī)程中Idisc. write (),接著調(diào)用第三層tty驅(qū)動(dòng)程序文件操作 write方法,在第三層該tty驅(qū)動(dòng)層中,需要實(shí)現(xiàn)一系列文件訪問方法,tty串口模塊提供第一、第二標(biāo)準(zhǔn)層,以對(duì)用戶態(tài)提供標(biāo)準(zhǔn)模塊api方法。第三層多tty驅(qū)動(dòng)程序由開發(fā)者根據(jù)需要開發(fā)各具特色的芯片驅(qū)動(dòng)程序和其他功能。上述實(shí)施例中,虛擬串口驅(qū)動(dòng)是一個(gè)可在Iinux平臺(tái)計(jì)算機(jī)下操作的程序,此驅(qū)動(dòng)程序會(huì)創(chuàng)建數(shù)個(gè)“虛擬”的tty串行端口。在用戶態(tài)應(yīng)用程序看來,這些虛擬的tty串行端口與物理tty串行端口相同,操作方式相同。橋接設(shè)備采用技術(shù),信令沒有引入第 3類通信機(jī)制,實(shí)現(xiàn)媒體和信令合一,對(duì)proc設(shè)備節(jié)點(diǎn)也以文件訪問,這樣就實(shí)現(xiàn)了 TCP/IP 網(wǎng)絡(luò)替代了串口網(wǎng)絡(luò)。上述實(shí)施例中,tty驅(qū)動(dòng)實(shí)現(xiàn)中沒有實(shí)際的物理芯片驅(qū)動(dòng),取而代之的是proc設(shè)備節(jié)點(diǎn)(即proc節(jié)點(diǎn)),可以把proc設(shè)備節(jié)點(diǎn)認(rèn)為是虛擬芯片單元,在設(shè)備節(jié)點(diǎn)信息中,維護(hù)相應(yīng)page緩沖數(shù)據(jù)區(qū),tty和proc設(shè)備節(jié)點(diǎn)通過此緩沖區(qū)實(shí)現(xiàn)數(shù)據(jù)交互。在proc節(jié)點(diǎn)側(cè),實(shí)現(xiàn)設(shè)備驅(qū)動(dòng)程序?qū)?,該層設(shè)計(jì)了 Proc文件訪問的一系列方法,用戶態(tài)應(yīng)用從proc方向open, read, write, ioctl等方式訪問某個(gè)proc文件設(shè)備節(jié)點(diǎn)。tty第三層tty. write () 對(duì)應(yīng)著proc側(cè)的驅(qū)動(dòng)層的procdriver. read (),這樣便可以實(shí)現(xiàn)tty向proc下行方向的數(shù)據(jù)流動(dòng)。反之,從proc向tty的上行方向數(shù)據(jù)流動(dòng)是相對(duì)應(yīng)的,此處不再贅述。這2個(gè)設(shè)備節(jié)點(diǎn)(proc節(jié)點(diǎn)和tty節(jié)點(diǎn))數(shù)據(jù)交互沒有開辟數(shù)據(jù)緩存,而是借用第二層線路規(guī)程 tty緩存區(qū),通過tty標(biāo)準(zhǔn)操作api方法來實(shí)現(xiàn)數(shù)據(jù)傳輸。以下結(jié)合圖3說明proc代理隨路方式實(shí)現(xiàn)熱插拔hotplug原理。本實(shí)例中,以 256個(gè)tty設(shè)備節(jié)點(diǎn),256個(gè)proc設(shè)備節(jié)點(diǎn)來具體闡述。虛擬串口驅(qū)動(dòng)加載時(shí),首先分別建立256個(gè)tty和256個(gè)proc設(shè)備節(jié)點(diǎn)信息資源,驅(qū)動(dòng)tty主設(shè)備號(hào)由系統(tǒng)動(dòng)態(tài)分配,注冊(cè) tty驅(qū)動(dòng)程序,設(shè)置動(dòng)態(tài)加載tty設(shè)備節(jié)點(diǎn)方式。此時(shí),靜態(tài)初始化256個(gè)proc設(shè)備節(jié)點(diǎn), 每個(gè)proc節(jié)點(diǎn)作為媒體流的數(shù)據(jù)通道,同時(shí)也做信令控制通道,通過該節(jié)點(diǎn)去添加或刪除對(duì)應(yīng)的tty設(shè)備節(jié)點(diǎn),并建立一一對(duì)應(yīng)的關(guān)聯(lián)關(guān)系。這樣就實(shí)現(xiàn)信令和媒體共享的隨路工作方式。圖4為根據(jù)本發(fā)明優(yōu)選實(shí)施例的proc代理隨路方式的方法流程示意圖。如圖4 所示,該方法包括以下處理步驟S402,設(shè)備節(jié)點(diǎn)信息資源初始化,需要構(gòu)建256個(gè)tty節(jié)點(diǎn),256個(gè)proc節(jié)點(diǎn)資源,這些資源保存相應(yīng)節(jié)點(diǎn)的相關(guān)信息,為相應(yīng)節(jié)點(diǎn)耦聯(lián)做準(zhǔn)備。無其他代理節(jié)點(diǎn)。步驟S404,向內(nèi)核申請(qǐng)開辟tty驅(qū)動(dòng)資源,設(shè)置驅(qū)動(dòng)相關(guān)參數(shù)和配置注冊(cè)tty驅(qū)動(dòng) fn息ο步驟S406,設(shè)置proc節(jié)點(diǎn)根目錄,并注冊(cè)proc驅(qū)動(dòng),向內(nèi)核注冊(cè)256個(gè)靜態(tài)proc 節(jié)占.節(jié)點(diǎn)。
步驟S408,建立與proc節(jié)點(diǎn)自身相對(duì)應(yīng)tty節(jié)點(diǎn)hotplug功能的關(guān)聯(lián)。其中,上述建立與proc節(jié)點(diǎn)自身相對(duì)應(yīng)tty節(jié)點(diǎn)hotplug功能的關(guān)聯(lián),包括步驟S408-1,用戶態(tài)應(yīng)用程序網(wǎng)絡(luò)服務(wù)器模塊通過ioctl接口操縱proc節(jié)點(diǎn),增加--對(duì)應(yīng)tty節(jié)點(diǎn),無法添加其他tty節(jié)點(diǎn)。步驟S408-2,添加對(duì)應(yīng)tty節(jié)點(diǎn)。步驟S408-3,建立tty設(shè)備(節(jié)點(diǎn))和proc節(jié)點(diǎn)資源耦聯(lián)。步驟S408-4,動(dòng)態(tài)刪除tty設(shè)備(節(jié)點(diǎn)),用戶態(tài)不能使用已刪除設(shè)備。步驟S408-5,拆除tty設(shè)備和proc節(jié)點(diǎn)信息資源耦聯(lián),標(biāo)志已經(jīng)刪除,同時(shí)為下一次添加該節(jié)點(diǎn)做準(zhǔn)備工作。需要指出的是,也可以創(chuàng)建單獨(dú)proc節(jié)點(diǎn)作為信令通道,控制所有tty節(jié)點(diǎn)增加刪除,亦即一個(gè)proc節(jié)點(diǎn)可以控制多個(gè)tty節(jié)點(diǎn),這是共路信令的實(shí)現(xiàn)方式。圖5為基于圖4所示實(shí)施例的卸載方法流程示意圖,如圖5所示,該卸載流程包括步驟S502,驅(qū)動(dòng)卸載時(shí),如果系統(tǒng)中存在tty相關(guān)節(jié)點(diǎn),刪除剩余tty節(jié)點(diǎn)。步驟S504,卸載256個(gè)靜態(tài)proc節(jié)點(diǎn)。步驟S506,卸載tty驅(qū)動(dòng),釋放tty和proc設(shè)備節(jié)點(diǎn)信息資源。圖6為根據(jù)本發(fā)明實(shí)施例的基于proc技術(shù)的虛擬串口熱插拔的實(shí)現(xiàn)系統(tǒng)的結(jié)構(gòu)框圖。如圖6所示,該系統(tǒng)包括構(gòu)建模塊60,用于構(gòu)建tty節(jié)點(diǎn)資源和proc節(jié)點(diǎn)資源,其中,tty節(jié)點(diǎn)資源包括 tty節(jié)點(diǎn)的信息,proc節(jié)點(diǎn)資源包括proc節(jié)點(diǎn)的信息;獲取模塊62,用于獲取與tty節(jié)點(diǎn)資源對(duì)應(yīng)的tty驅(qū)動(dòng)資源,proc節(jié)點(diǎn)的驅(qū)動(dòng)信息禾口 proc節(jié)點(diǎn);關(guān)聯(lián)模塊64,用于根據(jù)上述構(gòu)建模塊60、獲取模塊62得到的tty節(jié)點(diǎn)資源、proc 節(jié)點(diǎn)資源及tty驅(qū)動(dòng)資源建立proc節(jié)點(diǎn)與tty節(jié)點(diǎn)的熱插拔功能的關(guān)聯(lián)關(guān)系。優(yōu)選地,上述獲取模塊62,還用于獲取驅(qū)動(dòng)參數(shù)和注冊(cè)tty節(jié)點(diǎn)驅(qū)動(dòng)信息以及在內(nèi)核中設(shè)置proc節(jié)點(diǎn)根目錄,并注冊(cè)proc驅(qū)動(dòng),向內(nèi)核注冊(cè)靜態(tài)proc節(jié)點(diǎn)。優(yōu)選地,上述關(guān)聯(lián)模塊64,包括節(jié)點(diǎn)增加單元640,用于通過ioctl接口操縱上述獲取模塊62獲取的proc節(jié)點(diǎn), 增加與該proc節(jié)點(diǎn)對(duì)應(yīng)的tty節(jié)點(diǎn);關(guān)聯(lián)建立單元642,用于建立tty節(jié)點(diǎn)和proc節(jié)點(diǎn)的耦聯(lián),該關(guān)聯(lián)建立單元642, 可以根據(jù)上述構(gòu)建模塊60構(gòu)建的tty節(jié)點(diǎn)資源和proc節(jié)點(diǎn)資源,以及上述獲取模塊62獲取的與tty節(jié)點(diǎn)資源對(duì)應(yīng)的tty驅(qū)動(dòng)資源,proc節(jié)點(diǎn)的驅(qū)動(dòng)信息和proc節(jié)點(diǎn)建立tty節(jié)點(diǎn)和proc節(jié)點(diǎn)的耦聯(lián)。優(yōu)選地,如圖7所示,上述關(guān)聯(lián)模塊64,還可以包括刪除單元644,用于刪除與 tty節(jié)點(diǎn)資源對(duì)應(yīng)的tty節(jié)點(diǎn);拆除單元646,用于拆除上述關(guān)聯(lián)建立單元642建立的tty 節(jié)點(diǎn)和proc節(jié)點(diǎn)的耦聯(lián)。在上述實(shí)施例的優(yōu)選實(shí)施過程中,上述系統(tǒng)還可以包括刪除模塊66,用于刪除與proc節(jié)點(diǎn)資源對(duì)應(yīng)的proc節(jié)點(diǎn),其中,該proc節(jié)點(diǎn)由上述獲取模塊62獲得;以及釋放模塊68,用于釋放上述構(gòu)建模塊60構(gòu)建的tty節(jié)點(diǎn)資源和proc節(jié)點(diǎn)資源。
需要注意的是,上述系統(tǒng)中的各模塊相關(guān)結(jié)合的優(yōu)選工作方式具體可以參見上述方法實(shí)施例的描述,此處不再贅述。綜合上述實(shí)施例可以看出,上述實(shí)施例將信令通道和媒體通道統(tǒng)一使用proc技術(shù)實(shí)現(xiàn),將信令通道作為媒體通道的一個(gè)擴(kuò)展,從而使得媒體通道的相關(guān)實(shí)現(xiàn)可以直接應(yīng)用到信令通道,實(shí)現(xiàn)信令和媒體的統(tǒng)一處理,簡(jiǎn)化了程序?qū)崿F(xiàn)。從驅(qū)動(dòng)程序內(nèi)部設(shè)計(jì)設(shè)備節(jié)點(diǎn),增刪設(shè)備節(jié)點(diǎn)也無需知道主設(shè)備號(hào),避免了靜態(tài)分配驅(qū)動(dòng)主設(shè)備號(hào)潛在的沖突可能,同時(shí)也避免了靜態(tài)分配節(jié)點(diǎn)潛在的資源浪費(fèi)。另外,對(duì)于bridge設(shè)備(如proc節(jié)點(diǎn))靜態(tài)創(chuàng)建的方式,對(duì)應(yīng)的信令通道可以和媒體通道復(fù)用,不需要建立單獨(dú)的信令通道,這種實(shí)現(xiàn)方式相當(dāng)于隨路信令的方式,在通道建立初始,作為信令通道使用,信令下達(dá)后,當(dāng)tty設(shè)備創(chuàng)建以及和對(duì)應(yīng)的bridge設(shè)備關(guān)聯(lián)后,通道模式切換到媒體通道,完成后續(xù)的媒體轉(zhuǎn)發(fā), 當(dāng)然,也可以利用共路信令的實(shí)現(xiàn)方式即創(chuàng)建單獨(dú)proc節(jié)點(diǎn)作為信令通道,控制所有tty 節(jié)點(diǎn)增加刪除,從而節(jié)省了系統(tǒng)資源。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種基于proc技術(shù)的虛擬串口熱插拔的實(shí)現(xiàn)方法,其特征在于,包括構(gòu)建tty節(jié)點(diǎn)資源和proc節(jié)點(diǎn)資源,其中,所述tty節(jié)點(diǎn)資源包括tty節(jié)點(diǎn)的信息,所述proc節(jié)點(diǎn)資源包括proc節(jié)點(diǎn)的信息;獲取與所述tty節(jié)點(diǎn)資源對(duì)應(yīng)的tty驅(qū)動(dòng)資源、proc節(jié)點(diǎn)的驅(qū)動(dòng)信息和所述proc節(jié)占.根據(jù)所述tty節(jié)點(diǎn)資源、所述proc節(jié)點(diǎn)資源、所述tty驅(qū)動(dòng)資源和所述獲取的proc節(jié)點(diǎn),建立所述proc節(jié)點(diǎn)與所述tty節(jié)點(diǎn)的熱插拔功能的關(guān)聯(lián)關(guān)系。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取與所述tty節(jié)點(diǎn)資源對(duì)應(yīng)的tty驅(qū)動(dòng)資源,包括獲取驅(qū)動(dòng)參數(shù)以及所述tty 節(jié)點(diǎn)的驅(qū)動(dòng)信息;所述獲取proc節(jié)點(diǎn)的驅(qū)動(dòng)信息和所述proc節(jié)點(diǎn),包括在內(nèi)核中設(shè)置proc節(jié)點(diǎn)根目錄,并注冊(cè)proc驅(qū)動(dòng),向內(nèi)核注冊(cè)proc節(jié)點(diǎn)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述建立所述proc節(jié)點(diǎn)與所述tty節(jié)點(diǎn)的熱插拔功能的關(guān)聯(lián)關(guān)系,包括通過ioctl接口操縱所述proc節(jié)點(diǎn),增加與該proc節(jié)點(diǎn)對(duì)應(yīng)的tty節(jié)點(diǎn);建立所述tty節(jié)點(diǎn)和所述proc節(jié)點(diǎn)的耦聯(lián)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述建立所述proc節(jié)點(diǎn)對(duì)應(yīng)的tty節(jié)點(diǎn)的熱插拔關(guān)聯(lián)關(guān)系,包括刪除與所述tty節(jié)點(diǎn)資源對(duì)應(yīng)的tty節(jié)點(diǎn);拆除所述tty節(jié)點(diǎn)和所述proc節(jié)點(diǎn)的耦聯(lián)。
5.根據(jù)權(quán)利要求1至4任一項(xiàng)所述的方法,其特征在于,所述建立所述proc節(jié)點(diǎn)資源對(duì)應(yīng)的tty節(jié)點(diǎn)的熱插拔功能的關(guān)聯(lián)關(guān)系之后,還包括刪除與所述proc節(jié)點(diǎn)資源對(duì)應(yīng)的proc節(jié)點(diǎn);釋放所述tty節(jié)點(diǎn)資源和所述proc節(jié)點(diǎn)資源。
6.一種基于proc技術(shù)的虛擬串口熱插拔的實(shí)現(xiàn)系統(tǒng),其特征在于,包括構(gòu)建模塊,用于構(gòu)建tty節(jié)點(diǎn)資源和proc節(jié)點(diǎn)資源,其中,所述tty節(jié)點(diǎn)資源包括tty 節(jié)點(diǎn)的信息,所述proc節(jié)點(diǎn)資源包括proc節(jié)點(diǎn)的信息;獲取模塊,用于獲取與所述tty節(jié)點(diǎn)資源對(duì)應(yīng)的tty驅(qū)動(dòng)資源、proc節(jié)點(diǎn)的驅(qū)動(dòng)信息和所述proc節(jié)點(diǎn);關(guān)聯(lián)模塊,用于根據(jù)所述tty節(jié)點(diǎn)資源、所述proc節(jié)點(diǎn)資源、所述tty驅(qū)動(dòng)資源和所述獲取的proc節(jié)點(diǎn),建立與所述proc節(jié)點(diǎn)與所述tty節(jié)點(diǎn)的熱插拔功能的關(guān)聯(lián)關(guān)系。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述獲取模塊,還用于獲取驅(qū)動(dòng)參數(shù)和注冊(cè)tty節(jié)點(diǎn)驅(qū)動(dòng)信息,在內(nèi)核中設(shè)置proc節(jié)點(diǎn)根目錄,并注冊(cè)proc驅(qū)動(dòng),向內(nèi)核注冊(cè)靜態(tài)proc節(jié)點(diǎn)。
8.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述關(guān)聯(lián)模塊,包括節(jié)點(diǎn)增加單元,用于通過ioctl接口操縱所述proc節(jié)點(diǎn),增加與該proc節(jié)點(diǎn)對(duì)應(yīng)的 tty節(jié)點(diǎn);關(guān)聯(lián)建立單元,用于建立所述tty節(jié)點(diǎn)和所述proc節(jié)點(diǎn)的耦聯(lián)。
9.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述關(guān)聯(lián)模塊,包括刪除單元,用于刪除與所述tty節(jié)點(diǎn)資源對(duì)應(yīng)的tty節(jié)點(diǎn);拆除單元,用于拆除所述tty節(jié)點(diǎn)和所述proc節(jié)點(diǎn)的耦聯(lián)。
10.根據(jù)權(quán)利要求6至9任一項(xiàng)所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括刪除模塊,用于刪除與所述Proc節(jié)點(diǎn)資源對(duì)應(yīng)的proc節(jié)點(diǎn);釋放模塊,用于釋放所述tty節(jié)點(diǎn)資源和所述proc節(jié)點(diǎn)資源。
全文摘要
本發(fā)明提供了一種基于proc技術(shù)的虛擬串口熱插拔的實(shí)現(xiàn)方法及系統(tǒng),其中,上述方法包括構(gòu)建tty節(jié)點(diǎn)資源和proc節(jié)點(diǎn)資源,其中,tty節(jié)點(diǎn)資源包括tty節(jié)點(diǎn)的信息,proc節(jié)點(diǎn)資源包括proc節(jié)點(diǎn)的信息;獲取與tty節(jié)點(diǎn)資源對(duì)應(yīng)的tty驅(qū)動(dòng)資源、proc節(jié)點(diǎn)的驅(qū)動(dòng)信息和proc節(jié)點(diǎn);根據(jù)tty節(jié)點(diǎn)資源、proc節(jié)點(diǎn)資源、tty驅(qū)動(dòng)資源和獲取的proc節(jié)點(diǎn),建立proc節(jié)點(diǎn)與所述tty節(jié)點(diǎn)的熱插拔功能的關(guān)聯(lián)關(guān)系。采用本發(fā)明提供的上述技術(shù)方案達(dá)到了從驅(qū)動(dòng)程序內(nèi)部設(shè)計(jì)設(shè)備節(jié)點(diǎn),增刪設(shè)備節(jié)點(diǎn)無需知道主設(shè)備號(hào),避免了靜態(tài)分配驅(qū)動(dòng)主設(shè)備號(hào)潛在的沖突可能,同時(shí)也避免了靜態(tài)分配節(jié)點(diǎn)潛在的資源浪費(fèi)的效果。
文檔編號(hào)G06F9/455GK102546347SQ20101059352
公開日2012年7月4日 申請(qǐng)日期2010年12月17日 優(yōu)先權(quán)日2010年12月17日
發(fā)明者王玉明, 陳明恩, 黃啟銀 申請(qǐng)人:中興通訊股份有限公司