[發明專利]一種安全遠程升級嵌入式Linux內核的方法及系統有效
| 申請號: | 200910302553.1 | 申請日: | 2009-05-25 |
| 公開(公告)號: | CN101556547A | 公開(公告)日: | 2009-10-14 |
| 發明(設計)人: | 周祺睿;湯國東;周彥沛;余春蕾 | 申請(專利權)人: | 芯通科技(成都)有限公司 |
| 主分類號: | G06F11/14 | 分類號: | G06F11/14;G06F9/445 |
| 代理公司: | 成都九鼎天元知識產權代理有限公司 | 代理人: | 熊曉果;吳彥峰 |
| 地址: | 610041四川省成都市高*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 安全 遠程 升級 嵌入式 linux 內核 方法 系統 | ||
技術領域
?本發明屬于網絡通信領域,尤其涉及一種安全遠程升級嵌入式Linux內核的方法及裝置。
背景技術
隨著現代電子設備智能化、網絡化的發展,越來越多的功能需要一個強大的操作系統作支撐。Linux作為一種優秀的操作系統在嵌入式領域有著廣泛應用。在Linux廣泛應用的情形下,也產生了對Linux內核進行遠程升級的需求:一方面電子設備在使用過程中需要升級功能,有可能需要內核的支持;另一方面,Linux本身也處在一個持續的發展過程中,許多新的特性不斷的加入。
通常一個完整的嵌入式Linux軟件系統由Bootloader、內核、文件系統和應用程序組成。內核完成對所有的資源進行管理,包括任務調度、驅動各種外設和提供基本的服務(如文件系統和網絡協議等)。應用程序存放在文件系統中,啟動后以進程的形式存在。應用程序可以使用網絡連接主機通信,完成控制和數據傳輸等功能。Linux內核作為Linux操作系統的核心部件,一般以壓縮后的二進制文件存在,在嵌入式系統啟動時由Bootloader從非易失性存儲器(一般是FLASH)搬移到內存并運行。內核運行后,非易失性存儲器中的內核鏡像在重啟前不再使用,為在線升級提供了條件。
升級Linux內核可以通過升級模塊的方式實現,模塊存放在文件系統中,由應用程序插入到正在運行的內核中或是從中卸載。雖然模塊的方式易于實現,但是限制很多,只能作為當前內核的一些修補,不能實現不同發行版本之間的升級,也不能對系統的一些關鍵配置進行修改。直接在線升級內核的方法是:在應用層將新版本的Linux內核直接寫入存儲器,但這樣存在很高的風險,一旦升級過程中出現嚴重錯誤(如斷電等)或者升級了一個不可啟動的錯誤版本,系統將無法再次啟動,必須進行現場的人工修復,這點對于遠端無人職守的設備是無法容忍的。
發明內容
本發明的目的在于:提供一種安全遠程升級嵌入式Linux內核的方法,旨在解決在無人值守的應用環境下,如何保證嵌入式Linux內核能安全、成功地遠程在線升級的問題。
本發明的目的是這樣實現的:
一種安全遠程升級嵌入式Linux內核的方法,系統存儲兩個或兩個以上Linux內核文件,其中,Linux系統默認啟動和升級的內核為工作內核,其余的Linux內核為后備內核,所述后備內核能夠確保系統成功啟動,設置狀態參數變量R和參數值ST0、ST1、ST2,所述方法包括下述步驟:
A、系統上電復位和正常復位時設置R=ST0;
B、判斷R是否為ST0,不是則直接由Bootloader將后備內核搬移到內存運行;是則由Bootloader將工作內核搬移到內存運行,并對搬移中的工作內核文件進行校驗,如果校驗通過,則設置R=ST1,啟動工作內核,如果校驗未通過則設置R=ST2,由Bootloader將后備內核搬移到內存運行;
C、自內核啟動伊始監測啟動所耗時間,如果啟動內核所耗時間未超過正常時間限定,判斷當前R是否為ST0,是則退出,否則向遠程主機發送告警信息并設置R=ST0,由遠程主機對工作內核重新升級;如果啟動內核所耗時間超過正常時間限定,則重啟系統。
對所述工作內核升級后設置R=ST0并重啟系統。
當內核啟動所耗時間超過正常時間限定仍無法重啟,則通過看門狗強制重啟。
所述步驟C中,當R不為ST0時進一步包括:判斷R是否為ST1,是則向遠程主機發送攜帶有升級后的工作內核通過校驗但不能正常啟動的信息的告警信息,否則向遠程主機發送攜帶有升級后的工作內核未通過校驗的信息的告警信息。
本發明的另一目的在于:提供一種安全遠程升級嵌入式Linux內核的裝置,系統存儲兩個或兩個以上Linux內核文件,其中,Linux操作系統默認啟動和升級的內核為工作內核,其余的Linux內核為后備內核,所述后備內核能夠確保系統成功啟動,設置狀態參數變量R和參數值ST0、ST1、ST2,所述裝置包括:
參數設置部件,用于在系統上電復位和正常復位時設置R=ST0;
第一判斷部件,用于判斷R是否為ST0;
第一處理部件,用于在第一判斷部件得出R不為ST0時直接由Bootloader將后備內核搬移到內存運行;
第二處理部件,用于在第一判斷部件得出R為ST0時由Bootloader將工作內核搬移到內存運行;
校驗部件,用于對搬移中的工作內核文件進行校驗;
第三處理部件,用于在校驗通過時設置R=ST1,啟動工作內核;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于芯通科技(成都)有限公司,未經芯通科技(成都)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200910302553.1/2.html,轉載請聲明來源鉆瓜專利網。





