新闻中心

EEPW首页>嵌入式系统>设计应用> 嵌入式Linux的安全模式设计

嵌入式Linux的安全模式设计

作者: 时间:2011-05-10 来源:网络 收藏
本系统的架构如下图:

本文引用地址://m.amcfsurvey.com/article/150779.htm

本系统的架构

  产品所使用的flash总大小为16M。

  系统包括三大部分,即Bootloader,config, kernel + rootfs:

系统包括三大部分,即bootloader,config, kernel + rootfs

  另外,/dev/mtdblock/0,在系统中对应整个flash block,即整个16M空间。

  系统启动时,bootloader将kernel和根文件映象从flash上读取到RAM空间中,为内核设置启动参数,调用内核,进入application,进行媒体文件的播放。

  这个通常意义上的系统,它是不带safe mode的。

  这样的系统,在做系统更新升级时,主要是对kernel+rootfs部分进行升级,以此来增加系统的功能。

  升级时,application主要是操作/dev/mtdblock/3设备文件:

  第一步:下载新的firmware到ramfs中,也即ram disk中,比如/tmp目录下,采用的更新方式可以是USB或FTP;

  第二步:read /tmp/firmware文件,并write到设备文件/dev/mtdblock/3上,即对已有的firmware进行了更新。

  在升级的过程中,我们会提供友好的界面给用户,来提示下载进度与烧写flash的进度,让用户可以看到正在发生的状况。

  最后烧写完成后,重新启动系统,即可进入到新的firmware中。

  在通常的更新中,用户的产品配置config一般不去修改,保持用户已经做的配置选项,不能破坏。Config内容对应为/dev/mtdblock/2设备文件。

  从USB/FTP 上更新时,所使用的firmware文件需要是一个更加完整的image文件,可以包括bootloader, default config, kernel+rootfs,并让application可以做到视image中的标记来决定是否需要更新bootloader、config等内容,这样会更加灵活。

  在更新firmware时,如果掉电,那么kernel + rootfs部分将会出现不完整的情况,也就是说只写入了部分内容,而中途中断了,这样的话,一个不完整的系统将无法正常工作。在这样的情况下就需要safe mode了。

  safe mode架构

  Safe mode的中,对原来的系统增加了两个部分的内容:

  kernel + rootfs,即简单的UI界面与功能;

  magic number,即烧写flash的标记。

safe mode架构设计

  safe mode实际上也是一个kernel + rootfs部分,只是它所具有的功能只包括一些简单的界面,主要是提供网络设置,从USB/FTP下载firmware,完成对flash的烧写。

  为了区分,这里,将主功能部分的kernel + rootfs称为master。

  我们将safe mode存放在master的后部,预留的flash大小为4M。

  Magic number只占用一个字节的大小,是在这4M的最后的部分的一个字节,也即原始系统的15872K的最后一个字节位置处。

  在开始烧写flash前,将magic number设置为0x55,表示烧写的开始。烧写正常结束后,将magic number设置为0xAA,表示烧写正常结束。

  如果新产品中具备了safe mode,那么在以后再次更新升级时,开始烧写flash时,magic number的位置将会有0x55标记,如果烧写中途掉电,在重新启动后,将由Bootloader来检查magic number的值,如果内容为0x55,那么bootloader将从safemode部分读出kernel和根文件映象,再为内核设置启动参数,调用内核,进入safe mode application。

  如果bootloader读到magic number为0xAA,那么说明master firmware是正常的,就将直接进入master。

  所以涉及到safe mode的地方也包括了对bootloader的修改,需要在系统上电阶段也检查safe mode的magic number,这个过程是必不可少的,只有在启动阶段就检查magic number,才能跳过损坏的master系统,进入模式,达到恢复系统的目的。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭