本申請(qǐng)涉及計(jì)算機(jī)
技術(shù)領(lǐng)域:
:,具體涉及操作系統(tǒng)內(nèi)核
技術(shù)領(lǐng)域:
:,尤其涉及內(nèi)核模塊加載方法和裝置。
背景技術(shù):
::目前,為了使內(nèi)核模塊可以在內(nèi)核程序中運(yùn)行,通常需要生成包含內(nèi)核的源代碼的內(nèi)核模塊。因此,現(xiàn)有的內(nèi)核模塊加載方法通常是,根據(jù)內(nèi)核的源代碼以及加載內(nèi)核模塊時(shí)需要校驗(yàn)的參數(shù),比如:內(nèi)核版本、內(nèi)核符號(hào)和CRC(CyclicRedundancyCheck,循環(huán)冗余校驗(yàn)碼)等參數(shù),對(duì)內(nèi)核模塊進(jìn)行重新編譯或者修改,以通過(guò)內(nèi)核的校驗(yàn)機(jī)制,進(jìn)而加載到內(nèi)核中。由于內(nèi)核模塊只能加載于其編譯時(shí)所依賴的源代碼對(duì)應(yīng)的內(nèi)核上。這樣,當(dāng)同種操作系統(tǒng)的內(nèi)核版本眾多時(shí),一般需要對(duì)內(nèi)核模塊進(jìn)行多次重新編譯或修改,以適用不同版本的內(nèi)核。技術(shù)實(shí)現(xiàn)要素:本申請(qǐng)的目的在于提出一種改進(jìn)的內(nèi)核模塊加載方法和裝置,來(lái)解決以上
背景技術(shù):
:部分提到的技術(shù)問(wèn)題。第一方面,本申請(qǐng)?zhí)峁┝艘环N內(nèi)核模塊加載方法,該方法包括:檢測(cè)用于指示將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中的指令;響應(yīng)于檢測(cè)到指令,確定待加載內(nèi)核模塊中是否存在標(biāo)識(shí)信息,其中,標(biāo)識(shí)信息用于表征將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中;響應(yīng)于確定待加載內(nèi)核模塊中存在標(biāo)識(shí)信息,將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中。在一些實(shí)施例中,響應(yīng)于確定待加載內(nèi)核模塊中存在標(biāo)識(shí)信息,將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中,包括:響應(yīng)于確定待加載內(nèi)核模塊中存在標(biāo)識(shí)信息,對(duì)標(biāo)識(shí)信息進(jìn)行安全驗(yàn)證;若標(biāo)識(shí)信息通過(guò)安全驗(yàn)證,則將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中。在一些實(shí)施例中,該方法還包括在內(nèi)核模塊中生成標(biāo)識(shí)信息的步驟,該步驟包括:獲取內(nèi)核模塊,并確定內(nèi)核模塊是否滿足預(yù)設(shè)條件;響應(yīng)于確定內(nèi)核模塊滿足預(yù)設(shè)條件,通過(guò)預(yù)設(shè)方法在內(nèi)核模塊中生成標(biāo)識(shí)信息。在一些實(shí)施例中,預(yù)設(shè)條件包括內(nèi)核模塊與待加載內(nèi)核模塊的內(nèi)核相兼容。在一些實(shí)施例中,該方法還包括:響應(yīng)于確定待加載內(nèi)核模塊中不存在標(biāo)識(shí)信息,對(duì)待加載內(nèi)核模塊進(jìn)行加載校驗(yàn);若待加載內(nèi)核模塊通過(guò)加載校驗(yàn),則將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中。第二方面,本申請(qǐng)?zhí)峁┝艘环N內(nèi)核模塊加載裝置,該裝置包括:檢測(cè)單元,配置用于檢測(cè)用于指示將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中的指令;標(biāo)識(shí)信息確定單元,配置用于響應(yīng)于檢測(cè)到指令,確定待加載內(nèi)核模塊中是否存在標(biāo)識(shí)信息,其中,標(biāo)識(shí)信息用于表征將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中;第一加載單元,配置用于響應(yīng)于確定待加載內(nèi)核模塊中存在標(biāo)識(shí)信息,將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中。在一些實(shí)施例中,第一加載單元進(jìn)一步配置用于:響應(yīng)于確定待加載內(nèi)核模塊中存在標(biāo)識(shí)信息,對(duì)標(biāo)識(shí)信息進(jìn)行安全驗(yàn)證;若標(biāo)識(shí)信息通過(guò)安全驗(yàn)證,則將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中。在一些實(shí)施例中,該裝置還包括:獲取單元,配置用于獲取內(nèi)核模塊,并確定內(nèi)核模塊是否滿足預(yù)設(shè)條件;生成單元,配置用于響應(yīng)于確定內(nèi)核模塊滿足預(yù)設(shè)條件,通過(guò)預(yù)設(shè)方法在內(nèi)核模塊中生成標(biāo)識(shí)信息。在一些實(shí)施例中,預(yù)設(shè)條件包括內(nèi)核模塊與待加載內(nèi)核模塊的內(nèi)核相兼容。在一些實(shí)施例中,該裝置還包括:校驗(yàn)單元,配置用于響應(yīng)于確定待加載內(nèi)核模塊中不存在標(biāo)識(shí)信息,對(duì)待加載內(nèi)核模塊進(jìn)行加載校驗(yàn);第二加載單元,配置用于若待加載內(nèi)核模塊通過(guò)加載校驗(yàn),則將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中。第三方面,本申請(qǐng)?zhí)峁┝艘环N服務(wù)器,該服務(wù)器包括:一個(gè)或多個(gè)處理器;存儲(chǔ)裝置,用于存儲(chǔ)一個(gè)或多個(gè)程序,當(dāng)一個(gè)或多個(gè)程序被一個(gè)或多個(gè)處理器執(zhí)行,使得一個(gè)或多個(gè)處理器實(shí)現(xiàn)第一方面的內(nèi)核模塊加載方法。第四方面,本申請(qǐng)?zhí)峁┝艘环N計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)第一方面的內(nèi)核模塊加載方法。本申請(qǐng)?zhí)峁┑膬?nèi)核模塊加載方法和裝置,通過(guò)檢測(cè)到用于指示將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中的指令后,獲取待加載內(nèi)核模塊的信息,以確定待加載內(nèi)核模塊中是否存在標(biāo)識(shí)信息。若該待加載內(nèi)核模塊中存在標(biāo)識(shí)信息,則將其不經(jīng)過(guò)目標(biāo)內(nèi)核的加載校驗(yàn),便可以加載到目標(biāo)內(nèi)核中。這樣,當(dāng)同種操作系統(tǒng)的不同版本的內(nèi)核需要運(yùn)行待加載內(nèi)核模塊時(shí),若待加載內(nèi)核模塊中存在標(biāo)識(shí)信息,即可以將其加載到不同版本的內(nèi)核中。有利于提高待加載內(nèi)核模塊的適用范圍。附圖說(shuō)明通過(guò)閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本申請(qǐng)的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:圖1是本申請(qǐng)可以應(yīng)用于其中的示例性系統(tǒng)架構(gòu)圖;圖2是根據(jù)本申請(qǐng)的內(nèi)核模塊加載方法的一個(gè)實(shí)施例的流程圖;圖3是根據(jù)本申請(qǐng)的內(nèi)核模塊加載方法的一個(gè)應(yīng)用場(chǎng)景的示意圖;圖4是根據(jù)本申請(qǐng)的內(nèi)核模塊加載方法的又一個(gè)實(shí)施例的流程圖;圖5是根據(jù)本申請(qǐng)的內(nèi)核模塊加載方法中的生成標(biāo)識(shí)信息步驟的一個(gè)實(shí)施例的流程圖;圖6是根據(jù)本申請(qǐng)的內(nèi)核模塊加載裝置的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;圖7是適于用來(lái)實(shí)現(xiàn)本申請(qǐng)實(shí)施例的服務(wù)器的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)示意圖。具體實(shí)施方式下面結(jié)合附圖和實(shí)施例對(duì)本申請(qǐng)作進(jìn)一步的詳細(xì)說(shuō)明??梢岳斫獾氖?,此處所描述的具體實(shí)施例僅僅用于解釋相關(guān)發(fā)明,而非對(duì)該發(fā)明的限定。另外還需要說(shuō)明的是,為了便于描述,附圖中僅示出了與有關(guān)發(fā)明相關(guān)的部分。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本申請(qǐng)。圖1示出了可以應(yīng)用本申請(qǐng)的內(nèi)核模塊加載方法或內(nèi)核模塊加載裝置的實(shí)施例的示例性系統(tǒng)架構(gòu)100。如圖1所示,系統(tǒng)架構(gòu)100可以包括終端設(shè)備101、102、103,網(wǎng)絡(luò)104、106,服務(wù)器105和數(shù)據(jù)庫(kù)服務(wù)器107。網(wǎng)絡(luò)104用以在終端設(shè)備101、102、103和服務(wù)器105之間提供通信鏈路的介質(zhì)。網(wǎng)絡(luò)106用以在服務(wù)器105和數(shù)據(jù)庫(kù)服務(wù)器107之間提供通信鏈路的介質(zhì)。網(wǎng)絡(luò)104、106可以包括各種連接類型,例如有線、無(wú)線通信鏈路或者光纖電纜等等。用戶可以使用終端設(shè)備101、102、103通過(guò)網(wǎng)絡(luò)104與服務(wù)器105交互,以接收或發(fā)送消息等。終端設(shè)備101、102、103上可以安裝有各種通訊客戶端應(yīng)用,例如網(wǎng)頁(yè)瀏覽器應(yīng)用、搜索類應(yīng)用、即時(shí)通信工具等。終端設(shè)備101、102、103可以是各種電子設(shè)備,包括但不限于智能手機(jī)、平板電腦、電子書(shū)閱讀器和臺(tái)式計(jì)算機(jī)等等。數(shù)據(jù)庫(kù)服務(wù)器107可以是存儲(chǔ)有待加載內(nèi)核模塊集合的服務(wù)器。服務(wù)器105可以是提供各種服務(wù)的服務(wù)器,例如對(duì)終端設(shè)備101、102、103發(fā)送的用于指示將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中的指令進(jìn)行處理的后臺(tái)內(nèi)核模塊加載服務(wù)器。后臺(tái)內(nèi)核模塊加載服務(wù)器可以在檢測(cè)到該指令后,從數(shù)據(jù)庫(kù)服務(wù)器107獲取待加載內(nèi)核模塊,并對(duì)對(duì)待加載內(nèi)核模塊和目標(biāo)內(nèi)核等數(shù)據(jù)進(jìn)行分析等處理,并將處理結(jié)果(是否加載成功的提示信息)反饋給終端設(shè)備。需要說(shuō)明的是,本申請(qǐng)實(shí)施例所提供的內(nèi)核模塊加載方法一般由服務(wù)器105執(zhí)行,相應(yīng)地,內(nèi)核模塊加載裝置一般設(shè)置于服務(wù)器105中。應(yīng)該理解,圖1中的終端設(shè)備、網(wǎng)絡(luò)、服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器的數(shù)目?jī)H僅是示意性的。根據(jù)實(shí)現(xiàn)需要,可以具有任意數(shù)目的終端設(shè)備、網(wǎng)絡(luò)、服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器。需要說(shuō)明的是,在服務(wù)器105中存儲(chǔ)有待加載內(nèi)核模塊的情況下,系統(tǒng)架構(gòu)100中可以不設(shè)置數(shù)據(jù)庫(kù)服務(wù)器107。繼續(xù)參考圖2,示出了根據(jù)本申請(qǐng)的內(nèi)核模塊加載方法的一個(gè)實(shí)施例的流程200。該方法包括以下步驟:步驟201,檢測(cè)用于指示將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中的指令。在本實(shí)施例中,內(nèi)核模塊加載方法運(yùn)行于其上的電子設(shè)備(例如圖1所示的服務(wù)器105)可以通過(guò)有線連接方式或者無(wú)線連接方式從用戶所使用的終端檢測(cè)并接收用于指示將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中的指令。其中,指令可以是用戶通過(guò)觸控終端上的某個(gè)按鍵(虛擬按鍵或?qū)嶓w按鍵)所發(fā)起的。也可以是用戶通過(guò)終端向上述電子設(shè)備發(fā)送某一信息而發(fā)起的。在本實(shí)施例中,目標(biāo)內(nèi)核可以是各種操作系統(tǒng)中的不同版本的內(nèi)核。例如Windows圖形化工作界面操作系統(tǒng)中的NT5.1、NT5.2、NT6.0和NT6.1等版本的內(nèi)核。待加載內(nèi)核模塊可以包括具有獨(dú)立功能,但不能獨(dú)立運(yùn)行的程序。例如在Windows操作系統(tǒng)中增加新的硬件設(shè)備時(shí),待加載內(nèi)核模塊可以是該硬件設(shè)備的設(shè)備驅(qū)動(dòng)程序。待加載內(nèi)核模塊還可以包括Linux內(nèi)核中的LKM(LoadableKernelModule,動(dòng)態(tài)可加載內(nèi)核模塊)。步驟202,響應(yīng)于檢測(cè)到指令,確定待加載內(nèi)核模塊中是否存在標(biāo)識(shí)信息。在本實(shí)施例中,基于步驟201中檢測(cè)到的指令,上述電子設(shè)備可以首先獲取上述指令所指示的待加載內(nèi)核模塊;之后再讀取待加載內(nèi)核模塊的信息,以確定該信息中是否存在標(biāo)識(shí)信息。其中,標(biāo)識(shí)信息用于表征將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中。在本實(shí)施例中,上述指令中可以包含待加載內(nèi)核模塊的名稱和/或版本號(hào)。根據(jù)待加載內(nèi)核模塊的名稱和/或版本號(hào),上述電子設(shè)備可以從圖1所示的數(shù)據(jù)庫(kù)服務(wù)器107中獲取匹配的待加載內(nèi)核模塊。上述電子設(shè)備也可以先在本地查找是否存儲(chǔ)有匹配的待加載內(nèi)核模塊。若本地查找失敗時(shí),再?gòu)臄?shù)據(jù)庫(kù)服務(wù)器107中獲取匹配的待加載內(nèi)核模塊。需要說(shuō)明的是,待加載內(nèi)核模塊的具體存儲(chǔ)位置在本申請(qǐng)中并不限制。在本實(shí)施例中,上述電子設(shè)備可以根據(jù)待加載內(nèi)核模塊中是否存在與程序內(nèi)容無(wú)關(guān)的信息,來(lái)確定其中是否存在標(biāo)識(shí)信息。如果待加載內(nèi)核模塊中存在與程序內(nèi)容無(wú)關(guān)的信息,則可以將該信息確定為標(biāo)識(shí)信息。例如:在ELF文件的文件頭(ELFHeader)前面有“¥”。在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,上述電子設(shè)備還可以將預(yù)先存儲(chǔ)的標(biāo)識(shí)信息集合中的每一個(gè)標(biāo)識(shí)信息,在待加載內(nèi)核模塊中進(jìn)行匹配。若待加載內(nèi)核模塊中存在與標(biāo)識(shí)信息集合中的標(biāo)識(shí)信息匹配的信息,則可以確定待加載內(nèi)核模塊中存在標(biāo)識(shí)信息。在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,標(biāo)識(shí)信息可以是任意的,比如:字符、字符串或數(shù)據(jù)段等等。作為示例,Linux系統(tǒng)的內(nèi)核模塊是ELF(ExecutableandLinkingFormat,可執(zhí)行對(duì)象文件)格式,所以標(biāo)識(shí)信息可以是待加載內(nèi)核模塊內(nèi)一個(gè)單獨(dú)的節(jié),其名稱可以為“foo”或者“bar”等。同時(shí)節(jié)內(nèi)的數(shù)據(jù)可以是任意的。在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,上述內(nèi)核模塊加載方法還可以包括在內(nèi)核模塊中生成標(biāo)識(shí)信息的步驟。這里,圖5示出了根據(jù)本申請(qǐng)的內(nèi)核模塊加載方法中的生成標(biāo)識(shí)信息步驟的一個(gè)實(shí)施例的流程圖。上述電子設(shè)備可以根據(jù)該流程在內(nèi)核模塊中生成標(biāo)識(shí)信息。步驟203,響應(yīng)于確定待加載內(nèi)核模塊中存在標(biāo)識(shí)信息,將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中。在本實(shí)施例中,響應(yīng)于步驟202確定待加載內(nèi)核模塊中存在標(biāo)識(shí)信息,上述電子設(shè)備可以執(zhí)行加載程序,以將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中??梢岳斫獾氖?,上述電子設(shè)備對(duì)待加載內(nèi)核模塊的加載過(guò)程在本申請(qǐng)中并不限制。加載過(guò)程可以是直接加載,也可以是兼容加載。比如:上述電子設(shè)備可以通過(guò)安裝相關(guān)的兼容包以實(shí)現(xiàn)對(duì)待加載內(nèi)核模塊的加載運(yùn)行。此外,需要說(shuō)明的是,標(biāo)識(shí)信息在待加載內(nèi)核模塊中的位置在本申請(qǐng)中并不限制。在本實(shí)施例中,上述電子設(shè)備的操作系統(tǒng)中可以存儲(chǔ)多個(gè)版本的內(nèi)核。此時(shí),上述指令中還可以包括目標(biāo)內(nèi)核的版本號(hào)。電子設(shè)備可以根據(jù)目標(biāo)內(nèi)核的版本號(hào)選取出目標(biāo)內(nèi)核。此外,上述電子設(shè)備中也可以存儲(chǔ)多種操作系統(tǒng),并且每種操作系統(tǒng)中包含多個(gè)版本的內(nèi)核。此時(shí),上述指令中還可以包括目標(biāo)內(nèi)核的名稱和版本號(hào)。上述電子設(shè)備可以根據(jù)目標(biāo)內(nèi)核的名稱和版本號(hào)選取出目標(biāo)內(nèi)核。繼續(xù)參見(jiàn)圖3,圖3是根據(jù)本實(shí)施例的內(nèi)核模塊加載方法的應(yīng)用場(chǎng)景的一個(gè)示意圖。在圖3的應(yīng)用場(chǎng)景中,用戶首先通過(guò)終端發(fā)起將名稱為A的待加載內(nèi)核模塊LKM加載到2.6版本的Linux內(nèi)核中的指令(如標(biāo)號(hào)301所示);之后,服務(wù)器在檢測(cè)到該指令后(如標(biāo)號(hào)302所示),可以從數(shù)據(jù)庫(kù)服務(wù)器中獲取待加載內(nèi)核模塊(即上述LKM“A”)(如標(biāo)號(hào)303所示),并在其中發(fā)現(xiàn)特殊名稱的數(shù)據(jù)段:“_attribute_((section("bar")))”,確定LKM“A”中存在標(biāo)識(shí)信息(如標(biāo)號(hào)304所示);然后,上述服務(wù)器啟動(dòng)“insmod”命令,并調(diào)用“init_module”函數(shù)開(kāi)始將LKM“A”加載到2.6版本的Linux內(nèi)核中(如標(biāo)號(hào)305所示)。本申請(qǐng)的上述實(shí)施例提供的方法通過(guò)確定待加載內(nèi)核模塊中是否存在標(biāo)識(shí)信息,并將存在標(biāo)識(shí)信息的待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中。實(shí)現(xiàn)了在不經(jīng)過(guò)加載校驗(yàn)的情況下,可以將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核的過(guò)程。減少了因目標(biāo)內(nèi)核版本較多,而對(duì)待加載內(nèi)核模塊進(jìn)行反復(fù)編譯或修改的情況。擴(kuò)大了待加載內(nèi)核模塊在同種操作系統(tǒng)的不同版本的目標(biāo)內(nèi)核中的適用范圍,有利于降低維護(hù)成本。進(jìn)一步參考圖4,其示出了內(nèi)核模塊加載方法的又一個(gè)實(shí)施例的流程400。該方法的流程400,包括以下步驟:步驟401,檢測(cè)用于指示將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中的指令。在本實(shí)施例中,內(nèi)核模塊加載方法運(yùn)行于其上的電子設(shè)備(如圖1所示的服務(wù)器105)可以檢測(cè)用戶通過(guò)終端設(shè)備發(fā)送的用于指示將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中的指令。步驟402,響應(yīng)于檢測(cè)到指令,確定待加載內(nèi)核模塊中是否存在標(biāo)識(shí)信息。在本實(shí)施例中,上述電子設(shè)備在檢測(cè)到上述指令后,可以獲取待加載內(nèi)核模塊的信息,并確定其中是否存在標(biāo)識(shí)信息。其中,標(biāo)識(shí)信息用于表征將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中。若待加載內(nèi)核模塊中存在標(biāo)識(shí)信息,則執(zhí)行步驟403a;若待加載內(nèi)核模塊中不存在標(biāo)識(shí)信息,則執(zhí)行步驟403b。步驟403a,響應(yīng)于確定待加載內(nèi)核模塊中存在標(biāo)識(shí)信息,對(duì)標(biāo)識(shí)信息進(jìn)行安全驗(yàn)證。在本實(shí)施例中,上述電子設(shè)備在確定待加載內(nèi)核模塊中存在標(biāo)識(shí)信息后,可以對(duì)該標(biāo)識(shí)信息進(jìn)行安全驗(yàn)證。例如:?jiǎn)?dòng)殺毒軟件對(duì)標(biāo)識(shí)信息進(jìn)行病毒的檢測(cè)和查殺。若標(biāo)識(shí)信息中不存在病毒,說(shuō)明該標(biāo)識(shí)信息通過(guò)安全驗(yàn)證。此外,標(biāo)識(shí)信息中還可以包括用于指示標(biāo)識(shí)信息來(lái)源的信息。比如:編譯標(biāo)識(shí)信息的單位、部門或個(gè)人的名稱(姓名)或編號(hào)等等。此時(shí),電子設(shè)備可以將標(biāo)識(shí)信息來(lái)源與預(yù)先存儲(chǔ)的來(lái)源信息集合中的來(lái)源信息進(jìn)行匹配。若匹配成功,說(shuō)明該標(biāo)識(shí)信息通過(guò)安全驗(yàn)證。若標(biāo)識(shí)信息通過(guò)安全驗(yàn)證,則執(zhí)行步驟404。步驟403b,響應(yīng)于確定待加載內(nèi)核模塊中不存在標(biāo)識(shí)信息,對(duì)待加載內(nèi)核模塊進(jìn)行加載校驗(yàn)。在本實(shí)施例中,上述電子設(shè)備在確定待加載內(nèi)核模塊中不存在標(biāo)識(shí)信息后,可以啟動(dòng)加載校驗(yàn)程序,以對(duì)待加載內(nèi)核模塊進(jìn)行加載校驗(yàn)。其中,加載校驗(yàn)的信息包括但不限于待加載內(nèi)核模塊的內(nèi)核版本、CRC等。此處的加載校驗(yàn)與現(xiàn)有技術(shù)中的加載內(nèi)核模塊的校驗(yàn)機(jī)制相同,此處不再贅述。若待加載內(nèi)核模塊通過(guò)加載校驗(yàn),則執(zhí)行步驟404;若待加載內(nèi)核模塊沒(méi)有通過(guò)加載校驗(yàn),則執(zhí)行步驟405。步驟404,將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中。在本實(shí)施例中,上述電子設(shè)備可以將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中,以使目標(biāo)內(nèi)核執(zhí)行待加載內(nèi)核模塊中的程序。此時(shí)與現(xiàn)有技術(shù)中的內(nèi)核模塊加載過(guò)程相同,此處不再贅述。步驟405,根據(jù)加載結(jié)果,發(fā)送提示信息。在本實(shí)施例中,根據(jù)待加載內(nèi)核模塊的加載結(jié)果,上述電子設(shè)備可以通過(guò)有線連接或無(wú)線連接的方式,向用戶所使用的終端發(fā)送提示信息。若已將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中,則發(fā)送加載成功的提示信息。若待加載內(nèi)核模塊沒(méi)有通過(guò)加載校驗(yàn),則發(fā)送加載失敗的提示信息。從圖4中可以看出,與圖2對(duì)應(yīng)的實(shí)施例相比,本實(shí)施例中的內(nèi)核模塊加載方法的流程400突出了對(duì)標(biāo)識(shí)信息進(jìn)行安全驗(yàn)證,以及在待加載內(nèi)核模塊中不存在標(biāo)識(shí)信息時(shí),進(jìn)行加載校驗(yàn)的步驟。由此,本實(shí)施例描述的方案可以實(shí)現(xiàn)更全面和完善的內(nèi)核模塊加載過(guò)程,在增強(qiáng)內(nèi)核模塊的適用性的同時(shí),有利于系統(tǒng)的減低維護(hù)成本,也有利于提高內(nèi)核模塊加載過(guò)程的安全性。進(jìn)一步參見(jiàn)圖5,其示出了在內(nèi)核模塊中生成標(biāo)識(shí)信息步驟的一個(gè)實(shí)施例的流程500。該步驟包括:步驟501,獲取內(nèi)核模塊,并確定內(nèi)核模塊是否滿足預(yù)設(shè)條件。在本實(shí)施例中,上述電子設(shè)備(如圖1所示的服務(wù)器105)首先可以從本地或數(shù)據(jù)庫(kù)服務(wù)器107中獲取內(nèi)核模塊。然后確定該內(nèi)核模塊是否滿足預(yù)設(shè)條件。其中,預(yù)設(shè)條件可以包括該內(nèi)核模塊與待加載該內(nèi)核模塊的內(nèi)核相兼容。作為示例,內(nèi)核模塊A中不存在內(nèi)核B不支持的函數(shù)和數(shù)據(jù)結(jié)構(gòu)等,則可以確定內(nèi)核模塊A滿足預(yù)設(shè)條件。步驟502,響應(yīng)于確定內(nèi)核模塊滿足預(yù)設(shè)條件,通過(guò)預(yù)設(shè)方法在內(nèi)核模塊中生成標(biāo)識(shí)信息。在本實(shí)施例中,在確定內(nèi)核模塊滿足預(yù)設(shè)條件后,上述電子設(shè)備可以通過(guò)預(yù)設(shè)方法在內(nèi)核模塊中生成標(biāo)識(shí)信息。例如,通過(guò)編譯指令在內(nèi)核模塊中添加信息,以生成標(biāo)識(shí)信息?;蛘呃脤?xiě)工具來(lái)修改內(nèi)核模塊中的信息,以生成標(biāo)識(shí)信息。在本實(shí)施例中,每次生成的標(biāo)識(shí)信息可以相同,也可以不相同。作為示例,標(biāo)識(shí)信息可以與內(nèi)核模塊所適用的操作系統(tǒng)相對(duì)應(yīng)。比如:適用Windows操作系統(tǒng)的內(nèi)核模塊對(duì)應(yīng)的標(biāo)識(shí)信息為1;適用Linux操作系統(tǒng)的內(nèi)核模塊對(duì)應(yīng)的標(biāo)識(shí)信息為2。這樣便于內(nèi)核模塊的分類與管理。在圖5所示的實(shí)施例中,通過(guò)對(duì)內(nèi)核模塊進(jìn)行篩選,即選出滿足預(yù)設(shè)條件的內(nèi)核模塊,避免了對(duì)任意內(nèi)核模塊都進(jìn)行生成標(biāo)識(shí)信息的步驟。同時(shí)通過(guò)在滿足預(yù)設(shè)條件的內(nèi)核模塊中生成標(biāo)識(shí)信息,可以實(shí)現(xiàn)僅對(duì)內(nèi)核模塊進(jìn)行一次編譯或修改,便可以加載到同種操作系統(tǒng)的不同版本的內(nèi)核中,減少了對(duì)內(nèi)核模塊的編譯或修改次數(shù),進(jìn)一步有利于擴(kuò)大內(nèi)核模塊的適用范圍。進(jìn)一步參考圖6,作為對(duì)上述各圖所示方法的實(shí)現(xiàn),本申請(qǐng)?zhí)峁┝艘环N內(nèi)核模塊加載裝置的一個(gè)實(shí)施例,該裝置實(shí)施例與圖2所示的方法實(shí)施例相對(duì)應(yīng),該裝置具體可以應(yīng)用于各種電子設(shè)備中。如圖6所示,本實(shí)施例的內(nèi)核模塊加載裝置600包括:檢測(cè)單元601、標(biāo)識(shí)信息確定單元602和第一加載單元603。其中,檢測(cè)單元601配置用于檢測(cè)用于指示將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中的指令;標(biāo)識(shí)信息確定單元602配置用于響應(yīng)于檢測(cè)到指令,確定待加載內(nèi)核模塊中是否存在標(biāo)識(shí)信息,其中,標(biāo)識(shí)信息用于表征將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中;第一加載單元603配置用于響應(yīng)于確定待加載內(nèi)核模塊中存在標(biāo)識(shí)信息,將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中。在本實(shí)施例中,檢測(cè)單元601、標(biāo)識(shí)信息確定單元602和第一加載單元603的具體實(shí)現(xiàn)過(guò)程及帶來(lái)的有益效果可以參考圖2實(shí)施例中對(duì)應(yīng)的步驟201、步驟202和步驟203的相關(guān)描述,此處不再贅述。在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,第一加載單元603可以進(jìn)一步配置用于:響應(yīng)于確定待加載內(nèi)核模塊中存在標(biāo)識(shí)信息,對(duì)標(biāo)識(shí)信息進(jìn)行安全驗(yàn)證;若標(biāo)識(shí)信息通過(guò)安全驗(yàn)證,則將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中。在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,該裝置600還可以包括:獲取單元(圖中未示出),配置用于獲取內(nèi)核模塊,并確定內(nèi)核模塊是否滿足預(yù)設(shè)條件;生成單元(圖中未示出),配置用于響應(yīng)于確定內(nèi)核模塊滿足預(yù)設(shè)條件,通過(guò)預(yù)設(shè)方法在內(nèi)核模塊中生成標(biāo)識(shí)信息。在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,預(yù)設(shè)條件包括內(nèi)核模塊與待加載內(nèi)核模塊的內(nèi)核相兼容。在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,該裝置600還可以包括:校驗(yàn)單元(圖中未示出),配置用于響應(yīng)于確定待加載內(nèi)核模塊中不存在標(biāo)識(shí)信息,對(duì)待加載內(nèi)核模塊進(jìn)行加載校驗(yàn);第二加載單元(圖中未示出),配置用于若待加載內(nèi)核模塊通過(guò)加載校驗(yàn),則將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中。下面參考圖7,其示出了適于用來(lái)實(shí)現(xiàn)本申請(qǐng)實(shí)施例的服務(wù)器的計(jì)算機(jī)系統(tǒng)700的結(jié)構(gòu)示意圖。圖7示出的服務(wù)器僅僅是一個(gè)示例,不應(yīng)對(duì)本申請(qǐng)實(shí)施例的功能和使用范圍帶來(lái)任何限制。如圖7所示,計(jì)算機(jī)系統(tǒng)700包括中央處理單元(CPU)701,其可以根據(jù)存儲(chǔ)在只讀存儲(chǔ)器(ROM)702中的程序或者從存儲(chǔ)部分708加載到隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)703中的程序而執(zhí)行各種適當(dāng)?shù)膭?dòng)作和處理。在RAM703中,還存儲(chǔ)有系統(tǒng)700操作所需的各種程序和數(shù)據(jù)。CPU701、ROM702以及RAM703通過(guò)總線704彼此相連。輸入/輸出(I/O)接口705也連接至總線704。以下部件連接至I/O接口705:包括鍵盤、鼠標(biāo)等的輸入部分706;包括諸如陰極射線管(CRT)、液晶顯示器(LCD)等以及揚(yáng)聲器等的輸出部分707;包括硬盤等的存儲(chǔ)部分708;以及包括諸如LAN卡、調(diào)制解調(diào)器等的網(wǎng)絡(luò)接口卡的通信部分709。通信部分709經(jīng)由諸如因特網(wǎng)的網(wǎng)絡(luò)執(zhí)行通信處理。驅(qū)動(dòng)器710也根據(jù)需要連接至I/O接口705??刹鹦督橘|(zhì)711,諸如磁盤、光盤、磁光盤、半導(dǎo)體存儲(chǔ)器等等,根據(jù)需要安裝在驅(qū)動(dòng)器710上,以便于從其上讀出的計(jì)算機(jī)程序根據(jù)需要被安裝入存儲(chǔ)部分708。特別地,根據(jù)本公開(kāi)的實(shí)施例,上文參考流程圖描述的過(guò)程可以被實(shí)現(xiàn)為計(jì)算機(jī)軟件程序。例如,本公開(kāi)的實(shí)施例包括一種計(jì)算機(jī)程序產(chǎn)品,其包括承載在計(jì)算機(jī)可讀介質(zhì)上的計(jì)算機(jī)程序,該計(jì)算機(jī)程序包含用于執(zhí)行流程圖所示的方法的程序代碼。在這樣的實(shí)施例中,該計(jì)算機(jī)程序可以通過(guò)通信部分709從網(wǎng)絡(luò)上被下載和安裝,和/或從可拆卸介質(zhì)711被安裝。在該計(jì)算機(jī)程序被中央處理單元(CPU)701執(zhí)行時(shí),執(zhí)行本申請(qǐng)的方法中限定的上述功能。需要說(shuō)明的是,本申請(qǐng)上述的計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)或者是上述兩者的任意組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子可以包括但不限于:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)磁盤、硬盤、隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPROM或閃存)、光纖、便攜式緊湊磁盤只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本申請(qǐng)中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。而在本申請(qǐng)中,計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào),其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括但不限于電磁信號(hào)、光信號(hào)或上述的任意合適的組合。計(jì)算機(jī)可讀的信號(hào)介質(zhì)還可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括但不限于:無(wú)線、電線、光纜、RF等等,或者上述的任意合適的組合。附圖中的流程圖和框圖,圖示了按照本申請(qǐng)各種實(shí)施例的方法、裝置和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段、或代碼的一部分,該模塊、程序段、或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)接連地表示的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。描述于本申請(qǐng)實(shí)施例中所涉及到的單元可以通過(guò)軟件的方式實(shí)現(xiàn),也可以通過(guò)硬件的方式來(lái)實(shí)現(xiàn)。所描述的單元也可以設(shè)置在處理器中,例如,可以描述為:一種處理器包括檢測(cè)單元、標(biāo)識(shí)信息確定單元和第一加載單元。其中,這些單元的名稱在某種情況下并不構(gòu)成對(duì)該單元本身的限定,例如,檢測(cè)單元還可以被描述為“檢測(cè)用于指示將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中的指令的單元”。作為另一方面,本申請(qǐng)還提供了一種計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以是上述實(shí)施例中描述的服務(wù)器中所包含的;也可以是單獨(dú)存在,而未裝配入該服務(wù)器中。上述計(jì)算機(jī)可讀介質(zhì)承載有一個(gè)或者多個(gè)程序,當(dāng)上述一個(gè)或者多個(gè)程序被該服務(wù)器執(zhí)行時(shí),使得該服務(wù)器:檢測(cè)用于指示將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中的指令;響應(yīng)于檢測(cè)到指令,確定待加載內(nèi)核模塊中是否存在標(biāo)識(shí)信息,其中,標(biāo)識(shí)信息用于表征將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中;響應(yīng)于確定待加載內(nèi)核模塊中存在標(biāo)識(shí)信息,將待加載內(nèi)核模塊加載到目標(biāo)內(nèi)核中。以上描述僅為本申請(qǐng)的較佳實(shí)施例以及對(duì)所運(yùn)用技術(shù)原理的說(shuō)明。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本申請(qǐng)中所涉及的發(fā)明范圍,并不限于上述技術(shù)特征的特定組合而成的技術(shù)方案,同時(shí)也應(yīng)涵蓋在不脫離上述發(fā)明構(gòu)思的情況下,由上述技術(shù)特征或其等同特征進(jìn)行任意組合而形成的其它技術(shù)方案。例如上述特征與本申請(qǐng)中公開(kāi)的(但不限于)具有類似功能的技術(shù)特征進(jìn)行互相替換而形成的技術(shù)方案。當(dāng)前第1頁(yè)1 2 3 當(dāng)前第1頁(yè)1 2 3