版本文件的運行方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機及通信技術(shù)領(lǐng)域,具體而言,涉及一種版本文件的運行方法及
>J-U ρ?α裝直。
【背景技術(shù)】
[0002]為了滿足新增功能或者新的需求,產(chǎn)品版本需要升級,并且有可能出現(xiàn)跨平臺或跨文件系統(tǒng)的版本升級。比如原來系統(tǒng)采用的是vxWorks的操作系統(tǒng),為了支持某些新的功能,需要更換為Iinux的操作系統(tǒng);再比如,由于采用平臺的關(guān)系,有可能出現(xiàn)新舊版本的文件系統(tǒng)不同的情況。要對這些系統(tǒng)進行軟件版本升級,需要確保所有硬件不變的情況下做到:升級前后版本和文件系統(tǒng)里面的所有數(shù)據(jù)不要丟失;升級動作簡單方便,能夠支持在線升級;在原有版本已經(jīng)使用的情況下,不用對老版本進行任何改動,可以直接平滑升級到新的軟件版本,新的版本也可以直接平滑回退到老的版本。
[0003]在目前的版本管理中,版本文件和系統(tǒng)數(shù)據(jù)可以分開保存(版本文件保存到flash上,系統(tǒng)數(shù)據(jù)保存到文件系統(tǒng)),也可以將版本文件和數(shù)據(jù)都保存到文件系統(tǒng)里面。不管是哪種保存方式,如果新老版本各自運行不同文件系統(tǒng),新的系統(tǒng)啟動引導(dǎo)程序無法識別老的文件系統(tǒng),則必須在老系統(tǒng)中先把文件系統(tǒng)中的數(shù)據(jù)上傳到網(wǎng)管服務(wù)器或者計算機上,然后升級新的系統(tǒng)啟動引導(dǎo)版本。待新的系統(tǒng)啟動引導(dǎo)版本啟動之后,再從網(wǎng)管服務(wù)器或者計算機上獲取主版本文件,然后運行主版本,在主版本中恢復(fù)之前預(yù)先備份的數(shù)據(jù)。但是,這種方法的缺點在于:新的主版本不能在老的版本中直接升級,必須在新的啟動引導(dǎo)軟件中升級主版本,操作復(fù)雜,不能夠滿足在線升級;另外,由于新老文件系統(tǒng)不兼容,則數(shù)據(jù)不能保存,需要提前備份數(shù)據(jù)到其他服務(wù)器上,待新主版本運行之后才能恢復(fù)數(shù)據(jù),操作復(fù)雜,很難滿足批量操作;如果新版本要回退到老版本則會遇到升級中遇到的相同的問題。
[0004]在相關(guān)技術(shù)中,也可以把版本文件和數(shù)據(jù)臨時保存到系統(tǒng)內(nèi)存或者flash中,在新的啟動引導(dǎo)版本中讀取內(nèi)存或者flash中的數(shù)據(jù),再重新寫入到文件系統(tǒng)中。這種方法的缺點是:由于老版本中保留數(shù)據(jù)地址與新的啟動引導(dǎo)軟件中獲取數(shù)據(jù)地址必須一致,因此需要對老版本和新的啟動引導(dǎo)軟件進行定制化改造,也就是老版本先升級到臨時版本,然后再升級到新的版本,操作復(fù)雜;同樣如果新的版本需要回退到老的版本,同樣需要對老的啟動引導(dǎo)軟件進行改造。
【發(fā)明內(nèi)容】
[0005]針對相關(guān)技術(shù)中在版本文件進行升級時操作復(fù)雜的問題,本發(fā)明提供了一種版本文件的運行方法及裝置,以至少解決上述問題。
[0006]根據(jù)本發(fā)明的一個方面,提供了一種版本文件的運行方法,包括:在系統(tǒng)啟動引導(dǎo)軟件中,識別閃存flash中當前文件系統(tǒng)的文件系統(tǒng)類型,并根據(jù)所述文件系統(tǒng)類型初始化文件系統(tǒng);獲取待運行版本文件支持的文件系統(tǒng)類型;根據(jù)所述當前文件系統(tǒng)的文件系統(tǒng)類型,以及所述待運行版本文件支持的文件系統(tǒng)類型,判斷所述當前文件系統(tǒng)是否支持所述待運行版本文件,如果支持,則運行所述待運行版本文件;否則,讀取所述文件系統(tǒng)中的所有文件并保存到內(nèi)存和/或不受所述文件系統(tǒng)管理的flash中的存儲區(qū)域,格式化所述文件系統(tǒng),根據(jù)所述待運行版本文件支持的文件系統(tǒng)類型,重新初始化所述文件系統(tǒng),然后將保存的所述文件保存到所述文件系統(tǒng)中,運行所述待運行版本文件。
[0007]優(yōu)選地,識別閃存flash中當前文件系統(tǒng)的文件系統(tǒng)類型包括:讀取所述當前文件系統(tǒng)的特征結(jié)構(gòu),根據(jù)特征結(jié)構(gòu)與文件系統(tǒng)類型的對應(yīng)關(guān)系,識別所述當前文件系統(tǒng)的文件系統(tǒng)類型。
[0008]優(yōu)選地,所述待運行版本文件保存在所述文件系統(tǒng)中;獲取所述待運行版本文件支持的文件系統(tǒng)類型包括:獲取所述待運行版本文件的版本名,根據(jù)所述版本名從所述文件系統(tǒng)中讀取所述待運行版本文件,從所述待運行版本文件的版本頭中讀取所述待運行版本文件支持的文件系統(tǒng)類型。
[0009]優(yōu)選地,所述待運行版本文件保存在所述flash的一個區(qū)域;獲取所述待運行版本文件支持的文件系統(tǒng)類型包括:通過flash參數(shù)區(qū)獲取所述待運行版本文件保存在flash中的區(qū)域,從所述區(qū)域中讀取所述待運行版本文件,從所述待運行版本文件的版本頭中讀取所述待運行版本文件支持的文件系統(tǒng)類型。
[0010]優(yōu)選地,所述待運行版本文件保存在服務(wù)器上;獲取所述待運行版本文件支持的文件系統(tǒng)類型包括:從所述服務(wù)器上獲取所述待運行版本文件,從所述待運行版本文件的版本頭中讀取所述待運行版本文件支持的文件系統(tǒng)類型。
[0011]優(yōu)選地,所述待運行版本文件保存在主用主控板的文件系統(tǒng)上;獲取所述待運行版本文件支持的文件系統(tǒng)類型包括:備用主控板或者線卡通過板間通訊獲取所述待運行版本文件,從所述待運行版本文件的版本頭中讀取所述待運行版本文件支持的文件系統(tǒng)類型。
[0012]優(yōu)選地,在獲取待運行版本文件支持的文件系統(tǒng)類型時,所述方法還包括:獲取所述待運行版本文件的版本信息,并對所述待運行版本文件進行校驗,如果獲取所述待運行版本文件的版本信息失敗或者對所述待運行版本文件進行校驗失敗,則獲取備份版本文件,并對所述備份版本文件進行校驗,如果校驗成功,則將所述備份版本文件設(shè)置為待運行版本文件。
[0013]優(yōu)選地,讀取所述文件系統(tǒng)中的所有文件并保存到內(nèi)存,包括:將所述內(nèi)存映射為內(nèi)存文件系統(tǒng),將所述文件系統(tǒng)中的所有文件拷貝到所述內(nèi)存文件系統(tǒng)中。
[0014]優(yōu)選地,讀取所述文件系統(tǒng)中的所有文件并保存到內(nèi)存中,包括:對所述文件系統(tǒng)中的整個文件目錄中的文件壓縮為映像文件后保存到內(nèi)存中;將保存到的所述文件保存到所述文件系統(tǒng)中,包括:對所述內(nèi)存中保存的所述映像文件進行解壓縮,然后保存到所述文件系統(tǒng)。
[0015]優(yōu)選地,所述映像文件保存到固定地址內(nèi)存中,或者保存到動態(tài)內(nèi)存中。
[0016]優(yōu)選地,在識別閃存flash中當前文件系統(tǒng)的文件系統(tǒng)類型之前,所述方法還包括:下載新的主版本文件并保存到所述文件系統(tǒng)中,同時升級新的系統(tǒng)啟動引導(dǎo)軟件版本;激活所述新的主版本文件為待運行版本文件并重啟系統(tǒng)。
[0017]根據(jù)本發(fā)明的另一個方面,提供了一種版本文件的運行裝置,包括:識別模塊,用于在系統(tǒng)啟動引導(dǎo)軟件中,識別閃存flash中當前文件系統(tǒng)的文件系統(tǒng)類型;初始化模塊,用于根據(jù)所述文件系統(tǒng)類型初始化文件系統(tǒng);獲取模塊,用于待運行版本文件支持的文件系統(tǒng)類型;判斷模塊,用于根據(jù)所述當前文件系統(tǒng)的文件系統(tǒng)類型,以及所述待運行版本文件支持的文件系統(tǒng)類型,判斷所述當前文件系統(tǒng)是否支持所述待運行版本文件,如果支持,則觸發(fā)執(zhí)行模塊;否則,觸發(fā)格式化模塊;所述格式化模塊,用于讀取所述文件系統(tǒng)中的所有文件并保存到內(nèi)存和/或不受所述文件系統(tǒng)管理的flash中的存儲區(qū)域,格式化所述文件系統(tǒng),并觸發(fā)所述初始化模塊根據(jù)所述待運行版本文件支持的文件系統(tǒng)類型,重新初始化所述文件系統(tǒng);存儲模塊,用于在所述初始化模塊重新初始化所述文件系統(tǒng)之后,將保存的所述文件保存到所述文件系統(tǒng)中,并觸發(fā)所述執(zhí)行模塊;所述執(zhí)行模塊,用于運行所述待運行版本文件。
[0018]通過本發(fā)明,自動識別當前文件系統(tǒng)和待運行版本文件支持的文件系統(tǒng)類型,在當前文件系統(tǒng)不支持待運行版本文件的情況下,緩存文件系統(tǒng)中的文件,并格式化文件系統(tǒng),按照待運行版本支持的文件系統(tǒng)類型重新初始化文件系統(tǒng),再將緩存的數(shù)據(jù)重新寫入到文件系統(tǒng)中,運行待運行版本文件,解決了相關(guān)技術(shù)中在版本文件進行升級時操作復(fù)雜的問題,在新老版本文件運行時能夠自動識別文件系統(tǒng)并初始化文件系統(tǒng),同時又讓文