侵权投诉
订阅
纠错
加入自媒体

嵌入式设备上的文件系统优化设计

2013-11-11 17:45
一分日元
关注

  随着芯片技术的发展,各种处理器的处理能力不断提高,手持智能终端得到极大的普及。嵌入式Linux操作系统在未来的手持智能设备中将扮演着非常重要的角色,使嵌入式Linux的应用和研究不断的深入。

  由于Microsoft公司的Windows操作系统占据了桌面操作系统绝大多数份额,而手持智能设备与PC机的数据交换又在所难免,因此,绝大多数的大容量嵌入式智能设备必须采用与PC机兼容的FAT/FAT32文件系统。随着便携式硬盘的应用,FAT32在嵌入式硬盘上已成为主流的格式。

  同时,随着CPU处理能力的提高,面向存储的应用需求在手持智能设备上也随着不断增长,文件系统的访问性能将是未来的手持设备非常关键的因素。然而,当硬盘在手持智能设备上应用时,由于硬盘访问的高耗能特性,对于手持设备的设计构成了极大的挑战。而硬盘的能耗又与读写访问的时间成正比,从节能的角度出发,系统设计者同样希望在单位时间内读取更多内容,以减少硬盘访问时间从而达到节能的目的。因此,在Linux上的FAT32的优化实现成为非常迫切的需求。

  1 Linux中FAT32文件系统读操作分析

  1.1 虚拟文件系统与FAT32[1-2]

  Linux系统中的虚拟文件系统VFS(Virtual File System)是一个非常强大的机制,其设计思路是在内核中提供一个文件系统框架,包括接口函数集、管理用的数据结构以及各种缓存机制。VFS提供上下两个方面的接口,上层接口是提供给I/O系统的用户使用的,包括应用程序和内核的其他管理模块,通过该接口可使I/O系统(文件、设备、网络等)完成如打开、关闭、读、写等;下层接口是提供给真实文件系统的,VFS支持的每个真实文件系统都要通过这个接口来实现。通过这种机制,Linux将系统存在的各种真实文件系统(如EXT2/EXT3、FAT/FAT32、JFFS/JFFS2等)以及设备文件都统一到一种操作中,以此来实现系统的管理与调度。

  FAT(File Allocation Table)文件系统是Microsoft公司推出的广泛使用在Dos、Windows 9X、Windows 2000以及Windows XP系统中。由于Windows系列的操作系统的普及,其FAT文件系统被人们所广泛熟悉和应用。当前针对大容量硬盘,FAT32文件系统占据了主要的地位。在FAT32文件系统中,以下三个概念与文件的组织密切相关:

  扇区(Sector): 数据存取的最小物理单位。

  簇(Cluster):文件最小分配单位,与分区大小、文件系统相关。

  逻辑扇区(Logic Sector):在文件系统实现中,为了优化和统一设计所定义的读写长度。

  1.2 文件读在内核中的实现

  以读操作为例,通过Linux系统中VFS的作用,从用户空间对FAT32的操作,系统可以抽象成从fread( )映射到内核函数do_generic_file_read( )来完成具体的文件读操作。在文件/μCLinux/linux-2.4.x/mmnommu/filemap.c中存在这个接口实现的原型。虽然这类接口并不是基本的,但正如大多数文件系统的实现,FAT32就是通过这类接口来实现文件的各种操作。

1  2  3  4  下一页>  
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号