本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種驅(qū)動(dòng)管理方法、裝置及系統(tǒng)。
背景技術(shù):
隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,計(jì)算機(jī)的使用越來(lái)越頻繁,已成為工作和日常生活中不可缺少的一部分。對(duì)計(jì)算機(jī)而言,需要通過(guò)安裝合適的驅(qū)動(dòng)來(lái)驅(qū)使硬件運(yùn)轉(zhuǎn)而保證計(jì)算機(jī)的正常運(yùn)行。然而,在實(shí)際操作計(jì)算機(jī)的過(guò)程中,可能出現(xiàn)因其硬件設(shè)備的驅(qū)動(dòng)未安裝成功或兼容性不好等原因?qū)е聼o(wú)法正常使用計(jì)算機(jī),以致影響工作進(jìn)度和個(gè)人生活。
技術(shù)實(shí)現(xiàn)要素:
為此,本發(fā)明提供一種驅(qū)動(dòng)管理方案,以力圖解決或者至少緩解上面存在的問(wèn)題。
根據(jù)本發(fā)明的一個(gè)方面,提供一種驅(qū)動(dòng)管理方法,適于在運(yùn)行Linux系統(tǒng)的計(jì)算設(shè)備中執(zhí)行,計(jì)算設(shè)備與驅(qū)動(dòng)管理服務(wù)器通信連接,驅(qū)動(dòng)管理服務(wù)器包括驅(qū)動(dòng)數(shù)據(jù)庫(kù),驅(qū)動(dòng)數(shù)據(jù)庫(kù)中存儲(chǔ)有多條驅(qū)動(dòng)環(huán)境信息,每條驅(qū)動(dòng)環(huán)境信息包括驅(qū)動(dòng)對(duì)應(yīng)的硬件的硬件信息、適用該硬件的計(jì)算設(shè)備的軟件信息和該驅(qū)動(dòng)的驅(qū)動(dòng)版本信息,該方法包括如下步驟:首先,收集計(jì)算設(shè)備中所有硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息,驅(qū)動(dòng)環(huán)境信息包括各硬件的硬件信息、該計(jì)算設(shè)備的軟件信息和該硬件在該計(jì)算設(shè)備中的當(dāng)前驅(qū)動(dòng)版本信息;將待安裝驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息發(fā)送至驅(qū)動(dòng)管理服務(wù)器,指示驅(qū)動(dòng)管理服務(wù)器根據(jù)該驅(qū)動(dòng)環(huán)境信息與驅(qū)動(dòng)數(shù)據(jù)庫(kù)中存儲(chǔ)的驅(qū)動(dòng)環(huán)境信息進(jìn)行匹配來(lái)推薦驅(qū)動(dòng);從驅(qū)動(dòng)管理服務(wù)器下載推薦的驅(qū)動(dòng),從驅(qū)動(dòng)管理服務(wù)器下載推薦的驅(qū)動(dòng),將其安裝至OverlapFS的文件系統(tǒng)中的預(yù)設(shè)磁盤(pán)文件中,并將OverlapFS的文件系統(tǒng)疊加至原始文件系統(tǒng)上;若推薦的驅(qū)動(dòng)的運(yùn)行狀態(tài)正常,則將OverlapFS的文件系統(tǒng)中的預(yù)設(shè)磁盤(pán)文件合并寫(xiě)入原始文件系統(tǒng),并刪除磁盤(pán)文件;若推薦的驅(qū)動(dòng)的運(yùn)行狀態(tài)不正常,則重啟計(jì)算設(shè)備后將OverlapFS的文件系統(tǒng)中的預(yù)設(shè)磁盤(pán)文件直接刪除。
可選地,在根據(jù)本發(fā)明的驅(qū)動(dòng)管理方法中,還包括當(dāng)推薦的驅(qū)動(dòng)的運(yùn)行狀態(tài)正常時(shí),發(fā)送已安裝推薦的驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息至驅(qū)動(dòng)管理服務(wù)器,以供驅(qū)動(dòng)管理服務(wù)器更新驅(qū)動(dòng)數(shù)據(jù)庫(kù)。
可選地,在根據(jù)本發(fā)明的驅(qū)動(dòng)管理方法中,驅(qū)動(dòng)數(shù)據(jù)庫(kù)預(yù)先存儲(chǔ)有從開(kāi)源驅(qū)動(dòng)和閉源驅(qū)動(dòng)中收集的驅(qū)動(dòng)環(huán)境信息。
可選地,在根據(jù)本發(fā)明的驅(qū)動(dòng)管理方法中,硬件信息包括CPU、內(nèi)存、主板、顯卡、聲卡、網(wǎng)卡、硬盤(pán)、PCI外設(shè)和USB外設(shè)中至少一種的相關(guān)信息。
可選地,在根據(jù)本發(fā)明的驅(qū)動(dòng)管理方法中,軟件信息包括內(nèi)核版本、Xorg版本、Bluez版本和Pulseaudio配置中至少一種的相關(guān)信息。
可選地,在根據(jù)本發(fā)明的驅(qū)動(dòng)管理方法中,驅(qū)動(dòng)管理服務(wù)器根據(jù)該驅(qū)動(dòng)環(huán)境信息與驅(qū)動(dòng)數(shù)據(jù)庫(kù)中存儲(chǔ)的驅(qū)動(dòng)環(huán)境信息進(jìn)行匹配來(lái)推薦驅(qū)動(dòng)包括:根據(jù)待安裝驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息中的硬件信息,在驅(qū)動(dòng)數(shù)據(jù)庫(kù)中查找對(duì)應(yīng)的一條或多條驅(qū)動(dòng)環(huán)境信息;將待安裝驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息與所查找到的一條或多條驅(qū)動(dòng)環(huán)境信息進(jìn)行匹配,獲取其中軟件信息相似度最高的一條驅(qū)動(dòng)環(huán)境信息;將獲取到的驅(qū)動(dòng)環(huán)境信息所對(duì)應(yīng)的驅(qū)動(dòng)推薦給計(jì)算設(shè)備。
根據(jù)本發(fā)明的又一個(gè)方面,提供一種驅(qū)動(dòng)管理裝置,駐留在運(yùn)行Linux系統(tǒng)的計(jì)算設(shè)備中,計(jì)算設(shè)備與驅(qū)動(dòng)管理服務(wù)器通信連接,驅(qū)動(dòng)管理服務(wù)器包括驅(qū)動(dòng)數(shù)據(jù)庫(kù),驅(qū)動(dòng)數(shù)據(jù)庫(kù)中存儲(chǔ)有多條驅(qū)動(dòng)環(huán)境信息,每條驅(qū)動(dòng)環(huán)境信息包括驅(qū)動(dòng)對(duì)應(yīng)的硬件的硬件信息、適用該硬件的計(jì)算設(shè)備的軟件信息和該驅(qū)動(dòng)的驅(qū)動(dòng)版本信息,該裝置包括收集模塊、發(fā)送模塊、下載模塊、安裝模塊、第一處理模塊和第二處理模塊。其中,收集模塊適于收集計(jì)算設(shè)備中所有硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息,驅(qū)動(dòng)環(huán)境信息包括各硬件的硬件信息、該計(jì)算設(shè)備的軟件信息和該硬件在該計(jì)算設(shè)備中的當(dāng)前驅(qū)動(dòng)版本信息;發(fā)送模塊適于將待安裝驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息發(fā)送至驅(qū)動(dòng)管理服務(wù)器,指示驅(qū)動(dòng)管理服務(wù)器根據(jù)該驅(qū)動(dòng)環(huán)境信息與驅(qū)動(dòng)數(shù)據(jù)庫(kù)中存儲(chǔ)的驅(qū)動(dòng)環(huán)境信息進(jìn)行匹配來(lái)推薦驅(qū)動(dòng);下載模塊適于從驅(qū)動(dòng)管理服務(wù)器下載推薦的驅(qū)動(dòng);安裝模塊適于將推薦的驅(qū)動(dòng)安裝至OverlapFS的文件系統(tǒng)中的預(yù)設(shè)磁盤(pán)文件中,并將并將OverlapFS的文件系統(tǒng)疊加至原始文件系統(tǒng)上;第一處理模塊適于當(dāng)推薦的驅(qū)動(dòng)的運(yùn)行狀態(tài)正常時(shí),將OverlapFS的文件系統(tǒng)中的預(yù)設(shè)磁盤(pán)文件合并寫(xiě)入原始文件系統(tǒng),并刪除磁盤(pán)文件;第二處理模塊適于當(dāng)推薦的驅(qū)動(dòng)的運(yùn)行狀態(tài)不正常時(shí),重啟計(jì)算設(shè)備后將OverlapFS的文件系統(tǒng)中的預(yù)設(shè)磁盤(pán)文件直接刪除。
可選地,在根據(jù)本發(fā)明的驅(qū)動(dòng)管理裝置中,發(fā)送模塊還適于當(dāng)推薦的驅(qū)動(dòng)的運(yùn)行狀態(tài)正常時(shí),發(fā)送已安裝推薦的驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息至驅(qū)動(dòng)管理服務(wù)器,以供驅(qū)動(dòng)管理服務(wù)器更新驅(qū)動(dòng)數(shù)據(jù)庫(kù)。
可選地,在根據(jù)本發(fā)明的驅(qū)動(dòng)管理裝置中,驅(qū)動(dòng)數(shù)據(jù)庫(kù)預(yù)先存儲(chǔ)有從開(kāi)源驅(qū)動(dòng)和閉源驅(qū)動(dòng)中收集的驅(qū)動(dòng)環(huán)境信息。
可選地,在根據(jù)本發(fā)明的驅(qū)動(dòng)管理裝置中,硬件信息包括CPU、內(nèi)存、主板、顯卡、聲卡、網(wǎng)卡、硬盤(pán)、PCI外設(shè)和USB外設(shè)中至少一種的相關(guān)信息。
可選地,在根據(jù)本發(fā)明的驅(qū)動(dòng)管理裝置中,軟件信息包括內(nèi)核版本、Xorg版本、Bluez版本和Pulseaudio配置中至少一種的相關(guān)信息。
根據(jù)本發(fā)明的又一個(gè)方面,提供一種計(jì)算設(shè)備,包括根據(jù)本發(fā)明的驅(qū)動(dòng)管理裝置。
根據(jù)本發(fā)明的又一個(gè)方面,提供一種驅(qū)動(dòng)管理服務(wù)器,與多個(gè)計(jì)算設(shè)備通信連接,該驅(qū)動(dòng)管理服務(wù)器包括驅(qū)動(dòng)數(shù)據(jù)庫(kù)、接收模塊、查找模塊、匹配模塊和推薦模塊。其中,驅(qū)動(dòng)數(shù)據(jù)庫(kù)存儲(chǔ)有多條驅(qū)動(dòng)環(huán)境信息,每條驅(qū)動(dòng)環(huán)境信息包括驅(qū)動(dòng)對(duì)應(yīng)的硬件的硬件信息、適用該硬件的計(jì)算設(shè)備的軟件信息和該驅(qū)動(dòng)的驅(qū)動(dòng)版本信息;接收模塊適于接收計(jì)算設(shè)備發(fā)送的待安裝驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息;查找模塊適于根據(jù)待安裝驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息中的硬件信息,在驅(qū)動(dòng)數(shù)據(jù)庫(kù)中查找對(duì)應(yīng)的一條或多條驅(qū)動(dòng)環(huán)境信息;匹配模塊適于將待安裝驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息與所查找到的一條或多條驅(qū)動(dòng)環(huán)境信息進(jìn)行匹配,獲取其中軟件信息相似度最高的一條驅(qū)動(dòng)環(huán)境信息;推薦模塊適于將獲取到的驅(qū)動(dòng)環(huán)境信息所對(duì)應(yīng)的驅(qū)動(dòng)推薦給計(jì)算設(shè)備。
可選地,在根據(jù)本發(fā)明的驅(qū)動(dòng)管理服務(wù)器中,接收模塊還適于當(dāng)推薦的驅(qū)動(dòng)的運(yùn)行狀態(tài)正常時(shí),接收計(jì)算設(shè)備發(fā)送的已安裝推薦的驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息。
可選地,在根據(jù)本發(fā)明的驅(qū)動(dòng)管理服務(wù)器中,還包括更新模塊,適于根據(jù)已安裝推薦的驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息更新驅(qū)動(dòng)數(shù)據(jù)庫(kù)。
可選地,在根據(jù)本發(fā)明的驅(qū)動(dòng)管理服務(wù)器中,驅(qū)動(dòng)數(shù)據(jù)庫(kù)預(yù)先存儲(chǔ)有從開(kāi)源驅(qū)動(dòng)和閉源驅(qū)動(dòng)中收集的驅(qū)動(dòng)環(huán)境信息。
根據(jù)本發(fā)明的又一個(gè)方面,還提供一種驅(qū)動(dòng)管理系統(tǒng),包括多個(gè)根據(jù)本發(fā)明的計(jì)算設(shè)備和根據(jù)本發(fā)明的驅(qū)動(dòng)管理服務(wù)器。
根據(jù)本發(fā)明的驅(qū)動(dòng)管理的技術(shù)方案,將計(jì)算設(shè)備中待安裝驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息發(fā)送至驅(qū)動(dòng)管理服務(wù)器,指示驅(qū)動(dòng)管理服務(wù)器根據(jù)該驅(qū)動(dòng)環(huán)境信息與驅(qū)動(dòng)數(shù)據(jù)庫(kù)中存儲(chǔ)的驅(qū)動(dòng)環(huán)境信息進(jìn)行匹配來(lái)推薦驅(qū)動(dòng),將推薦的驅(qū)動(dòng)下載后安裝至OverlapFS的文件系統(tǒng)的預(yù)設(shè)磁盤(pán)文件中,將OverlapFS的文件系統(tǒng)疊加至原始文件系統(tǒng)上,根據(jù)上述驅(qū)動(dòng)的運(yùn)行狀態(tài)來(lái)對(duì)OverlapFS的文件系統(tǒng)進(jìn)行處理。上述技術(shù)方案中的驅(qū)動(dòng)環(huán)境信息包括硬件的硬件信息、計(jì)算設(shè)備的軟件信息和該硬件在該計(jì)算設(shè)備中的驅(qū)動(dòng)版本信息,則在硬件信息匹配的前提下對(duì)軟件信息進(jìn)行匹配,提升了匹配的準(zhǔn)確性。同時(shí)利用OverlapFS的文件系統(tǒng),在Linux系統(tǒng)下實(shí)現(xiàn)了內(nèi)核級(jí)技術(shù)對(duì)原始驅(qū)動(dòng)備份,若推薦的驅(qū)動(dòng)安裝后運(yùn)行異常則還原原始驅(qū)動(dòng),以避免影響計(jì)算設(shè)備正常使用的情況發(fā)生。
附圖說(shuō)明
為了實(shí)現(xiàn)上述以及相關(guān)目的,本文結(jié)合下面的描述和附圖來(lái)描述某些說(shuō)明性方面,這些方面指示了可以實(shí)踐本文所公開(kāi)的原理的各種方式,并且所有方面及其等效方面旨在落入所要求保護(hù)的主題的范圍內(nèi)。通過(guò)結(jié)合附圖閱讀下面的詳細(xì)描述,本公開(kāi)的上述以及其它目的、特征和優(yōu)勢(shì)將變得更加明顯。遍及本公開(kāi),相同的附圖標(biāo)記通常指代相同的部件或元素。
圖1示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的驅(qū)動(dòng)管理系統(tǒng)100的示意圖;
圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的計(jì)算設(shè)備200的結(jié)構(gòu)框圖;
圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的驅(qū)動(dòng)管理方法300的流程圖;
圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的驅(qū)動(dòng)管理裝置400的示意圖;以及
圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的驅(qū)動(dòng)管理服務(wù)器600的示意圖
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的驅(qū)動(dòng)管理系統(tǒng)100的示意圖。如圖1所示,驅(qū)動(dòng)管理系統(tǒng)100中包括兩個(gè)運(yùn)行Linux系統(tǒng)的計(jì)算設(shè)備,分別是計(jì)算設(shè)備200和計(jì)算設(shè)備500,一般為PC機(jī),但不限于此,計(jì)算設(shè)備的數(shù)量也不限于兩個(gè)。該系統(tǒng)100中還包括一個(gè)驅(qū)動(dòng)管理服務(wù)器600,驅(qū)動(dòng)管理服務(wù)器600包括驅(qū)動(dòng)數(shù)據(jù)庫(kù)(圖中未示出),該驅(qū)動(dòng)數(shù)據(jù)庫(kù)中存儲(chǔ)有多條驅(qū)動(dòng)環(huán)境信息,每條驅(qū)動(dòng)環(huán)境信息包括驅(qū)動(dòng)對(duì)應(yīng)的硬件的硬件信息、適用該硬件的計(jì)算設(shè)備的軟件信息和該驅(qū)動(dòng)的驅(qū)動(dòng)版本信息。在本實(shí)施例中,驅(qū)動(dòng)管理服務(wù)器600與計(jì)算設(shè)備200、計(jì)算設(shè)備500通過(guò)通信網(wǎng)絡(luò)交換信息,該通信網(wǎng)絡(luò)以分布式網(wǎng)絡(luò)的形式實(shí)現(xiàn)。以下將以計(jì)算設(shè)備200為例進(jìn)行說(shuō)明。具體來(lái)說(shuō),計(jì)算設(shè)備200向驅(qū)動(dòng)管理服務(wù)器600發(fā)送待安裝驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息,而驅(qū)動(dòng)管理服務(wù)器600根據(jù)該驅(qū)動(dòng)環(huán)境信息與驅(qū)動(dòng)數(shù)據(jù)庫(kù)中存儲(chǔ)的驅(qū)動(dòng)環(huán)境信息進(jìn)行匹配來(lái)推薦驅(qū)動(dòng),計(jì)算設(shè)備200從驅(qū)動(dòng)管理服務(wù)器600中下載推薦的驅(qū)動(dòng),將其安裝至OverlapFS的文件系統(tǒng)中的預(yù)設(shè)磁盤(pán)文件中,并將該OverlapFS的文件系統(tǒng)疊加至原始文件系統(tǒng)上。若推薦的驅(qū)動(dòng)的運(yùn)行狀態(tài)正常,計(jì)算設(shè)備200將OverlapFS的文件系統(tǒng)中的預(yù)設(shè)磁盤(pán)文件合并寫(xiě)入原始文件系統(tǒng),并刪除所述磁盤(pán)文件;若推薦的驅(qū)動(dòng)的運(yùn)行狀態(tài)不正常,則重啟計(jì)算設(shè)備后將OverlapFS的文件系統(tǒng)中的預(yù)設(shè)磁盤(pán)文件直接刪除。通過(guò)本驅(qū)動(dòng)管理系統(tǒng)100,一方面通過(guò)驅(qū)動(dòng)環(huán)境信息的匹配提升了驅(qū)動(dòng)推薦的可靠性,另一方面采用OverlapFS的文件系統(tǒng)實(shí)現(xiàn)驅(qū)動(dòng)備份和還原功能,防止因推薦的驅(qū)動(dòng)可能出現(xiàn)的運(yùn)行不正常狀態(tài)而導(dǎo)致計(jì)算設(shè)備無(wú)法使用的問(wèn)題產(chǎn)生。
圖2是示例計(jì)算設(shè)備200的框圖。在基本的配置202中,計(jì)算設(shè)備200典型地包括系統(tǒng)存儲(chǔ)器206和一個(gè)或者多個(gè)處理器204。存儲(chǔ)器總線(xiàn)208可以用于在處理器204和系統(tǒng)存儲(chǔ)器206之間的通信。
取決于期望的配置,處理器204可以是任何類(lèi)型的處理,包括但不限于:微處理器(μP)、微控制器(μC)、數(shù)字信息處理器(DSP)或者它們的任何組合。處理器204可以包括諸如一級(jí)高速緩存210和二級(jí)高速緩存212之類(lèi)的一個(gè)或者多個(gè)級(jí)別的高速緩存、處理器核心214和寄存器216。示例的處理器核心214可以包括運(yùn)算邏輯單元(ALU)、浮點(diǎn)數(shù)單元(FPU)、數(shù)字信號(hào)處理核心(DSP核心)或者它們的任何組合。示例的存儲(chǔ)器控制器218可以與處理器204一起使用,或者在一些實(shí)現(xiàn)中,存儲(chǔ)器控制器218可以是處理器204的一個(gè)內(nèi)部部分。
取決于期望的配置,系統(tǒng)存儲(chǔ)器206可以是任意類(lèi)型的存儲(chǔ)器,包括但不限于:易失性存儲(chǔ)器(諸如RAM)、非易失性存儲(chǔ)器(諸如ROM、閃存等)或者它們的任何組合。系統(tǒng)存儲(chǔ)器206可以包括操作系統(tǒng)220、一個(gè)或者多個(gè)應(yīng)用222以及程序數(shù)據(jù)224。在一些實(shí)施方式中,應(yīng)用222可以布置為在操作系統(tǒng)上利用程序數(shù)據(jù)224進(jìn)行操作。
計(jì)算設(shè)備200還可以包括有助于從各種接口設(shè)備(例如,輸出設(shè)備242、外設(shè)接口244和通信設(shè)備246)到基本配置202經(jīng)由總線(xiàn)/接口控制器230的通信的接口總線(xiàn)240。示例的輸出設(shè)備242包括圖形處理單元248和音頻處理單元250。它們可以被配置為有助于經(jīng)由一個(gè)或者多個(gè)A/V端口252與諸如顯示器或者揚(yáng)聲器之類(lèi)的各種外部設(shè)備進(jìn)行通信。示例外設(shè)接口244可以包括串行接口控制器254和并行接口控制器256,它們可以被配置為有助于經(jīng)由一個(gè)或者多個(gè)I/O端口258和諸如輸入設(shè)備(例如,鍵盤(pán)、鼠標(biāo)、筆、語(yǔ)音輸入設(shè)備、觸摸輸入設(shè)備)或者其他外設(shè)(例如打印機(jī)、掃描儀等)之類(lèi)的外部設(shè)備進(jìn)行通信。示例的通信設(shè)備246可以包括網(wǎng)絡(luò)控制器260,其可以被布置為便于經(jīng)由一個(gè)或者多個(gè)通信端口264與一個(gè)或者多個(gè)其他計(jì)算設(shè)備262通過(guò)網(wǎng)絡(luò)通信鏈路的通信。
網(wǎng)絡(luò)通信鏈路可以是通信介質(zhì)的一個(gè)示例。通信介質(zhì)通??梢泽w現(xiàn)為在諸如載波或者其他傳輸機(jī)制之類(lèi)的調(diào)制數(shù)據(jù)信號(hào)中的計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊,并且可以包括任何信息遞送介質(zhì)。“調(diào)制數(shù)據(jù)信號(hào)”可以這樣的信號(hào),它的數(shù)據(jù)集中的一個(gè)或者多個(gè)或者它的改變可以在信號(hào)中編碼信息的方式進(jìn)行。作為非限制性的示例,通信介質(zhì)可以包括諸如有線(xiàn)網(wǎng)絡(luò)或者專(zhuān)線(xiàn)網(wǎng)絡(luò)之類(lèi)的有線(xiàn)介質(zhì),以及諸如聲音、射頻(RF)、微波、紅外(IR)或者其它無(wú)線(xiàn)介質(zhì)在內(nèi)的各種無(wú)線(xiàn)介質(zhì)。這里使用的術(shù)語(yǔ)計(jì)算機(jī)可讀介質(zhì)可以包括存儲(chǔ)介質(zhì)和通信介質(zhì)二者。
計(jì)算設(shè)備200可以實(shí)現(xiàn)為小尺寸便攜(或者移動(dòng))電子設(shè)備的一部分,這些電子設(shè)備可以是諸如蜂窩電話(huà)、個(gè)人數(shù)字助理(PDA)、個(gè)人媒體播放器設(shè)備、無(wú)線(xiàn)網(wǎng)絡(luò)瀏覽設(shè)備、個(gè)人頭戴設(shè)備、應(yīng)用專(zhuān)用設(shè)備、或者可以包括上面任何功能的混合設(shè)備。計(jì)算設(shè)備200還可以實(shí)現(xiàn)為包括桌面計(jì)算機(jī)和筆記本計(jì)算機(jī)配置的個(gè)人計(jì)算機(jī)。在一些實(shí)施例中,計(jì)算設(shè)備200被配置為執(zhí)行根據(jù)本發(fā)明的驅(qū)動(dòng)管理方法。應(yīng)用222包括根據(jù)本發(fā)明的驅(qū)動(dòng)管理裝置400。
圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的驅(qū)動(dòng)管理方法300的流程圖。驅(qū)動(dòng)管理方法300適于在計(jì)算設(shè)備(例如圖2所示的計(jì)算設(shè)備200)中執(zhí)行。
如圖3所示,方法300始于步驟S 310。在步驟S310中,收集計(jì)算設(shè)備中所有硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息,驅(qū)動(dòng)環(huán)境信息包括各硬件的硬件信息、該計(jì)算設(shè)備的軟件信息和該硬件在該計(jì)算設(shè)備中的當(dāng)前驅(qū)動(dòng)版本信息。其中,硬件信息包括CPU、內(nèi)存、主板、顯卡、聲卡、網(wǎng)卡、硬盤(pán)、PCI外設(shè)和USB外設(shè)中至少一種的相關(guān)信息,軟件信息包括內(nèi)核版本、Xorg版本、Bluez版本和Pulseaudio配置中至少一種的相關(guān)信息。在本實(shí)施例中,硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息是通過(guò)調(diào)用Linux系統(tǒng)下成熟的開(kāi)發(fā)庫(kù)和函數(shù)來(lái)獲取的。以查看硬件的硬件信息為例,比如lshw工具可以查看主板上絕大部分外設(shè)信息。執(zhí)行sudolshw命令輸出的結(jié)果中,USB接口部分信息如下所示:
由上述信息可知,該計(jì)算設(shè)備有3個(gè)USB接口,其中1個(gè)與羅技的鼠標(biāo)相連,鼠標(biāo)信息中包括基本信息與拓展信息,其中基本信息包括產(chǎn)品名稱(chēng)USBReseiver[046D:C52F]、制造商Logitech[046D]和總線(xiàn)地址usb@3:1.2,而拓展信息包括固件版本22.00、驅(qū)動(dòng)usbhid、最大電流98mA和傳輸速率12Mbit/s。
而計(jì)算設(shè)備的軟件信息中,Xorg版本的相關(guān)信息與顯卡、鍵盤(pán)、鼠標(biāo)等硬件的關(guān)聯(lián)性較大,Bluez版本的相關(guān)信息與藍(lán)牙等硬件的關(guān)聯(lián)性較大,Pulseaudio配置的相關(guān)信息則與聲卡等硬件的關(guān)聯(lián)性較大。對(duì)Xorg版本而言,與Xorg版本相關(guān)的信息包括Xserver版本、Gtk版本和OpenGL版本,以deepin系統(tǒng)這種Linux系統(tǒng)為例,通過(guò)dpkg命令查詢(xún)Xorg版本的相關(guān)信息,執(zhí)行命令dpkg-W-f=’${version}’xserver-xorg可查詢(xún)Xserver版本,執(zhí)行命令dpkg-W-f=’${version}’libgtk-3-0:amd64可查詢(xún)Gtk版本,而執(zhí)行命令glxinfo|grep"OpenGL version"可查詢(xún)OpenGL版本。就各硬件在計(jì)算設(shè)備中的當(dāng)前驅(qū)動(dòng)版本信息而言,如果計(jì)算設(shè)備中尚未安裝硬件對(duì)應(yīng)的驅(qū)動(dòng),則當(dāng)前驅(qū)動(dòng)版本信息暫無(wú),如果已安裝,則可收集到硬件對(duì)應(yīng)的當(dāng)前驅(qū)動(dòng)版本信息。
隨后,進(jìn)入步驟S320,將待安裝驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息發(fā)送至驅(qū)動(dòng)管理服務(wù)器,指示驅(qū)動(dòng)管理服務(wù)器根據(jù)該驅(qū)動(dòng)環(huán)境信息與驅(qū)動(dòng)數(shù)據(jù)庫(kù)中存儲(chǔ)的驅(qū)動(dòng)環(huán)境信息進(jìn)行匹配來(lái)推薦驅(qū)動(dòng)。其中,驅(qū)動(dòng)數(shù)據(jù)庫(kù)中預(yù)先存儲(chǔ)有從開(kāi)源驅(qū)動(dòng)和閉源驅(qū)動(dòng)中收集的驅(qū)動(dòng)環(huán)境信息。在本實(shí)施例中,開(kāi)源驅(qū)動(dòng)為開(kāi)源軟件倉(cāng)庫(kù)中已有的開(kāi)源驅(qū)動(dòng)程序,而閉源驅(qū)動(dòng)是各個(gè)主流硬件品牌在其官網(wǎng)提供的閉源二進(jìn)制驅(qū)動(dòng)。以待安裝驅(qū)動(dòng)的硬件為網(wǎng)卡為例,在步驟S310中收集到網(wǎng)卡的硬件信息包括類(lèi)型、速率和設(shè)備名稱(chēng),其中網(wǎng)卡的類(lèi)型為有線(xiàn)網(wǎng)卡,速率為1000Mb/s,設(shè)備名稱(chēng)為82567LM Gigabit Network Connection。網(wǎng)卡所在的計(jì)算設(shè)備的軟件信息為內(nèi)核版本的相關(guān)信息,包括內(nèi)核版本K1和網(wǎng)絡(luò)控制器版本N1。此時(shí),計(jì)算設(shè)備中尚未安裝網(wǎng)卡對(duì)應(yīng)的驅(qū)動(dòng),因此當(dāng)前驅(qū)動(dòng)版本信息暫無(wú)。
在步驟S320中,驅(qū)動(dòng)管理服務(wù)器根據(jù)該驅(qū)動(dòng)環(huán)境信息與驅(qū)動(dòng)數(shù)據(jù)庫(kù)中存儲(chǔ)的驅(qū)動(dòng)環(huán)境信息進(jìn)行匹配來(lái)推薦驅(qū)動(dòng)包括:根據(jù)待安裝驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息中的硬件信息,在驅(qū)動(dòng)數(shù)據(jù)庫(kù)中查找對(duì)應(yīng)的一條或多條驅(qū)動(dòng)環(huán)境信息;將待安裝驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息與所查找到的一條或多條驅(qū)動(dòng)環(huán)境信息進(jìn)行匹配,獲取其中軟件信息相似度最高的一條驅(qū)動(dòng)環(huán)境信息;將獲取到的驅(qū)動(dòng)環(huán)境信息所對(duì)應(yīng)的驅(qū)動(dòng)推薦給計(jì)算設(shè)備。其中,驅(qū)動(dòng)數(shù)據(jù)庫(kù)中存儲(chǔ)有多條驅(qū)動(dòng)管理信息,每條驅(qū)動(dòng)環(huán)境信息包括驅(qū)動(dòng)對(duì)應(yīng)的硬件的硬件信息、適用該硬件的計(jì)算設(shè)備的軟件信息和該驅(qū)動(dòng)的驅(qū)動(dòng)版本信息,通過(guò)查找該驅(qū)動(dòng)管理信息中的硬件信息,可以獲取與該硬件信息關(guān)聯(lián)的軟件信息和驅(qū)動(dòng)版本信息。換言之,以驅(qū)動(dòng)對(duì)應(yīng)的硬件的硬件信息為主鍵,將適用該硬件的計(jì)算設(shè)備的軟件信息和該驅(qū)動(dòng)的驅(qū)動(dòng)版本信息作為表項(xiàng),將該表項(xiàng)與該主鍵的關(guān)聯(lián)關(guān)系映射成關(guān)系列表并存儲(chǔ)于驅(qū)動(dòng)管理數(shù)據(jù)庫(kù)中,從而實(shí)現(xiàn)了通過(guò)主鍵和關(guān)系列表來(lái)查找對(duì)應(yīng)表項(xiàng)。在本實(shí)施例中,待安裝驅(qū)動(dòng)的硬件為網(wǎng)卡,該網(wǎng)卡的硬件信息為類(lèi)型“有線(xiàn)網(wǎng)卡”、速率“1000Mb/s”和設(shè)備名稱(chēng)“82567LM Gigabit Network Connection”,根據(jù)上述硬件信息在驅(qū)動(dòng)數(shù)據(jù)庫(kù)中查找與之對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息,該查找到的驅(qū)動(dòng)環(huán)境信息中的硬件信息與上述待安裝驅(qū)動(dòng)的網(wǎng)卡的硬件信息一致。上述所查找到的驅(qū)動(dòng)環(huán)境信息有兩條,第一條驅(qū)動(dòng)環(huán)境信息中的軟件信息包括內(nèi)核版本K1和網(wǎng)絡(luò)控制器版本N2,第二條驅(qū)動(dòng)環(huán)境信息中的軟件信息包括內(nèi)核版本K1和網(wǎng)絡(luò)控制器版本N3。以?xún)?nèi)核版本為一個(gè)維度,網(wǎng)絡(luò)控制器版本為另一個(gè)維度,則軟件信息的相似度可用如下公式計(jì)算:
相似度=內(nèi)核版本相似度×內(nèi)核版本權(quán)值+網(wǎng)絡(luò)控制器版本相似度×網(wǎng)絡(luò)控制器版本權(quán)值
其中,內(nèi)核版本相似度及權(quán)值、網(wǎng)絡(luò)控制器版本相似度及權(quán)值的取值區(qū)間為[0,1],且內(nèi)核版本權(quán)值與網(wǎng)絡(luò)控制器版本權(quán)值之和為1。
在本實(shí)施例中,所查找到的兩條驅(qū)動(dòng)環(huán)境信息中的內(nèi)核版本與待安裝驅(qū)動(dòng)的網(wǎng)卡對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息中的內(nèi)核版本相同,因此兩條驅(qū)動(dòng)信息對(duì)應(yīng)的內(nèi)核版本相似度均為1。而第一條驅(qū)動(dòng)環(huán)境信息對(duì)應(yīng)的網(wǎng)絡(luò)控制器版本相似度為0.8,第二條驅(qū)動(dòng)環(huán)境信息對(duì)應(yīng)的網(wǎng)絡(luò)控制器版本相似度為0.7,而內(nèi)核版本權(quán)值為0.6,網(wǎng)絡(luò)控制器版本權(quán)值為0.4,以此為依據(jù)計(jì)算得出第一條驅(qū)動(dòng)環(huán)境信息中軟件信息的相似度為0.92,第二條驅(qū)動(dòng)環(huán)境信息中軟件信息的相似度為0.88。由上可知,第一條驅(qū)動(dòng)環(huán)境信息中軟件信息的相似度更高,因此獲取該驅(qū)動(dòng)環(huán)境信息所對(duì)應(yīng)的驅(qū)動(dòng),得到該網(wǎng)卡驅(qū)動(dòng)為e1000e,驅(qū)動(dòng)版本信息為3.2.6-k。最后,將網(wǎng)卡驅(qū)動(dòng)e1000e推薦給計(jì)算設(shè)備。
在步驟S330中,從驅(qū)動(dòng)管理服務(wù)器下載推薦的驅(qū)動(dòng),將其安裝至OverlapFS的文件系統(tǒng)中的預(yù)設(shè)磁盤(pán)文件中,并將OverlapFS的文件系統(tǒng)疊加至原始文件系統(tǒng)上。在本實(shí)施例中,預(yù)先在OverlapFS的文件系統(tǒng)中建立預(yù)設(shè)磁盤(pán)文件,將網(wǎng)卡驅(qū)動(dòng)e1000e下載完成后將其安裝至該預(yù)設(shè)磁盤(pán)文件中,然后將OverlapFS的文件系統(tǒng)疊加至原始文件系統(tǒng)上。其中,OverlapFS的文件系統(tǒng)格式是可以疊加到原始文件系統(tǒng)之上的,而對(duì)原始文件系統(tǒng)沒(méi)有任何修改,但是應(yīng)用層看到的是疊加之后的文件系統(tǒng)。
在步驟S340中,若推薦的驅(qū)動(dòng)的運(yùn)行狀態(tài)正常,則將OverlapFS的文件系統(tǒng)中的預(yù)設(shè)磁盤(pán)文件合并寫(xiě)入原始文件系統(tǒng),并刪除所述磁盤(pán)文件。此時(shí),發(fā)送已安裝推薦的驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息至驅(qū)動(dòng)管理服務(wù)器,以供驅(qū)動(dòng)管理服務(wù)器更新驅(qū)動(dòng)數(shù)據(jù)庫(kù)。在本實(shí)施例中,計(jì)算設(shè)備中已安裝推薦的驅(qū)動(dòng)e1001e的網(wǎng)卡所對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息中,硬件信息為類(lèi)型“有線(xiàn)網(wǎng)卡”、速率“1000Mb/s”和設(shè)備名稱(chēng)“82567LM Gigabit Network Connection”,軟件信息為內(nèi)核版本K1和網(wǎng)絡(luò)控制器版本N1,驅(qū)動(dòng)版本信息為3.2.6-k。將上述驅(qū)動(dòng)環(huán)境信息發(fā)送至驅(qū)動(dòng)管理服務(wù)器后,在驅(qū)動(dòng)數(shù)據(jù)庫(kù)中,先將上述網(wǎng)卡的硬件信息設(shè)為新的主鍵,將該網(wǎng)卡的軟件信息和驅(qū)動(dòng)版本信息作為新的表項(xiàng),將上述新的表項(xiàng)與新的主鍵的關(guān)聯(lián)關(guān)系映射到驅(qū)動(dòng)管理數(shù)據(jù)庫(kù)中原有的關(guān)系列表中,從而實(shí)現(xiàn)了驅(qū)動(dòng)數(shù)據(jù)庫(kù)的更新。
在步驟S350中,若推薦的驅(qū)動(dòng)的運(yùn)行狀態(tài)不正常,則重啟計(jì)算設(shè)備后將OverlapFS的文件系統(tǒng)中的預(yù)設(shè)磁盤(pán)文件直接刪除。同時(shí),重新收集已安裝推薦的驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息中的更多的軟件信息,這里更多的軟件信息是指軟件信息具有更多的維度。在本實(shí)施例中,內(nèi)核版本和網(wǎng)絡(luò)控制器版本即為網(wǎng)卡對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息中的軟件信息的兩個(gè)維度信息,此時(shí)再次手機(jī)該軟件信息,獲得第三個(gè)維度信息為Bluez版本,則根據(jù)重新收集的網(wǎng)卡對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息,繼續(xù)執(zhí)行步驟S320以獲取新的推薦的驅(qū)動(dòng)。
以上的驅(qū)動(dòng)管理方法300,同樣適于在計(jì)算設(shè)備500中執(zhí)行。
需要說(shuō)明的是,在實(shí)際處理過(guò)程中,可將步驟S310中收集的計(jì)算設(shè)備中所有硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息發(fā)送至驅(qū)動(dòng)管理服務(wù)器以存儲(chǔ)于驅(qū)動(dòng)數(shù)據(jù)庫(kù)中。此時(shí),驅(qū)動(dòng)數(shù)據(jù)庫(kù)中除上述驅(qū)動(dòng)環(huán)境信息外,還包括驅(qū)動(dòng)管理服務(wù)器預(yù)先從開(kāi)源驅(qū)動(dòng)和閉源驅(qū)動(dòng)中收集的驅(qū)動(dòng)環(huán)境信息。而后在步驟S320中,發(fā)送將待安裝驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境中的硬件信息至驅(qū)動(dòng)管理服務(wù)器,從而驅(qū)動(dòng)管理服務(wù)器根據(jù)上述硬件信息來(lái)進(jìn)行后續(xù)的查找和匹配處理以向計(jì)算設(shè)備推薦驅(qū)動(dòng)。
圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的驅(qū)動(dòng)管理裝置400的示意圖。如圖4所示,該裝置包括:收集模塊410、發(fā)送模塊420、下載模塊430、安裝模塊440、第一處理模塊450和第二處理模塊460。
收集模塊410適于收集計(jì)算設(shè)備中所有硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息,驅(qū)動(dòng)環(huán)境信息包括各硬件的硬件信息、該計(jì)算設(shè)備的軟件信息和該硬件在該計(jì)算設(shè)備中的當(dāng)前驅(qū)動(dòng)版本信息。其中,硬件信息包括CPU、內(nèi)存、主板、顯卡、聲卡、網(wǎng)卡、硬盤(pán)、PCI外設(shè)和USB外設(shè)中至少一種的相關(guān)信息,軟件信息包括內(nèi)核版本、Xorg版本、Bluez版本和Pulseaudio配置中至少一種的相關(guān)信息。在本實(shí)施例中,硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息是通過(guò)調(diào)用Linux系統(tǒng)下成熟的開(kāi)發(fā)庫(kù)和函數(shù)來(lái)獲取的。以查看硬件的硬件信息為例,比如lshw工具可以查看主板上絕大部分外設(shè)信息。而計(jì)算設(shè)備的軟件信息中,Xorg版本的相關(guān)信息與顯卡、鍵盤(pán)、鼠標(biāo)等硬件的關(guān)聯(lián)性較大,Bluez版本的相關(guān)信息與藍(lán)牙等硬件的關(guān)聯(lián)性較大,Pulseaudio配置的相關(guān)信息則與聲卡等硬件的關(guān)聯(lián)性較大。就各硬件在計(jì)算設(shè)備中的當(dāng)前驅(qū)動(dòng)版本信息而言,如果計(jì)算設(shè)備中尚未安裝硬件對(duì)應(yīng)的驅(qū)動(dòng),則當(dāng)前驅(qū)動(dòng)版本信息暫無(wú),如果已安裝,則可收集到硬件對(duì)應(yīng)的當(dāng)前驅(qū)動(dòng)版本信息。
發(fā)送模塊420適于將待安裝驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息發(fā)送至驅(qū)動(dòng)管理服務(wù)器,指示驅(qū)動(dòng)管理服務(wù)器根據(jù)該驅(qū)動(dòng)環(huán)境信息與驅(qū)動(dòng)數(shù)據(jù)庫(kù)中存儲(chǔ)的驅(qū)動(dòng)環(huán)境信息進(jìn)行匹配來(lái)推薦驅(qū)動(dòng)。其中,驅(qū)動(dòng)數(shù)據(jù)庫(kù)中預(yù)先存儲(chǔ)有從開(kāi)源驅(qū)動(dòng)和閉源驅(qū)動(dòng)中收集的驅(qū)動(dòng)環(huán)境信息。在本實(shí)施例中,開(kāi)源驅(qū)動(dòng)為開(kāi)源軟件倉(cāng)庫(kù)中已有的開(kāi)源驅(qū)動(dòng)程序,而閉源驅(qū)動(dòng)是各個(gè)主流硬件品牌在其官網(wǎng)提供的閉源二進(jìn)制驅(qū)動(dòng)。以待安裝驅(qū)動(dòng)的硬件為網(wǎng)卡為例,在步驟S310中收集到網(wǎng)卡的硬件信息包括類(lèi)型、速率和設(shè)備名稱(chēng),其中網(wǎng)卡的類(lèi)型為有線(xiàn)網(wǎng)卡,速率為1000Mb/s,設(shè)備名稱(chēng)為82567LM Gigabit Network Connection。網(wǎng)卡所在的計(jì)算設(shè)備的軟件信息為內(nèi)核版本的相關(guān)信息,包括內(nèi)核版本K1和網(wǎng)絡(luò)控制器版本N1。此時(shí),計(jì)算設(shè)備中尚未安裝網(wǎng)卡對(duì)應(yīng)的驅(qū)動(dòng),因此當(dāng)前驅(qū)動(dòng)版本信息暫無(wú)。
下載模塊430適于從驅(qū)動(dòng)管理服務(wù)器下載推薦的驅(qū)動(dòng)。在本實(shí)施例中,驅(qū)動(dòng)管理服務(wù)器推薦的網(wǎng)卡驅(qū)動(dòng)為e1001e,驅(qū)動(dòng)版本信息為3.2.6-k。
安裝模塊440適于將推薦的驅(qū)動(dòng)安裝至OverlapFS的文件系統(tǒng)中的預(yù)設(shè)磁盤(pán)文件中,并將OverlapFS的文件系統(tǒng)疊加至原始文件系統(tǒng)上。
第一處理模塊450適于當(dāng)推薦的驅(qū)動(dòng)的運(yùn)行狀態(tài)正常時(shí),將OverlapFS的文件系統(tǒng)中的預(yù)設(shè)磁盤(pán)文件合并寫(xiě)入原始文件系統(tǒng),并刪除磁盤(pán)文件。第一處理模塊450還適于當(dāng)推薦的驅(qū)動(dòng)的運(yùn)行狀態(tài)正常時(shí),發(fā)送已安裝推薦的驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息至驅(qū)動(dòng)管理服務(wù)器,以供驅(qū)動(dòng)管理服務(wù)器更新驅(qū)動(dòng)數(shù)據(jù)庫(kù)。
第二處理模塊460適于當(dāng)推薦的驅(qū)動(dòng)的運(yùn)行狀態(tài)不正常時(shí),重啟計(jì)算設(shè)備后將OverlapFS的文件系統(tǒng)中的預(yù)設(shè)磁盤(pán)文件直接刪除。
圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的驅(qū)動(dòng)管理服務(wù)器600的示意圖。如圖5所示,該裝置包括:驅(qū)動(dòng)數(shù)據(jù)庫(kù)610、接收模塊620、查找模塊630、匹配模塊640和推薦模塊650。驅(qū)動(dòng)管理服務(wù)器600還包括更新模塊(圖中未示出),與驅(qū)動(dòng)數(shù)據(jù)庫(kù)610和接收模塊620相連,適于根據(jù)已安裝推薦的驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息更新驅(qū)動(dòng)數(shù)據(jù)庫(kù)。
驅(qū)動(dòng)數(shù)據(jù)庫(kù)610存儲(chǔ)有多條驅(qū)動(dòng)環(huán)境信息,每條驅(qū)動(dòng)環(huán)境信息包括驅(qū)動(dòng)對(duì)應(yīng)的硬件的硬件信息、適用該硬件的計(jì)算設(shè)備的軟件信息和該驅(qū)動(dòng)的驅(qū)動(dòng)版本信息。驅(qū)動(dòng)數(shù)據(jù)庫(kù)610預(yù)先存儲(chǔ)有從開(kāi)源驅(qū)動(dòng)和閉源驅(qū)動(dòng)中收集的驅(qū)動(dòng)環(huán)境信息。
接收模塊620適于接收計(jì)算設(shè)備發(fā)送的待安裝驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息。接收模塊620還適于當(dāng)推薦的驅(qū)動(dòng)的運(yùn)行狀態(tài)正常時(shí),接收計(jì)算設(shè)備發(fā)送的已安裝推薦的驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息。
查找模塊630適于根據(jù)待安裝驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息中的硬件信息,在驅(qū)動(dòng)數(shù)據(jù)庫(kù)中查找對(duì)應(yīng)的一條或多條驅(qū)動(dòng)環(huán)境信息。
匹配模塊640適于將待安裝驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息與所查找到的一條或多條驅(qū)動(dòng)環(huán)境信息進(jìn)行匹配,獲取其中軟件信息相似度最高的一條驅(qū)動(dòng)環(huán)境信息。
推薦模塊650適于將獲取到的驅(qū)動(dòng)環(huán)境信息所對(duì)應(yīng)的驅(qū)動(dòng)推薦給計(jì)算設(shè)備。
關(guān)于驅(qū)動(dòng)管理的具體步驟以及實(shí)施例,在基于圖3的描述中已經(jīng)詳細(xì)公開(kāi),此處不再贅述。
對(duì)于計(jì)算機(jī)而言,需要通過(guò)安裝合適的驅(qū)動(dòng)來(lái)驅(qū)使硬件運(yùn)轉(zhuǎn)而保證計(jì)算機(jī)的正常運(yùn)行。然而,在實(shí)際使用過(guò)程中,可能出現(xiàn)因其硬件設(shè)備的驅(qū)動(dòng)未安裝成功或兼容性不好等原因?qū)е聼o(wú)法計(jì)算機(jī)無(wú)法正常運(yùn)行。根據(jù)本發(fā)明實(shí)施例的驅(qū)動(dòng)管理的技術(shù)方案,將計(jì)算設(shè)備中待安裝驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息發(fā)送至驅(qū)動(dòng)管理服務(wù)器,指示驅(qū)動(dòng)管理服務(wù)器根據(jù)該驅(qū)動(dòng)環(huán)境信息與驅(qū)動(dòng)數(shù)據(jù)庫(kù)中存儲(chǔ)的驅(qū)動(dòng)環(huán)境信息進(jìn)行匹配來(lái)推薦驅(qū)動(dòng),將推薦的驅(qū)動(dòng)下載后安裝至OverlapFS的文件系統(tǒng)的預(yù)設(shè)磁盤(pán)文件中,將OverlapFS的文件系統(tǒng)疊加至原始文件系統(tǒng)上,根據(jù)上述驅(qū)動(dòng)的運(yùn)行狀態(tài)來(lái)對(duì)OverlapFS的文件系統(tǒng)進(jìn)行處理。上述技術(shù)方案中的驅(qū)動(dòng)環(huán)境信息包括硬件的硬件信息、計(jì)算設(shè)備的軟件信息和該硬件在該計(jì)算設(shè)備中的驅(qū)動(dòng)版本信息,則在硬件信息匹配的前提下對(duì)軟件信息進(jìn)行匹配,提升了匹配的準(zhǔn)確性。同時(shí)利用OverlapFS的文件系統(tǒng),在Linux系統(tǒng)下實(shí)現(xiàn)了內(nèi)核級(jí)技術(shù)對(duì)原始驅(qū)動(dòng)備份,若推薦的驅(qū)動(dòng)安裝后運(yùn)行異常則還原原始驅(qū)動(dòng),以避免影響計(jì)算設(shè)備正常使用的情況發(fā)生。
B8.如B7所述的裝置,所述發(fā)送模塊還適于:
當(dāng)推薦的驅(qū)動(dòng)的運(yùn)行狀態(tài)正常時(shí),發(fā)送已安裝推薦的驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息至驅(qū)動(dòng)管理服務(wù)器,以供驅(qū)動(dòng)管理服務(wù)器更新驅(qū)動(dòng)數(shù)據(jù)庫(kù)。
B9.如B7或B8所述的裝置,其中,所述驅(qū)動(dòng)數(shù)據(jù)庫(kù)預(yù)先存儲(chǔ)有從開(kāi)源驅(qū)動(dòng)和閉源驅(qū)動(dòng)中收集的驅(qū)動(dòng)環(huán)境信息。
B10.如B7所述的裝置,所述硬件信息包括CPU、內(nèi)存、主板、顯卡、聲卡、網(wǎng)卡、硬盤(pán)、PCI外設(shè)和USB外設(shè)中至少一種的相關(guān)信息。
B11.如B7所述的裝置,所述軟件信息包括內(nèi)核版本、Xorg版本、Bluez版本和Pulseaudio配置中至少一種的相關(guān)信息。
C14.如C13所述的驅(qū)動(dòng)管理服務(wù)器,所述接收模塊還適于:
當(dāng)推薦的驅(qū)動(dòng)的運(yùn)行狀態(tài)正常時(shí),接收計(jì)算設(shè)備發(fā)送的已安裝推薦的驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息。
C15.如C14所述的驅(qū)動(dòng)管理服務(wù)器,還包括更新模塊,適于根據(jù)已安裝推薦的驅(qū)動(dòng)的硬件對(duì)應(yīng)的驅(qū)動(dòng)環(huán)境信息更新驅(qū)動(dòng)數(shù)據(jù)庫(kù)。
C16.如C13-15中任一項(xiàng)所述的驅(qū)動(dòng)管理服務(wù)器,其中,所述驅(qū)動(dòng)數(shù)據(jù)庫(kù)預(yù)先存儲(chǔ)有從開(kāi)源驅(qū)動(dòng)和閉源驅(qū)動(dòng)中收集的驅(qū)動(dòng)環(huán)境信息。
在此處所提供的說(shuō)明書(shū)中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒(méi)有這些具體細(xì)節(jié)的情況下被實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書(shū)的理解。
類(lèi)似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開(kāi)并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開(kāi)的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多特征。更確切地說(shuō),如下面的權(quán)利要求書(shū)所反映的那樣,發(fā)明方面在于少于前面公開(kāi)的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書(shū)由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域那些技術(shù)人員應(yīng)當(dāng)理解在本文所公開(kāi)的示例中的設(shè)備的模塊或單元或組件可以布置在如該實(shí)施例中所描述的設(shè)備中,或者可替換地可以定位在與該示例中的設(shè)備不同的一個(gè)或多個(gè)設(shè)備中。前述示例中的模塊可以組合為一個(gè)模塊或者此外可以分成多個(gè)子模塊。
本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過(guò)程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的所有特征以及如此公開(kāi)的任何方法或者設(shè)備的所有過(guò)程或單元進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來(lái)代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書(shū)中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。
此外,所述實(shí)施例中的一些在此被描述成可以由計(jì)算機(jī)系統(tǒng)的處理器或者由執(zhí)行所述功能的其它裝置實(shí)施的方法或方法元素的組合。因此,具有用于實(shí)施所述方法或方法元素的必要指令的處理器形成用于實(shí)施該方法或方法元素的裝置。此外,裝置實(shí)施例的在此所述的元素是如下裝置的例子:該裝置用于實(shí)施由為了實(shí)施該發(fā)明的目的的元素所執(zhí)行的功能。
如在此所使用的那樣,除非另行規(guī)定,使用序數(shù)詞“第一”、“第二”、“第三”等等來(lái)描述普通對(duì)象僅僅表示涉及類(lèi)似對(duì)象的不同實(shí)例,并且并不意圖暗示這樣被描述的對(duì)象必須具有時(shí)間上、空間上、排序方面或者以任意其它方式的給定順序。
盡管根據(jù)有限數(shù)量的實(shí)施例描述了本發(fā)明,但是受益于上面的描述,本技術(shù)領(lǐng)域內(nèi)的技術(shù)人員明白,在由此描述的本發(fā)明的范圍內(nèi),可以設(shè)想其它實(shí)施例。此外,應(yīng)當(dāng)注意,本說(shuō)明書(shū)中使用的語(yǔ)言主要是為了可讀性和教導(dǎo)的目的而選擇的,而不是為了解釋或者限定本發(fā)明的主題而選擇的。因此,在不偏離所附權(quán)利要求書(shū)的范圍和精神的情況下,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō)許多修改和變更都是顯而易見(jiàn)的。對(duì)于本發(fā)明的范圍,對(duì)本發(fā)明所做的公開(kāi)是說(shuō)明性的,而非限制性的,本發(fā)明的范圍由所附權(quán)利要求書(shū)限定。