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