[发明专利]一种安全远程升级嵌入式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.vipzhuanli.com/pat/books/200910302553.1/2.html,转载请声明来源钻瓜专利网。