嵌入式操作系統(tǒng)自動修復(fù)升級功能的方法及其系統(tǒng)的制作方法
【專利摘要】一種嵌入式操作系統(tǒng)自動修復(fù)升級功能的方法,在升級服務(wù)器上預(yù)先設(shè)置用于修復(fù)嵌入式操作系統(tǒng)的修復(fù)軟件包,該方法還包括以下步驟:判斷所述嵌入式操作系統(tǒng)是否存在故障,從所述升級服務(wù)器下載所述修復(fù)軟件包,載入所述修復(fù)軟件包的內(nèi)容到所述嵌入式系統(tǒng)中,成功修復(fù)后所述嵌入式操作系統(tǒng)自動進行升級。利用上述方法,可實現(xiàn)無需人工觸發(fā),嵌入式系統(tǒng)自動完成修復(fù)升級功能,并且無需占用嵌入式設(shè)備的存儲資源。
【專利說明】嵌入式操作系統(tǒng)自動修復(fù)升級功能的方法及其系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及嵌入式操作系統(tǒng),特別是涉及一種嵌入式操作系統(tǒng)自動修復(fù)升級功能的方法及其系統(tǒng)。
【背景技術(shù)】
[0002]嵌入式系統(tǒng)主要由嵌入式處理器、相關(guān)支撐硬件和嵌入式軟件系統(tǒng)組成。主要用于控制、監(jiān)控或輔助機器、裝置或其他用于工廠運作的設(shè)備。嵌入式系統(tǒng)區(qū)別于一般的計算機處理系統(tǒng),它不具備像硬盤那樣大容量的存儲介質(zhì),而大多使用閃存作為存儲介質(zhì)。嵌入式操作系統(tǒng)主要組成部分如圖1所示,包括文件系統(tǒng),內(nèi)核以及Bootloader。其中Bootloader是引導(dǎo)程序,是在操作系統(tǒng)內(nèi)核運行之前運行,可以初始化硬件設(shè)備,建立內(nèi)存空間映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準備好正確的環(huán)境。在嵌入式系統(tǒng)中,通常沒有像BIOS那樣的固件程序,因此整個系統(tǒng)的加載啟動任務(wù)就完全由Bootloader來完成。設(shè)備啟動后,進入Bootloader,然后由Bootloader加載內(nèi)核,內(nèi)核啟動進程會掛載文件系統(tǒng)。
[0003]出于各種原因,需要對操作系統(tǒng)進行升級,常用的方法是在內(nèi)核以及文件系統(tǒng)中設(shè)置升級程序,只要內(nèi)核以及文件系統(tǒng)沒有被破壞,則操作系統(tǒng)具備自動升級功能。但是在升級的過程中,可能由于突然斷電、誤操作等原因?qū)е律夁^程中斷,令升級失敗,甚至可能破壞內(nèi)核以及文件系統(tǒng),導(dǎo)致操作系統(tǒng)失去升級功能。針對此問題,通常的解決方法是在閃存中存儲兩套操作系統(tǒng),即主系統(tǒng)以及備份系統(tǒng),在主系統(tǒng)由于升級過程中斷導(dǎo)致被破壞時,可以啟動備份系統(tǒng)修復(fù)主系統(tǒng)。由于對于嵌入式設(shè)備而言,閃存空間是非常寶貴的資源,此方法顯然浪費閃存空間。同時如果閃存上的備份系統(tǒng)也被破壞,則備份升級功能也失效,系統(tǒng)無法再進行修復(fù)。
【發(fā)明內(nèi)容】
[0004]基于此,有必要提供一種嵌入式操作系統(tǒng)自動修復(fù)升級功能的方法,在嵌入式操作系統(tǒng)的內(nèi)核以及文件系統(tǒng)由于升級失敗導(dǎo)致被破壞的情況下,利用該方法,可以安全可靠地實現(xiàn)嵌入式系統(tǒng)的自我修復(fù)從而恢復(fù)自動升級功能,并且節(jié)約嵌入式設(shè)備的存儲空間。
[0005]因此,本發(fā)明提供一種嵌入式操作系統(tǒng)自動修復(fù)升級功能的方法包括,判斷所述嵌入式操作系統(tǒng)是否存在故障;如果存在故障,則從升級服務(wù)器上下載用于修復(fù)所述嵌入式操作系統(tǒng)的修復(fù)軟件包;所述升級服務(wù)器用于預(yù)先設(shè)置修復(fù)軟件包;載入所述修復(fù)軟件包的內(nèi)容到所述嵌入式操作系統(tǒng)中,進行所述嵌入式操作系統(tǒng)的修復(fù)。
[0006]在可選的實施例中,由操作系統(tǒng)的引導(dǎo)程序?qū)崿F(xiàn)對所述嵌入式操作系統(tǒng)的修復(fù)。
[0007]在可選的實施例中,在所述操作系統(tǒng)的修復(fù)完成后,所述系統(tǒng)自動進行升級。
[0008]在可選的實施例中,通過讀取標志位確定所述嵌入式操作系統(tǒng)是否存在故障,具體是,若所述標志位為錯誤標識則判斷所述操作系統(tǒng)存在故障,若所述標志位為正確標識則判斷所述操作系統(tǒng)正常,啟動進入操作系統(tǒng)。
[0009]在可選的實施例中,在所述操作系統(tǒng)的修復(fù)完成后,所述標識模塊將所述標志位標識為正確。
[0010]在可選的實施例中,通過讀取標志位以及次數(shù)參數(shù)確定所述嵌入式操作系統(tǒng)是否存在故障,具體是,若所述標志位為錯誤標識并且所述次數(shù)參數(shù)大于預(yù)設(shè)閾值則判斷所述操作系統(tǒng)存在故障。
[0011]在可選的實施例中,在所述操作系統(tǒng)的修復(fù)完成后,所述標識模塊將所述標志位標識為正確,以及將所述次數(shù)參數(shù)歸零。
[0012]在可選的實施例中,還包括在每次所述嵌入式操作系統(tǒng)重啟時,將所述次數(shù)參數(shù)加I。
[0013]在可選的實施例中,在從所述升級服務(wù)器下載所述修復(fù)軟件包括之前,包括:先從所述升級服務(wù)器下載索引文件;根據(jù)所述索引文件以及嵌入式設(shè)備的設(shè)備信息得出所述修復(fù)軟件包的名稱,在所述升級服務(wù)器搜索具有對應(yīng)名稱的修復(fù)軟件包。
[0014]本發(fā)明還提供了一種具有自動修復(fù)升級功能的嵌入式操作系統(tǒng),包括引導(dǎo)程序,內(nèi)核以及文件系統(tǒng),所述內(nèi)核以及文件系統(tǒng)具有自動升級功能,所述引導(dǎo)程序用于自動修復(fù)內(nèi)核以及文件系統(tǒng)的故障,在引導(dǎo)程序中包括:判斷模塊,下載模塊以及載入模塊;其中,
[0015]所述判斷模塊,用于判斷所述嵌入式操作系統(tǒng)是否發(fā)生故障;
[0016]所述下載模塊,用于從升級服務(wù)器上下載修復(fù)軟件包;所述的升級服務(wù)器上預(yù)先設(shè)置有用于修復(fù)嵌入式操作系統(tǒng)的修復(fù)軟件包
[0017]所述載入模塊,用于將所述修復(fù)軟件包的內(nèi)容載入至嵌入式操作系統(tǒng),完成對所述嵌入式操作系統(tǒng)的故障修復(fù)。
[0018]可選的方案是,嵌入式操作系統(tǒng)還設(shè)置有標志位,所述判斷模塊通過讀取所述標志位判斷所述系統(tǒng)是否發(fā)生故障,以及所述引導(dǎo)程序中還設(shè)置有標識模塊,所述標識模塊用于在所述故障修復(fù)后,將所述標志位標識為正確。
[0019]可選的方案是,所述嵌入式操作系統(tǒng)還設(shè)置有次數(shù)參數(shù)以及預(yù)設(shè)有次數(shù)參數(shù)閾值,所述標識模塊還用于在每次啟動進入所述內(nèi)核以及文件系統(tǒng)時,將所述次數(shù)參數(shù)加1,以及還用于在所述載入模塊將所述修復(fù)軟件包的內(nèi)容載入至所述嵌入式操作系統(tǒng)之后,將所述次數(shù)參數(shù)歸零。
[0020]因此,本發(fā)明提供的所述嵌入式操作系統(tǒng)及其自動修復(fù)升級功能的方法,可以在內(nèi)核以及文件系統(tǒng)被破壞的情況下,通過所述嵌入式操作系統(tǒng)的引導(dǎo)程序,在預(yù)定的服務(wù)器上下載修復(fù)軟件包并完成對嵌入式操作系統(tǒng)的修復(fù),內(nèi)核以及文件系統(tǒng)在被修復(fù)后自動進行升級。整個修復(fù)升級過程是由操作系統(tǒng)自動進行,無需人工觸發(fā);同時,由于在當前的嵌入式設(shè)備以外的服務(wù)器上設(shè)置修復(fù)軟件包,節(jié)省了當前嵌入式設(shè)備的存儲資源。
【專利附圖】
【附圖說明】
[0021]圖1為現(xiàn)有技術(shù)的嵌入式操作系統(tǒng)的模塊圖;
[0022]圖2為實施例一的嵌入式操作系統(tǒng)的模塊圖;
[0023]圖3為另一實施例的嵌入式操作系統(tǒng)的模塊圖;[0024]圖4為再一實施例的嵌入式操作系統(tǒng)的模塊圖;
[0025]圖5為嵌入式操作系統(tǒng)自動修復(fù)升級功能的方法的流程圖;
[0026]圖6為另一嵌入式操作系統(tǒng)自動修復(fù)升級功能的方法的流程圖;
[0027]圖7為下載修復(fù)軟件包的流程圖。
【具體實施方式】
[0028]本發(fā)明的嵌入式操作系統(tǒng)如圖2所示,嵌入式操作系統(tǒng)的引導(dǎo)程序中設(shè)置有判斷模塊,下載模塊,載入模塊。在每次嵌入式操作系統(tǒng)啟動的時候,判斷模塊即判斷文件系統(tǒng)以及內(nèi)核是否被破壞;當判斷結(jié)果為已經(jīng)被破壞,則下載模塊從預(yù)先設(shè)置有用于修復(fù)嵌入式操作系統(tǒng)的修復(fù)軟件包的升級服務(wù)器下載修復(fù)軟件包;之后,載入模塊將修復(fù)軟件包的內(nèi)容載入到嵌入式操作系統(tǒng)中,完成對嵌入式操作系統(tǒng)的故障修復(fù)。
[0029]可選的方案時,在每次引導(dǎo)程序完成對嵌入式操作系統(tǒng)的故障修復(fù)之后,嵌入式操作系統(tǒng)即自動進行升級更新。
[0030]參見圖3,為另一實施例的嵌入式操作系統(tǒng)的示意圖,嵌入式操作系統(tǒng)中設(shè)置有標識位,并且引導(dǎo)程序中還設(shè)置有標識模塊,在嵌入式系統(tǒng)啟動時,判斷模塊首先讀取標志位,若標志位標識為正確,判斷系統(tǒng)無故障,啟動內(nèi)核以及文件系統(tǒng);若標志位標識為錯誤,則判斷操作系統(tǒng)被破壞需要進行修復(fù)。在每次載入模塊將修復(fù)軟件包的內(nèi)容載入到嵌入式系統(tǒng)中之后,標識模塊將標志位標識為正確。
[0031]參加圖4,為再一實施例的嵌入式操作系統(tǒng),該系統(tǒng)中還設(shè)置有次數(shù)參數(shù)以及預(yù)設(shè)閾值,標識模塊還用于在每次嵌入式操作系統(tǒng)重啟時,將次數(shù)參數(shù)加I ;判斷模塊讀取標志位以及次數(shù)參數(shù)來判斷操作系統(tǒng)是否存在故障,當標志位標識為錯誤并且次數(shù)參數(shù)大于預(yù)設(shè)閾值時,判斷嵌入式操作系統(tǒng)需要進行故障修復(fù);載入模塊將修復(fù)軟件包的內(nèi)容載入到內(nèi)核以及文件系統(tǒng)中,完成對嵌入式操作系統(tǒng)的故障修復(fù)之后,標識模塊將次數(shù)參數(shù)歸零。
[0032]該實施例的有益效果在于,在一些情況下,需要對嵌入式操作系統(tǒng)進行測試,調(diào)試,這時即使其文件系統(tǒng)或者內(nèi)核存在故障也不需要立即進行修復(fù),設(shè)置了次數(shù)參數(shù)后,使用者可以靈活地根據(jù)需要設(shè)置次數(shù)參數(shù)的閾值,在系統(tǒng)自動升級失敗達到預(yù)設(shè)的次數(shù)后,引導(dǎo)程序才啟動對系統(tǒng)的修復(fù)。
[0033]圖5,為本發(fā)明的嵌入式操作系統(tǒng)自動修復(fù)升級功能的方法的流程圖,在嵌入式操作系統(tǒng)啟動時,引導(dǎo)程序首先判斷系統(tǒng)是否存在故障(步驟51);如果存在故障,則引導(dǎo)程序從升級服務(wù)器下載用于修復(fù)該嵌入式操作系統(tǒng)的修復(fù)軟件包(步驟52),其中升級服務(wù)器用于預(yù)先設(shè)置修復(fù)軟件包;之后,引導(dǎo)程序?qū)⑿迯?fù)軟件包的內(nèi)容載入到該嵌入式操作系統(tǒng)中,完成對系統(tǒng)的修復(fù)(步驟53)。
[0034]嵌入式系統(tǒng)在正常運行的時候,可以自動進行升級,而在升級的過程,由于突然斷電等原因造成升級失敗,甚至破壞了文件系統(tǒng)和內(nèi)核,導(dǎo)致嵌入式系統(tǒng)失去自動升級的功能,在每次嵌入式系統(tǒng)重啟時,都先由引導(dǎo)程序檢查文件系統(tǒng)和內(nèi)核是否存在故障,并在確定故障后完成對嵌入式操作系統(tǒng)的修復(fù)。同時將修復(fù)軟件包設(shè)置在升級服務(wù)器上,不需要占用嵌入式操作系統(tǒng)寶貴的存儲資源,修復(fù)系統(tǒng)的整個過程由引導(dǎo)程序自動完成,不需要人為控制操作,也節(jié)省維護的成本。
[0035]可選的方案是,引導(dǎo)程序通過讀取標志位判斷系統(tǒng)是否存在故障,若標志位標識為錯誤,則引導(dǎo)程序判斷系統(tǒng)錯誤故障。
[0036]可選的方案是,在引導(dǎo)程序?qū)⑿迯?fù)軟件包的內(nèi)容載入到嵌入式操作系統(tǒng),完成對系統(tǒng)的修復(fù)之后,嵌入式操作系統(tǒng)即自動進行升級。
[0037]另一改進的實施例如圖6所示,引導(dǎo)程序判斷標志位是否標識為錯誤(步驟61);若否,則啟動進入內(nèi)核以及文件操作系統(tǒng)(步驟62);若是,則引導(dǎo)程序繼續(xù)判斷次數(shù)參數(shù)是否大于預(yù)設(shè)閾值(步驟63);若否,則將次數(shù)參數(shù)+1后,啟動進入內(nèi)核以及文件操作系統(tǒng)(步驟64);若是則引導(dǎo)程序從升級服務(wù)器下載修復(fù)軟件包(步驟65);并將修復(fù)軟件包的內(nèi)容載入到嵌入式操作系統(tǒng)中(步驟66);修復(fù)完成后引導(dǎo)程序?qū)⒋螖?shù)參數(shù)歸零以及將標志位標識為正確(步驟67)。
[0038]上述所有實施例中,標志位,次數(shù)參數(shù)都設(shè)置在引導(dǎo)程序,內(nèi)核以及文件系統(tǒng)以外的分區(qū)中。
[0039]圖7所示,是引導(dǎo)程序從升級服務(wù)器下載修復(fù)軟件包括的流程圖,引導(dǎo)程序首先從升級服務(wù)器下載索引文件(步驟71);然后根據(jù)所述索引文件以及嵌入式設(shè)備的設(shè)備信息得出需要下載的修復(fù)軟件包的名稱(步驟72);引導(dǎo)程序從升級服務(wù)器上找到具有在步驟72得到的修復(fù)軟件包名稱的修復(fù)軟件包,并下載(步驟73)。其中,所述設(shè)備信息可以是當前嵌入式設(shè)備的設(shè)備型號等。
[0040]可選的方案是,在引導(dǎo)程序中預(yù)設(shè)一 IP地址,預(yù)先將修復(fù)軟件包設(shè)置在具有該IP地址的設(shè)備上,引導(dǎo)程序直接從該設(shè)備下載修復(fù)軟件包。
[0041]以上所述實施例僅表達了本發(fā)明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對本發(fā)明專利范圍的限制。應(yīng)當指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應(yīng)以所附權(quán)利要求為準。
【權(quán)利要求】
1.一種嵌入式操作系統(tǒng)自動修復(fù)升級功能的方法,其特征在于,該方法包括步驟: 判斷所述嵌入式操作系統(tǒng)是否存在故障; 如果存在故障,則從升級服務(wù)器下載用于修復(fù)所述嵌入式操作系統(tǒng)的修復(fù)軟件包;所述升級服務(wù)器用于預(yù)先設(shè)置修復(fù)軟件包; 載入所述修復(fù)軟件包的內(nèi)容到所述嵌入式操作系統(tǒng)中,進行所述嵌入式操作系統(tǒng)的修復(fù)。
2.根據(jù)權(quán)利要求1所述的嵌入式操作系統(tǒng)自動修復(fù)升級功能的方法,其特征在于,由所述嵌入式操作系統(tǒng)的引導(dǎo)程序進行對所述嵌入式操作系統(tǒng)升級功能的修復(fù)。
3.根據(jù)權(quán)利要求1所述的嵌入式操作系統(tǒng)自動修復(fù)升級功能的方法,其特征在于,所述判斷嵌入式操作系統(tǒng)是 否存在故障的步驟,具體是: 檢查所述嵌入式操作系統(tǒng)的標志位是否為錯誤標識。
4.根據(jù)權(quán)利要求1所述的嵌入式操作系統(tǒng)自動修復(fù)升級功能的方法,其特征在于: 所述判斷嵌入式操作系統(tǒng)是否存在故障的步驟,具體包括: Al檢查所述嵌入式操作系統(tǒng)的標志位,若所述標志位為錯誤標識則進入步驟A2 ; A2檢查所述操作系統(tǒng)的次數(shù)參數(shù)是否大于預(yù)設(shè)閾值,根據(jù)所述預(yù)設(shè)閾值判斷是否存在故障。
5.根據(jù)權(quán)利要求1所述的嵌入式操作系統(tǒng)自動修復(fù)升級功能的方法,其特征在于,如果所述嵌入式操作系統(tǒng)存在故障,在所述從升級服務(wù)器下載用于修復(fù)所述嵌入式操作系統(tǒng)的修復(fù)軟件包步驟之前,還包括: BI從所述升級服務(wù)器下載索引文件; B2根據(jù)所述索引文件以及嵌入式設(shè)備的設(shè)備信息得出所述修復(fù)軟件包的名稱; B3從所述升級服務(wù)器上找到具有所述修復(fù)軟件包名稱的修復(fù)軟件包。
6.根據(jù)權(quán)利要求4所述的嵌入式操作系統(tǒng)自動修復(fù)升級功能的方法,其特征在于,在載入所述修復(fù)軟件包的內(nèi)容到所述操作系統(tǒng)中之后,還包括:將所述標志位標識為正確,將所述次數(shù)參數(shù)歸零,以及所述嵌入式操作系統(tǒng)進行自動升級。
7.根據(jù)權(quán)利要求6所述的嵌入式操作系統(tǒng)自動修復(fù)升級功能的方法,其特征在于:在每次所述嵌入式操作系統(tǒng)重啟時,將次數(shù)參數(shù)加I。
8.一種具有自動修復(fù)升級功能的嵌入式操作系統(tǒng),包括引導(dǎo)程序,內(nèi)核以及文件系統(tǒng),所述內(nèi)核以及文件系統(tǒng)具有自動升級功能,其特征在于:所述引導(dǎo)程序用于自動修復(fù)所述嵌入式操作系統(tǒng)的故障,在引導(dǎo)程序中包括:判斷模塊,下載模塊以及載入模塊;其中, 所述判斷模塊,用于判斷所述嵌入式操作系統(tǒng)是否發(fā)生故障; 所述下載模塊,用于從升級服務(wù)器上下載修復(fù)軟件包;所述的升級服務(wù)器上預(yù)先設(shè)置有用于修復(fù)嵌入式操作系統(tǒng)的修復(fù)軟件包; 所述載入模塊,用于將所述修復(fù)軟件包的內(nèi)容載入所述嵌入式操作系統(tǒng),完成所述操作系統(tǒng)的故障修復(fù)。
9.根據(jù)權(quán)利要求8所述的嵌入式操作系統(tǒng),其特征在于:所述嵌入式操作系統(tǒng)中還設(shè)置有標志位,以及所述引導(dǎo)程序還包括標識模塊,所述標識模塊用于在所述載入模塊將所述修復(fù)軟件包的內(nèi)容載入所述嵌入式操作系統(tǒng)后,將所述標志位標識為正確。
10.根據(jù)權(quán)利要求9所述的嵌入式操作系統(tǒng),其特征在于,所述嵌入式操作系統(tǒng)還設(shè)置有次數(shù)參數(shù)以及預(yù)設(shè)有次數(shù)參數(shù)閾值,所述標識模塊還用于在每次啟動進入所述內(nèi)核以及文件系統(tǒng)時,將所述次數(shù)參數(shù)加1,以及用于在所述載入模塊將所述修復(fù)軟件包的內(nèi)容載入至所述嵌入式操 作系統(tǒng)之后,將所述次數(shù)參數(shù)歸零。
【文檔編號】G06F9/445GK103970564SQ201410166589
【公開日】2014年8月6日 申請日期:2014年4月23日 優(yōu)先權(quán)日:2014年4月23日
【發(fā)明者】吳明津, 邊慶宏 申請人:京信通信系統(tǒng)(中國)有限公司