專利名稱:一種基于嵌入式操作系統(tǒng)的終端設(shè)備的軟件模塊升級方法
技術(shù)領(lǐng)域:
本發(fā)明涉及終端設(shè)備軟件模塊升級技術(shù)領(lǐng)域,具體說是一種基于嵌入式操作系統(tǒng)的終端設(shè)備的軟件模塊升級方法。
背景技術(shù):
目前,終端設(shè)備大致可以分為:手持終端設(shè)備、數(shù)據(jù)終端設(shè)備、網(wǎng)絡(luò)終端設(shè)備等。這些終端設(shè)備大都采用了嵌入式操作系統(tǒng),即嵌入式終端設(shè)備。嵌入式終端設(shè)備內(nèi)包括軟件鏡像,軟件鏡像包括若干軟件模塊,需要通過軟件升級來適應(yīng)技術(shù)的發(fā)展、協(xié)議的演進、軟件需求的變化。當(dāng)需要進行升級的內(nèi)容很少時,不需要對整個軟件鏡像進行升級,只需要進行軟件模塊升級,即對個別或部分軟件模塊的進行修改、調(diào)整、替換。具體來說,軟件模塊升級是指:在某些情況下,僅對嵌入式終端設(shè)備中的部分軟件模塊進行修改、調(diào)整、替換,來取代升級整個軟件鏡像的一種方法。其中可進行軟件模塊升級的軟件模塊包括但不限于:應(yīng)用程序模塊、內(nèi)核模塊、腳本模塊和配置文件模塊等。另外,在嵌入式終端設(shè)備運行的過程中,如果因為軟件模塊升級導(dǎo)致某些軟件模塊(比如內(nèi)核模塊、應(yīng)用程序模塊等)被損壞,嵌入式操作系統(tǒng)將不能正常運行。因此,保證某些軟件模塊在軟件模塊升級中不受損壞是至關(guān)重要的。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的在于提供一種基于嵌入式操作系統(tǒng)的終端設(shè)備的軟件模塊升級方法,將非易失存儲器劃分為主、備分區(qū)以存儲軟件鏡像,且主、備分區(qū)采用只讀文件系統(tǒng),通過讀、寫非易失存儲器、操作文件系統(tǒng)、執(zhí)行shell腳本,實現(xiàn)對基于嵌入式操作系統(tǒng)的終端設(shè)備中的只讀文件系統(tǒng)進行軟件模塊升級。為達到以上目的,本發(fā)明采取的技術(shù)方案是:—種基于嵌入式操作系統(tǒng)的終端設(shè)備的軟件模塊升級方法,其特征在于,包括以下步驟:步驟1,在終端設(shè)備內(nèi)用于存儲軟件鏡像的非易失存儲器內(nèi),劃分出主、備分區(qū),且主、備分區(qū)均采用只讀文件系統(tǒng),步驟2,當(dāng)開始進行軟件模塊升級時,先將主分區(qū)內(nèi)的軟件鏡像全部讀取并寫入到備分區(qū)中,使主、備分區(qū)中的軟件鏡像保持完全一致,步驟3,獲取軟件模塊升級包,步驟4,用軟件模塊升級包在備分區(qū)內(nèi)對軟件鏡像進行軟件模塊升級操作,步驟5,完成軟件模塊升級操作后,將主、備分區(qū)進行切換,使原來的備分區(qū)變?yōu)樾碌闹鞣謪^(qū),原來的主分區(qū)變?yōu)樾碌膫浞謪^(qū),步驟6,重啟終端設(shè)備,終端設(shè)備按新的主分區(qū)內(nèi)的軟件鏡像啟動,整個升級過程完畢。在上述技術(shù)方案的基礎(chǔ)上,軟件模塊升級失敗,嵌入式系統(tǒng)切換回原主分區(qū)確保正常運行。在上述技術(shù)方案的基礎(chǔ)上,除主、備分區(qū)之外,非易失存儲器內(nèi)還劃分有uboot分區(qū),內(nèi)核分區(qū),可讀寫文件系統(tǒng)分區(qū)。在上述技術(shù)方案的基礎(chǔ)上,所述軟件模塊升級包中包括:通用shell腳本,其用于逐個調(diào)用具體shell腳本,至少一個具體shell腳本,用新的軟件模塊實體對備分區(qū)中當(dāng)前軟件鏡像的軟件模塊進行升級操作,新的軟件模塊實體。在上述技術(shù)方案的基礎(chǔ)上,步驟4的具體步驟為:步驟4.1,將備分區(qū)的只讀文件系統(tǒng)掛載到內(nèi)存文件系統(tǒng)中,且掛載方式為讀寫;步驟4.2,將軟件模塊升級包傳輸?shù)絻?nèi)存文件系統(tǒng)中,并對其解壓縮,得到通用shell腳本、具體shell腳本和新的軟件模塊實體;步驟4.3,先調(diào)用通用shell腳本,由通用shell腳本逐個調(diào)用具體shell腳本,具體shell腳本用新的軟件模塊實體對備分區(qū)中當(dāng)前的軟件模塊進行升級操作,所述升級操作包括:用新的軟件模塊實體對備分區(qū)中當(dāng)前的軟件模塊進行修改操作,或用新的軟件模塊實體對備分區(qū)中當(dāng)前的軟件模塊進行參數(shù)調(diào)整操作,或用新的軟件模塊實體對備分區(qū)中當(dāng)前的軟件模塊進行替換操作。本發(fā)明所述的基于嵌入式操作系統(tǒng)的終端設(shè)備的軟件模塊升級方法,可實現(xiàn)只讀文件系統(tǒng)內(nèi)的軟件模塊升級,整個軟件模塊升級過程非常安全,確保嵌入式操作系統(tǒng)正常運行。
本發(fā)明有如下附圖:圖1是軟件模塊升級的流程圖,圖2是模塊升級包的內(nèi)容結(jié)構(gòu)圖,圖3是非易失存儲器的分區(qū)劃分結(jié)構(gòu)圖。
具體實施例方式以下結(jié)合附圖對本發(fā)明作進一步詳細說明。如圖1所示,本發(fā)明所述的基于嵌入式操作系統(tǒng)的終端設(shè)備的軟件模塊升級方法,包括以下步驟:步驟1,在終端設(shè)備內(nèi)用于存儲軟件鏡像的非易失存儲器內(nèi),劃分出主、備分區(qū),且主、備分區(qū)均采用只讀文件系統(tǒng),主、備分區(qū)僅在有權(quán)限許可的情況下才能進行寫操作,該權(quán)限許可通常在模塊升級時才臨時給予,步驟2,當(dāng)開始進行軟件模塊升級時,先將主分區(qū)內(nèi)的軟件鏡像全部讀取并寫入到備分區(qū)中,使主、備分區(qū)中的軟件鏡像保持完全一致,步驟3,獲取軟件模塊升級包,步驟4,用軟件模塊升級包在備分區(qū)內(nèi)對軟件鏡像進行軟件模塊升級操作,
步驟5,完成軟件模塊升級操作后,將主、備分區(qū)進行切換,使原來的備分區(qū)變?yōu)樾碌闹鞣謪^(qū),原來的主分區(qū)變?yōu)樾碌膫浞謪^(qū),步驟6,重啟終端設(shè)備,終端設(shè)備按新的主分區(qū)內(nèi)的軟件鏡像啟動,整個升級過程完畢。本發(fā)明通過使軟件模塊升級的操作對象為備分區(qū)中的軟件鏡像,對系統(tǒng)當(dāng)前正在使用的主分區(qū)內(nèi)的軟件鏡像無任何影響,即使軟件模塊升級失敗,嵌入式系統(tǒng)依然可切換回原主分區(qū)確保正常運行。在上述技術(shù)方案的基礎(chǔ)上,如圖3所示,除主、備分區(qū)之外,非易失存儲器內(nèi)還劃分有UbOOt (啟動引導(dǎo))分區(qū),內(nèi)核分區(qū),可讀寫文件系統(tǒng)分區(qū)。在上述技術(shù)方案的基礎(chǔ)上,如圖2所示,所述軟件模塊升級包中包括:通用shell腳本,其用于逐個調(diào)用具體shell腳本,至少一個具體shell腳本,用新的軟件模塊實體對備分區(qū)中當(dāng)前軟件鏡像的軟件模塊進行升級操作,新的軟件模塊實體。在上述技術(shù)方案的基礎(chǔ)上,步驟4的具體步驟為:步驟4.1,將備分區(qū)的只讀文件系統(tǒng)掛載到內(nèi)存文件系統(tǒng)中,且掛載方式為讀寫;步驟4.2,將軟件模塊升級包傳輸?shù)絻?nèi)存文件系統(tǒng)中,并對其解壓縮,得到通用shell腳本、具體shell腳本和新的軟件模塊實體;步驟4.3,先調(diào)用通用shell腳本,由通用shell腳本逐個調(diào)用具體shell腳本,具體shell腳本用新的軟件模塊實體對備分區(qū)中當(dāng)前的軟件模塊進行升級操作,所述升級操作包括:用新的軟件模塊實體對備分區(qū)中當(dāng)前的軟件模塊進行修改操作,或用新的軟件模塊實體對備分區(qū)中當(dāng)前的軟件模塊進行參數(shù)調(diào)整操作,或用新的軟件模塊實體對備分區(qū)中當(dāng)前的軟件模塊進行替換操作。以上所述僅為本發(fā)明的較佳實施例,并不用于限制本發(fā)明,凡在本發(fā)明精神和原則之內(nèi)所做的任何修改、等同替換和改進等,均包含于本發(fā)明的保護范圍之內(nèi)。本說明書中未作詳細描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。
權(quán)利要求
1.一種基于嵌入式操作系統(tǒng)的終端設(shè)備的軟件模塊升級方法,其特征在于,包括以下步驟: 步驟1,在終端設(shè)備內(nèi)用于存儲軟件鏡像的非易失存儲器內(nèi),劃分出主、備分區(qū),且主、備分區(qū)均采用只讀文件系統(tǒng), 步驟2,當(dāng)開始進行軟件模塊升級時,先將主分區(qū)內(nèi)的軟件鏡像全部讀取并寫入到備分區(qū)中,使主、備分區(qū)中的軟件鏡像保持完全一致, 步驟3,獲取軟件模塊升級包, 步驟4,用軟件模塊升級包在備分區(qū)內(nèi)對軟件鏡像進行軟件模塊升級操作, 步驟5,完成軟件模塊升級操作后,將主、備分區(qū)進行切換,使原來的備分區(qū)變?yōu)樾碌闹鞣謪^(qū),原來的主分區(qū)變?yōu)樾碌膫浞謪^(qū), 步驟6,重啟終端設(shè)備,終端設(shè)備按新的主分區(qū)內(nèi)的軟件鏡像啟動,整個升級過程完畢。
2.按權(quán)利要求1所述的基于嵌入式操作系統(tǒng)的終端設(shè)備的軟件模塊升級方法,其特征在于:軟件模塊升級失敗,嵌入式系統(tǒng)切換回原主分區(qū)確保正常運行。
3.按權(quán)利要求1所述的基于嵌入式操作系統(tǒng)的終端設(shè)備的軟件模塊升級方法,其特征在于:除主、備分區(qū)之外,非易失存儲器內(nèi)還劃分有Uboot分區(qū),內(nèi)核分區(qū),可讀寫文件系統(tǒng)分區(qū)。
4.按權(quán)利要求1所述的基于嵌入式操作系統(tǒng)的終端設(shè)備的軟件模塊升級方法,其特征在于:所述軟件模塊升級包中包括: 通用shell腳本,其用于逐個調(diào)用具體shell腳本, 至少一個具體shell腳本,用新的軟件模塊實體對備分區(qū)中當(dāng)前軟件鏡像的軟件模塊進行升級操作, 新的軟件模塊實體。
5.按權(quán)利要求1所述的基于嵌入式操作系統(tǒng)的終端設(shè)備的軟件模塊升級方法,其特征在于,步驟4的具體步驟為: 步驟4.1,將備分區(qū)的只讀文件系統(tǒng)掛載到內(nèi)存文件系統(tǒng)中,且掛載方式為讀寫; 步驟4.2,將軟件模塊升級包傳輸?shù)絻?nèi)存文件系統(tǒng)中,并對其解壓縮,得到通用shell腳本、具體shell腳本和新的軟件模塊實體; 步驟4.3,先調(diào)用通用shell腳本,由通用shell腳本逐個調(diào)用具體shell腳本,具體shell腳本用新的軟件模塊實體對備分區(qū)中當(dāng)前的軟件模塊進行升級操作, 所述升級操作包括: 用新的軟件模塊實體對備分區(qū)中當(dāng)前的軟件模塊進行修改操作, 或用新的軟件模塊實體對備分區(qū)中當(dāng)前的軟件模塊進行參數(shù)調(diào)整操作, 或用新的軟件模塊實體對備分區(qū)中當(dāng)前的軟件模塊進行替換操作。
全文摘要
本發(fā)明涉及一種基于嵌入式操作系統(tǒng)的終端設(shè)備的軟件模塊升級方法,在終端設(shè)備內(nèi)用于存儲軟件鏡像的非易失存儲器內(nèi),劃分出主、備分區(qū),且主、備分區(qū)均采用只讀文件系統(tǒng),當(dāng)開始進行軟件模塊升級時,先將主分區(qū)內(nèi)的軟件鏡像全部讀取并寫入到備分區(qū)中,獲取軟件模塊升級包,用軟件模塊升級包在備分區(qū)內(nèi)對軟件鏡像進行軟件模塊升級操作,完成軟件模塊升級操作后,將主、備分區(qū)進行切換,重啟終端設(shè)備,終端設(shè)備按新的主分區(qū)內(nèi)的軟件鏡像啟動,整個升級過程完畢。本發(fā)明所述的升級方法,可實現(xiàn)只讀文件系統(tǒng)內(nèi)的軟件模塊升級,整個軟件模塊升級過程非常安全,確保嵌入式操作系統(tǒng)正常運行。
文檔編號G06F9/445GK103092662SQ20131004250
公開日2013年5月8日 申請日期2013年2月4日 優(yōu)先權(quán)日2013年2月4日
發(fā)明者方偉, 張瑋, 李喜毅 申請人:烽火通信科技股份有限公司