微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 嵌入式Linux的安全模式设计

嵌入式Linux的安全模式设计

时间:05-10 来源:互联网 点击:

确定性。所以在一个各个版本中,写magic number标记位时,需要一个统一的方法来做到这件事。最容易想到的办法当然就是magic number这个位置相对起始位置0是不变的。而前面提到过的/dev/mtdblock/0就刚好是代表了可以操作的整个flash分区。

有了/dev/mtdblock/0,这样我们就可以open 它,seek到magic number的位置,然后write下0x55或0xAA,这样就保持了写magic number的代码的一致性,不需要根据不同的分区,多次修改操作magic number的有关函数。

Booloader:

Bootloader的修改,也涉及到对magic number的读取,它的读取就相对简单一些,直接使用magic number在RAM中映射的绝对地址即可。

Bootloader检查完magic number后,需要将相对地址为0xBC0000的safe mode的kernel + rootfs读入到RAM,然后设置启动参数,调用内核,进入safe mode提示界面。

Linux kernel:

与老的、不带safe mode的image相比,新的image里的Linux kernel从总体的角度来说,并没有大的变化。在新做的master与safe mode的image中,它们各自需要包含一个Linux kernel,这两个kernel唯一的不同就是启动时所需要的rootfs在RAM中的映射位置不同。它们都有着相同的partition分区设置,编译选项等。

Safe mode必须包含自己的Linux kernel,因为它是运行在master损坏的情况下,master kernel已经不能启动了。

总结

上面的内容是在实际开发中对safe mode的设计与实现的一个描述。从这个描述中,可以看到safe mode在嵌入式Linux产品扮演着重要的角色,对它的设计涉及到很多方面,要考虑系统的尺寸,与现有buidling环境的的兼容性,对后续版本的升级的兼容性等诸多方面。

从某种意义上来说,safe mode的设计关系到产品的成败,一个好的safe mode的设计将会给产品带来巨大的灵活性与可扩展性,大大地方便了客户与产品开发商。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top