文件系统日志安全实现 -事务安全机制

浏览:575来源:本站时间:2021-07-10

文件系统中的数据分为数据和元数据(meta data)。数据是指普通文件中的实际数据,而元数据指用来描述一个文件特征的系统数据,诸如访问权限、创建和访问时间以及文件数据块的位置信息等。用户操作一个文件时必须首先得到它的元数据,才能定位到文件的位置并且得到文件的内容。

FAT文件系统中,簇分配信息(FAT表)与文件内容及目录项信息是分开存放的。即使是最简单的文件操作,比如在文件末尾添加数据,也是非原子性操作(non-atomic)。文件系统操作时,如果系统掉电或应用崩溃,影响可能是无害的-浪费磁盘空间,或者非常严重-损坏文件和丢失数据。

在嵌入式应用中,为了增加数据可靠性,提供掉电保护,基于FAT的文件系统安全解决方案是提供日志机制。


日志(Journaling)实现

日志的基本思想是在磁盘上开辟一块区域专门用来保存日志,叫做journaling 区域,在更新磁盘上特定的块(block)之前,首先把要做的变更记录到journaling区域,然后再去更新相应的块, 这样在系统崩溃的时候,可以通过journaling区域的信息,实现恢复。

应用层与文件系统层操作之间的关系如下图所示,一个文件操作API调用可能需要一个或几个文件系统层操作实现。

图片

以文件重命名(rename)操作为例,重命名API包含一个上层FAT重命名操作,及下列底层FAT操作:

 

京ICP备:京ICP备05011254号-1 版权归北京麦克泰软件技术有限公司所有
北京麦克泰软件技术有限公司