嵌入式Linux文件系统保护

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式Linux文件系统保护相关的知识,希望对你有一定的参考价值。

如果在消费类电子产品上需要运行一个操作系统,芯片公司经常会选择内核很小且移植性强的Linux。他们会有针对性地做一个裁剪版的Linux在非易失存储器如flash芯片上运行,而把丰富应用的实现交给专门的应用开发公司来做。现在的问题是,Linux本身是需要正常关机来保护文件系统不受损害的,但是我们不可能要求消费类电子产品的用户去关注文件系统保护,只有允许断电、加电、强制关机等操作随意进行的产品才能称作成熟易用的消费类电子产品。那么如何解决这个矛盾?有什么手段实现Linux自身以及运行其上的应用的健壮性?

对于嵌入式设备 一般采用一下两种方式来保护操作系统及应用的健壮性
1 嵌入式文件系统 (比如 jffs2),这种文件系统专门为flash储存设备优化, 能够防止数据的丢失
2 真正的保护来自于将操作系统和应用软件储存在只读文件系统中, 比如 cramfs,比如initrd(ramfs),防止用户的任何操作损坏系统本身的内容, 这样不说万无一失也足够安全了。 而一些用户使用过程中产生的临时文件,则放在内存中, 需要保存的配置文件和其他数据则存放在另外的储存空间中(一个独立的分区,使用jffs2或者其他文件系统, 也可以你自己写raw分区数据,自己用程序来保证数据唯一性)
参考技术A 1. 操作系统和应用程序放在flash内,只在使用时调入内存,用完无需写回;
2. 关于需要写回的用户数据:断电文件丢失,主要是由缓存和日志引起的。缓存即写操作先在内存中执行,等积累到一定量以后再一次性实际写入,以提高系统运行速度;日志即实际写操作先在日志区进行,等积累一定时间以后再一次性写入文件,以方便出错回滚和提高速度。若系统不使用缓存和日志,则性能会有所下降,断电损失的仅是正在写入的内容,损失概率大大减小且仅涉及一个文件。在做嵌入式应用时,需合理搭配缓存和日志,以便在性能和断电丢失之间取得权衡。

以上是关于嵌入式Linux文件系统保护的主要内容,如果未能解决你的问题,请参考以下文章

嵌入式 Linux根文件系统移植——根文件系统简介

嵌入式Linux系统中根文件系统构建方式

嵌入式linux启动时运行的inittab文件

转:嵌入式linux启动时运行的inittab文件

0002 嵌入式开发带你从小白到大佬系列之——Linux文件系统常用文件操作命令及用户权限

嵌入式Linux开发-根文件系统本地挂载