一种嵌入式操作系统半开放自动升级的方法

文档序号:6582098阅读:423来源:国知局
专利名称:一种嵌入式操作系统半开放自动升级的方法
技术领域
本发明涉及一种嵌入式操作系统的升级方法,尤其是一种嵌入式操作系统半开放自动升级的方法,属于计算机技术领域。
例如,以X86嵌入式系统实现PC家电化的应用中,其实现的硬件平台完全是普通PC的硬件,这样面临的一个问题是,PC硬件的更新非常频繁,例如声卡、显卡。如果每更新一个硬件,嵌入式系统就重新生成一次,会浪费大量的时间和成本,所以采用只更新驱动的方式。
本发明的目的是这样实现的一种嵌入式操作系统半开放自动升级的方法,它至少包括如下步骤在嵌入式系统中保留一升级标识信息存储区域,为在硬盘上开设的一区域;在该区域中设置升级标识;系统每次启动时自动读取升级标识;如标识为升级系统,在指定位置获取升级内容,自动完成升级过程;如果标识为不升级,系统维持原状态。
指定位置为将升级内容集成在本机上一存储区内的位置或为另一个外挂的集成升级驱动内容的位置。
所述的设置升级标识步骤还进一步包括按照预定协议将升级标识信息存储区域写入数据后,进行合法性校验,并将校验码存储;校验码为合法的,则表示系统升级完成;校验码为非法的,则表示系统升级没有完成;系统每次启动时自动检测升级区域的校验码。
另外,升级标识信息存储区域记录一个或一个以上需要更新的升级驱动内容类型。
所述的升级标识信息存储区域还记录本次升级写入有效数据的扇区数量,用于升级程序正确读取升级数据。
所述的向硬盘写入升级信息步骤包括进行CRC检验,并记录其校验码,对升级数据的正确性和完整性进行确认。
根据上述技术方案分析可知,本发明的方法主要是为那种需要经常更新硬件的嵌入式系统设计的,在通常情况下,嵌入式系统都是针对一套固定硬件平台的软件系统,一旦对硬件更新,只有重新建立新的系统软件,对于用户来说,系统是不可升级的。采用这种方案,可以利用特定工具对已有软件系统进行更新,以几乎零成本实现了系统升级,而且极大地延长了系统的生命周期。


图1为本发明写入部分的程序流程图.
图2为本发明自动升级方法流程图。
图3为本发明隐藏分区的结构示意图。
图4为本发明标识区的具体结构示意图。
本发明为一种嵌入式操作系统半开放自动升级的方法,其中“半开放”的含义是指嵌入式操作系统以简单协议来获取信息,决定是否需要进行软件升级或更换硬件,也就是说,系统并不是完全封闭的,由此带来的安全性问题可以采用一些有效的安全机制进行弥补。这种开放实际上是一种内部的开放。基本内容为在嵌入式系统中保留了一小块区域用于记录升级信息。当需要进行软件升级或者更换硬件时,启动工具软件,按预定协议向升级信息记录区写入必要数据,这中间需要合法性校验。然后退出并进入嵌入式系统。嵌入式系统每次检测升级区域的校验码,如果需要升级,就由嵌入式系统自动完成所有升级过程,这里采用的安全机制是,如果升级失败了,将回到未升级前的状态。
为单功能系统保留了一个“后门”,即系统每次启动时自动到硬盘的指定位置读取升级标识,这个过程并不会给系统带来什么负担。开启后门的唯一钥匙是我们另外开发的一个引导程序HPASetup.exe。在硬盘上开辟一隐藏分区,HPASetup.exe可以打开隐藏分区。隐藏分区的结构如图3,其中的标识区就是所设定的升级标识。标识区的具体结构见图4,其数据结构是这样的假设升级标识区的LBA寻址方式地址为UDLBA,UDLBA根据不同的硬盘获得的值不一样。从UDLBA开始,第一个扇区记录扇区的配置信息。该扇区前8个字节为该扇区的标识,第9个字节记录需要更新的硬件驱动的总个数,如果是一个大于0的数N,表示需要更新N个硬件的驱动,例如0升级包、1显卡、2声卡、3鼠标、4显示器。如果是0,表示不进行驱动更新(通常情况下该值为0)。第10个字节记录本次升级共向多少扇区写入了有效数据。每次向硬盘写入升级信息均需要进行CRC校验,扇区的最后8个字节用来记录校验码。该扇区的其他字节为保留区域。
升级标识区就是嵌入式系统从外界获取数据的媒介,它存在于隐藏分区中,不会被一般的系统和常用磁盘工具识别。一个实际更新驱动的例子系统中原来显卡的驱动是针对Sis6323的,现在显卡换成了TNT2 Model 64。
具体实施例一原来的系统中已经集成了TNT2 Model 64的驱动。用光盘启动PC,自动进入HPASetup.exe程序,进入更换硬件菜单选项,选择更换显卡驱动,选择TNT2 Model 64,确定,重启机器。HPASetup.exe将向从94000000开始的硬盘扇区写入了如表1至表2的结构表1

其中UDBLOCK扇区为第94000000(UDLBA)扇区。表2

其中从第1个字节开始的扇区为第94000001(UDLBA+1)扇区。
具体实施例二系统中并没有集成过TNT2 Model 64的驱动,但是维护人员手上有新显卡的rpm包。将rpm包放到光盘上,用光盘启动PC,自动进入HPASetup.exe程序,进入升级包安装选项,输入rpm包的绝对路径,确定,退出HPASetup.exe并且重起计算机。HPASetup.exe将向从94000000开始的硬盘扇区写入以下数据,如表3表3

其中UDBLOCK扇区为第94000000(UDLBA)扇区。表4

其中从第1个字节开始的扇区为第94000001(UDLBA+1)扇区。
嵌入式系统完成的工作检测第94000000扇区开始的第9个字节,如果N=0,正常启动;如果N>0,按照N的大小读取第94000001扇区开始的区域,获得rpm包的类型为显卡,地址为/mnt/cdrom/tnt2m64.rpm,其他相关字节用于校验合法性。然后记录开始升级标记(在其他硬盘保留区域),运行rpm包进行升级,如果成功完成,修改去掉升级标记并把94000000开始的第9字节置0。
以上实施例仅用以说明本发明而非限制,尽管参照以上较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明进行修改、变形或者等同替换,而不脱离本发明的精神和范围,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.一种嵌入式操作系统半开放自动升级的方法,其特征在于它至少包括如下步骤在嵌入式系统中保留一升级标识信息存储区域,在该区域中设置升级标识;系统每次启动时自动读取升级标识;如标识为升级系统,在指定位置获取升级内容,自动完成升级过程;如果标识为不升级,系统维持原状态。
2.根据权利要求1所述的嵌入式操作系统半开放自动升级的方法,其特征在于所述的指定位置为将升级内容集成在本机上一存储区内的位置或为另一个外挂的集成升级驱动内容的位置。
3.根据权利要求1所述的嵌入式操作系统半开放自动升级的方法,其特征在于所述的存储区域为在硬盘上开设的一区域。
4.根据权利要求3所述的嵌入式操作系统半开放自动升级的方法,其特征在于所述的区域为隐藏分区。
5.根据权利要求1或2或3或4所述的嵌入式操作系统半开放自动升级的方法,其特征在于所述的设置升级标识步骤还进一步包括按照预定协议将升级标识信息存储区域写入数据后,进行合法性校验,并将校验码存储;校验码为合法的,则表示系统升级完成;校验码为非法的,则表示系统升级没有完成;系统每次启动时自动检测升级区域的校验码。
6.根据权利要求1或2或3或4所述的嵌入式操作系统半开放自动升级的方法,其特征在于所述的升级标识信息存储区域记录一个或一个以上需要更新的升级驱动内容类型。
7.根据权利要求1或2或3或4所述的嵌入式操作系统半开放自动升级的方法,其特征在于所述的升级标识信息存储区域还记录本次升级写入有效数据的扇区数量,用于升级程序正确读取升级数据。
8.根据权利要求5或6或7所述的嵌入式操作系统半开放自动升级的方法,其特征在于所述的向硬盘写入升级信息步骤包括进行循环冗余校验(CRC),并记录其校验码,用于对升级数据的正确性和完整性进行确认。
9.根据权利要求8所述的嵌入式操作系统半开放自动升级的方法,其特征在于所述的向硬盘写入升级信息包括升级标识或写扇区数量或装载升级内容或记录校验码或其组合。
全文摘要
一种嵌入式操作系统半开放自动升级的方法,它至少包括如下步骤在嵌入式系统中保留一升级标识信息存储区域,为在硬盘上开设的一区域;在该区域中设置升级标识;系统每次启动时自动读取升级标识;如标识为升级系统,在指定位置获取升级内容,自动完成升级过程;如果标识为不升级,系统维持原状态。升级内容为设置在集成在本机上一存储区内的升级驱动内容或为另一个外挂的操作系统引导上的升级驱动内容。本发明基于一种半开放操作系统架构,升级程序能够自动运行,完成新硬件驱动的安装或软件的升级。采用本发明,可以利用特定工具对已有软件系统进行更新,以几乎零成本实现了系统升级,而且极大地延长了系统的生命周期。
文档编号G06F9/445GK1466047SQ0212345
公开日2004年1月7日 申请日期2002年6月28日 优先权日2002年6月28日
发明者赵明, 陈卫华, 赵 明 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1