基于flash的流式文件系统以及文件读取写入的方法技术方案

技术编号:7634571 阅读:261 留言:0更新日期:2012-08-03 22:41
本发明专利技术提供一种基于flash的流式文件系统以及在该系统上读写文件的方法,所述基于flash的流式文件系统包括将flash划分多个存储单元,所述存储单元分为系统簇和数据簇;系统簇用于存储日志、备份、文件目录表、文件分配表;数据簇用于存储数据。这样,对文件的读写就可以先遍历各个簇的簇头信息,获取各个簇的类型以及空间使用情况,由于仅读取簇头部信息,因此花费的时间少;通过对系统簇的读取,就可以获得如文件的起始簇、大小、修改时间以及文件存储分布情况等信息,从而更有效率的找到匹配的簇,再对文件进行读写;同时,由于已经获知各个簇的空间使用情况,就有效分配这些空闲的簇,从而使得对存储空间的管理更为高效。

【技术实现步骤摘要】

本专利技术涉及一种流式文件系统领域,尤其涉及一种基于flash的流式文件系统以及基于该系统的文件读取或写入的方法。
技术介绍
随着各种卡片被应用于消费交易中,pos也被广泛应用于各类商家。通常而言pos机都需要存储各类的交易数据,比如交易商家、地点、时间、交易类型、卡号等信息,原有的POS只需提供记录式的文件系统记录这些流水数据就可以满足需求。但随着POS应用形式的多样化,POS机不仅要存储交易流水数据,还要存储其他形式的数据,比如用户个性化的界面数据、字体、图形、或者各种脚本数据。这样一来,原有记录式的文件系统不能满足日益增长的用户需求。因此一种简单、易用、移植性强、对硬件要求低的流式文件系统就呼之欲出。目前可用的流式文件系统有比较多,比如最常用的有jffs2、yaffs、ext、fat、ntfs等文件系统。(I) jffs2 (Journaling Flash File System, flash 日志型文件系统第 2 版),其功能就是管理在MTD设备上实现的日志型文件系统。除了提供具有断电可靠性的日志结构文件系统,jffs2还会在它管理的MTD设备上实现磨损平衡和数据压缩等特性。Jffs2的不足之处(a)需要类似Iinux这种强大的操作系统支持,(b)挂载时对闪存从头到尾扫描,速度慢,并且需要大量的内存。(2) yaffs (Yet Another Flash File System):第一个专门为 NAND Flash 存储器设计的嵌入式文件系统,适用于大容量的存储设备,Yaffs是基于日志的文件系统,提供磨损平衡和掉电恢复的特性,主要应用于Iinux和wince中。(3) ext (extended file system):是专门为linux开发的原始的扩展文件系统。(4) fat (基于文件分配表文件系统)通常应用于磁盘,U盘等大容量的存储介质上。其主要的思想是在存储介质上划出固定的区域记录文件系统的信息以及文件分配表(File Allocation Table,FAT表),以达到管理存储空间的目的。正常使用FAT文件系统的介质都带有控制器,控制器除了实现正常访问物理存储介质之外,还可以实现物理介质的磨损平衡。不适用于直接访问flash设备。(5)ntfs (New Technology File System):是基于windows操作系统的磁盘文件系统。目前常用的文件系统通常需要强大的操作系统支持,并且需要的内存资源较大,甚至有些文件系统不支持flash设备。本专利技术要解决的问题是开发一种文件系统同时支持norflash与nandflash,并且无需操作系统支持,可在无操作系统或轻量级的操作系统如nucleus、uclinux上运行,带有磨损平衡的pos机专用的流式文件系统
技术实现思路
本专利技术提供一种基于flash的流式文件系统,能够解决现有技术中不支持flash设备,移植性不高、对硬件要求高的技术问题。为解决上述技术问题,本专利技术提供一种基于flash的流式文件系统,将flash划分多个存储单元,所述存储单元分类为系统簇或数据簇;系统簇用于存储日志、备份、文件目录表、文件分配表;数据簇用于存储数据。为解决上述技术问题,本专利技术还提供一种向基于flash的流式文件系统读取文件的方法,包括 SI :遍历flash中的每个簇的簇头信息,获取每个簇的类型以及空间使用状况;S2 :获取系统簇,根据系统簇中的文件目录表和文件分配表,获取文件的存储信息;S3 :根据文件的存储信息,读取文件数据。其中,所述步骤S2的文件的存储信息包括文件名称、文件分配情况。为解决上述技术问题,本专利技术还提供一种向基于flash的流式文件系统写入文件的方法,包括SI :遍历flash中的每个簇的簇头信息,获取每个簇的类型以及空间使用状况;S2:获取系统簇,根据系统簇中的文件分配表,获取所需要写入的数据簇的信息,判断所述数据簇是否为空,若是,写入数据;若否,转到S3 ;S3 :随机分配一个空闲数据簇,写入数据。其中,所述步骤S3中,所述数据包括旧簇中的有用数据A以及新增数据B,所述写入数据的方法是,获取数据A和数据B,丢弃包含数据A的数据簇,将数据A和数据B —起写入随机分配的空闲数据簇,更新文件分配表。采用上述技术方案,本专利技术的有益效果是由于将flash划分系统簇和数据簇,对文件的读写就可以先遍历各个簇的簇头信息,获取各个簇的类型以及空间使用情况,由于仅读取簇头部信息,因此花费的时间少,本专利技术提供独立的文件操作接口,使用较小内存,因此不需要强大的操作系统支持,;通过对系统簇的读取,就可以获得如文件的起始簇、大小、修改时间以及文件存储分布情况等信息,这样,能够更有效率的找到匹配的簇,再对文件进行读写;同时,由于已经获知各个簇的空间使用情况,就可以随机分配这些空闲的簇,使得文件系统对各个簇的使用频率度达到一定程度的平衡,从而对存储空间的管理更为高效。附图说明图I为本专利技术提供的基于flash的流式文件系统的示意图;图2为本专利技术提供的基于flash的流式文件系统的系统初始化示意图;图3为本专利技术提供的向基于flash的流式文件系统读取文件的方法的流程图;图4为为本专利技术提供的向基于flash的流式文件系统写入文件的方法的流程图。具体实施例方式为详细说明本专利技术的
技术实现思路
、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。请参阅图1,本专利技术提供一种基于flash的流式文件系统,其特征在于将flash划分多个存储单元,所述存储单元包括系统簇和数据簇;系统簇用于存储日志、备份、文件目录表、文件分配表;本专利技术提供独立的文件操作接口,使用较小内存,因此不需要强大的操作系统支持。所谓的文件目录表即FDT (File Directory Table),文件分配表即FAT (FileAllocation Table)。数据簇用于存储数据。所谓簇是能在一个flash内能分配的flash空间的最小单位,簇的大小取决于flash的大小和格式。如果写入文件的大小超过flash的簇的大小,这个文件将跨越多个簇(有时候作为一个簇链),例如,某个文件会占据0、2、4、8号簇,而flash被限制只能使用固定数目的簇,所以簇的大小变化要取决于分区的容量,分区做的越小,簇的大小就越小。簇的大小越小,当簇被使用时候浪费的空间就越少。 因此,本专利技术将存储区域分为多个簇,可以有效的利用flash空间。请参阅图2和图3,本专利技术还提供一种向基于flash的流式文件系统读取文件的方法,包括SI :当系统启动时,文件系统就遍历flash中的每个簇的簇头信息,获取每个簇的类型以及空间使用状况;由于仅读取簇头部信息,因此花费的时间较少。S2 :获取系统簇,根据系统簇中的文件目录表和文件分配表,获取文件的存储信息,具体指,根据FDT表查询该文件对应的FDT记录,根据FDT记录的首簇号,又从FAT表查找该文件对应的FAT记录,得到文件的存储空间分布情况、文件大小等重要信息。S3 :根据文件的存储信息,读取文件数据。采用这种方法,由于在flash划分系统簇和数据簇,先遍历各个簇的簇头信息,获取各个簇的类型以及空间使用情况,由于仅读取簇头部信息,因此花费的时间少;通过对系本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:王斌陈庆斌林英
申请(专利权)人:福建联迪商用设备有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术