CN108021717B - 一种轻量级嵌入式文件系统的实现方法 - Google Patents

一种轻量级嵌入式文件系统的实现方法 Download PDF

Info

Publication number
CN108021717B
CN108021717B CN201711497600.3A CN201711497600A CN108021717B CN 108021717 B CN108021717 B CN 108021717B CN 201711497600 A CN201711497600 A CN 201711497600A CN 108021717 B CN108021717 B CN 108021717B
Authority
CN
China
Prior art keywords
cluster
file
content
directory entry
directory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711497600.3A
Other languages
English (en)
Other versions
CN108021717A (zh
Inventor
刘陟
魏贵鹏
谢演
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu 30javee Microelectronics Co ltd
Original Assignee
Chengdu 30javee Microelectronics Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chengdu 30javee Microelectronics Co ltd filed Critical Chengdu 30javee Microelectronics Co ltd
Priority to CN201711497600.3A priority Critical patent/CN108021717B/zh
Publication of CN108021717A publication Critical patent/CN108021717A/zh
Application granted granted Critical
Publication of CN108021717B publication Critical patent/CN108021717B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/134Distributed indices

Abstract

本发明公开了一种轻量级嵌入式文件系统的实现方法,包括将设备存储空间划分为不同类型的簇,簇包括目录项簇和文件内容簇,目录项簇用于存储文件和/或目录的索引信息,文件内容簇用于存储文件数据,系统上电时,扫描并缓存每个簇的簇标识,通过读取簇标识判断簇类型,判断簇内容是否合法,完成上电流程。本文件系统采用元数据分散存储方式,降低了对系统RAM容量的需求,利用分散存储文件索引值的方式代替传统链表式文件维护方式,逻辑复杂度低,文件访问效率高。

Description

一种轻量级嵌入式文件系统的实现方法
技术领域
本发明涉及计算机数据存储技术,尤其是一种轻量级的嵌入式文件系统。
背景技术
在计算机系统中,文件系统是在存储设备上组织数据的一种方法,该种方法采用文件的方式将存储设备上的客户数据抽象成一些互相关联的“对象”,然后以一定的数据结构将这些“对象”组织起来,并提供一定的方法对这些“对象”进行访问,从而实现对客户数据存储访问的管理。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行检索的系统。
文件系统一般采用目录和文件的方式管理存储数据。目录结构通常采用“树状结构”,即目录由顶层开始,每一级目录下可以放置多个子目录,由此形成分层级的“树状”目录结构,而文件则被放置在分层级树状结构的某一处分支上。文件系统使用专门的数据结构记录,维护该树状结构。
主流文件系统一般将文件划分为多个长度较小的“分片”,称为“簇”。文件系统通过对多个簇的管理实现对文件内容的访问控制。一个文件包含多个簇,隶属于同一文件的簇一般通过链表数据结构来维护。记录目录树状结构的数据和记录文件链表关系的数据统称“元数据”。元数据同样存储在存储设备上,一般是存储在存储设备的特殊区域中。
系统通过文件所在目录位置(即路径名)以及文件名来索引文件,然后通过文件内部偏移量来访问文件内容,其步骤大致如下:
1)系统解析文件路径名,在树状结构中查找路径所在位置,然后利用文件名进行查找,从树状结构的节点中取得该文件第一个簇的索引号;
2)系统通过文件内部偏移量计算出要访问的文件内容隶属于该文件的第几个簇;
3)系统从该文件的第一个簇开始访问,由于每个文件簇都包含文件下一个簇的索引号,由此系统可以找到当前该文件内部偏移量对应的簇;
4)系统读取或写入找到的簇,完成对文件内容的访问。
以上是主流文件系统的实现方式,该种方式在系统资源较为充足的平台上已被证明是高效稳定的,但在系统资源严重受限的一些嵌入式平台上,该种实现方式并不适合,原因如下:
1)主流文件系统的元数据需在上电时读取到系统RAM中缓冲起来,而某些小型嵌入式平台的RAM空间很小,无法容纳元数据;
2)主流文件系统为了支持复杂的目录结构,一般会采用较为复杂的数据结构来维护“元数据”。而对小型嵌入式系统来说,并不需要支持复杂的目录结构,而且小型系统的处理器运算能力有限,采用复杂的数据结构反而降低了效率。
发明内容
基于现有技术的上述缺陷,本发明提供一种逻辑简单、占用运行内存小、数据访问效率高、对代码存储器要求低的轻量级嵌入式文件系统实现方法。
本发明能够以多种方式实现,包括方法、系统、设备、装置或计算机可读介质,在下面论述本发明的几个实施例。
一种轻量级嵌入式文件系统的实现方法,包括将设备存储空间划分为不同类型簇,簇包括目录项簇和文件内容簇,目录项簇用于存储文件和/或目录的索引信息,文件内容簇用于存储文件数据,系统上电时,扫描并缓存每个簇的簇标识,通过读取簇标识判断簇类型,判断簇内容是否合法,完成上电流程。
进一步地,所述目录项簇存储的元数据内容包括父目录名、本目录名或文件名、本目录或文件所在层级。
进一步地,所述文件内容簇存储有文件索引值、文件内容簇序号和文件数据。
进一步地,当目录项簇对应的是一个文件时,目录项簇还存储有文件索引值和文件属性区,用于完成对文件的索引。
进一步地,所述目录项簇还存储有冗余数据和整个簇的校验值。
进一步地,通过读取簇标识判断簇为目录项簇时,根据目录项簇内部存储的校验值是否正确判断簇内容是否合法。
进一步地,通过读取簇标识判断簇为文件内容簇时,通过检查该文件是否有对应的合法目录项簇来判断簇内容是否合法。
进一步地,通过所述文件系统访问文件内容的方法为:
(1)输入文件路径名和文件内部偏移量,生成各层级目录名及文件所在目录层级和文件内容簇序号;
(2)搜索匹配各层级目录名,找到文件对应的目录项簇;
(3)从文件对应的目录项簇中读取文件索引值;
(4)利用文件索引值和文件内容簇序号作为输入,搜索对应的文件内容簇,完成对文件内容的访问。
本发明具有的积极有益技术效果如下:本文件系统采用元数据分散存储方式,降低了对系统RAM容量的需求,利用分散存储文件索引值的方式代替传统链表式文件维护方式,逻辑复杂度低,文件访问效率高,文件系统实现代码对系统程序存储器容量需求小,实现了在小型嵌入式系统上实现小容量存储功能。
本发明的其他方面和优点根据下面结合附图的详细的描述而变得明显,所述附图通过示例说明本发明的原理。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1为本发明实施例提供的目录项簇结构框图;
图2为本发明实施例提供的文件内容簇结构框图。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
一种轻量级嵌入式文件系统的实现方法,包括将设备存储空间划分为不同类型簇,簇包括目录项簇和文件内容簇,目录项簇用于存储文件和/或目录的索引信息,文件内容簇用于存储文件数据,系统上电时,扫描并缓存每个簇的簇标识,通过读取簇标识判断簇类型,并判断簇内容是否合法,完成上电流程。
目录项簇存储的元数据内容包括父目录名、本目录名或文件名、本目录或文件所在层级,当目录项簇对应的是一个文件时,目录项簇还存储有文件索引值和文件属性区,用于完成对文件的索引。优化地,目录项簇还存储有冗余数据和整个簇的校验值,用于保证簇的正确性。
文件内容簇存储有文件索引值、文件内容簇序号和文件数据,文件索引值用于索引文件,文件内容簇序号用于确定本文件内容簇在所有隶属于本文件的簇中的排列序号,通过在每个文件内容簇中存储文件内容簇序号可以有效降低数据结构复杂度。
存储设备的簇除目录项簇和文件内容簇外,还包括失效的目录项簇、失效的文件内容簇和空闲簇。优化地,存储设备每个簇的开头存储有簇标志,用于判断每个簇的簇类型。
该文件系统采用特殊元数据缓冲机制,与主流文件系统在上电时将大量元数据缓冲到系统RAM(Random-Access Memory随机存取存储器)中的策略不同,本文件系统在上电时仅缓冲小部分元数据。系统上电时,本文件系统扫描存储设备每个簇的簇开头,读取每个簇的簇标志并把簇标志缓存到系统RAM中。相对传统文件系统通过备份一个元数据区来保证数据正确性的方法,本文件系统减少了元数据缓冲数量,降低了对RAM容量的要求,适用于资源严重受限的小型嵌入式系统。
通过读取簇标识判断簇为目录项簇时,根据目录项簇内部存储的校验值是否正确判断簇内容是否合法;通过读取簇标识判断簇为文件内容簇时,通过检查该文件是否有对应的合法目录项簇来判断簇内容是否合法,当文件内容簇没有对应的合法目录项簇时,判断当文件内容簇非法,并将之置为失效状态。
优化地,通过所述文件系统访问文件内容的方法为:
(1)输入文件路径名和文件内部偏移量,生成各层级目录名及文件所在目录层级和文件内容簇序号;
(2)搜索匹配各层级目录名,找到文件对应的目录项簇;
(3)从文件对应的目录项簇中读取文件索引值;
(4)利用文件索引值和文件内容簇序号作为输入,搜索对应的文件内容簇,完成对文件内容的访问。
本文件系统采用分散存储文件索引值的方式代替传统链表式文件维护方式,逻辑复杂度低,文件访问效率高逻辑简单,访问效率高,是一种轻量级的文件访问方式。
本发明的不同方面、实施例、实施方式或特征能够单独使用或任意组合使用。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。

Claims (7)

1.一种轻量级嵌入式文件系统的实现方法,其特征在于, 将设备存储空间划分为不同类型簇,簇包括目录项簇和文件内容簇,目录项簇用于存储文件和/或目录的索引信息,文件内容簇用于存储文件数据,系统上电时,扫描并缓存每个簇的簇标识,通过读取簇标识判断簇类型,判断簇内容是否合法,完成上电流程;
通过所述文件系统访问文件内容的方法为:
(1)输入文件路径名和文件内部偏移量,生成各层级目录名及文件所在目录层级和文件内容簇序号;
(2)搜索匹配各层级目录名,找到文件对应的目录项簇;
(3)从文件对应的目录项簇中读取文件索引值;
(4)利用文件索引值和文件内容簇序号作为输入,搜索对应的文件内容簇,完成对文件内容的访问。
2.根据权利要求1所述的一种轻量级嵌入式文件系统的实现方法,其特征在于,所述目录项簇存储的元数据内容包括父目录名、本目录名或文件名、本目录或文件所在层级。
3.根据权利要求1所述的一种轻量级嵌入式文件系统的实现方法,其特征在于,所述文件内容簇存储有文件索引值、文件内容簇序号和文件数据。
4.根据权利要求1所述的一种轻量级嵌入式文件系统的实现方法,其特征在于,当目录项簇对应的是一个文件时,目录项簇还存储有文件索引值和文件属性区,用于完成对文件的索引。
5.根据权利要求1所述的一种轻量级嵌入式文件系统的实现方法,其特征在于,所述目录项簇还存储有冗余数据和整个簇的校验值。
6.根据权利要求1所述的一种轻量级嵌入式文件系统的实现方法,其特征在于,通过读取簇标识判断簇为目录项簇时,根据目录项簇内部存储的校验值是否正确判断簇内容是否合法。
7.根据权利要求1所述的一种轻量级嵌入式文件系统的实现方法,其特征在于,通过读取簇标识判断簇为文件内容簇时,通过检查该文件是否有对应的合法目录项簇来判断簇内容是否合法。
CN201711497600.3A 2017-12-29 2017-12-29 一种轻量级嵌入式文件系统的实现方法 Active CN108021717B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711497600.3A CN108021717B (zh) 2017-12-29 2017-12-29 一种轻量级嵌入式文件系统的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711497600.3A CN108021717B (zh) 2017-12-29 2017-12-29 一种轻量级嵌入式文件系统的实现方法

Publications (2)

Publication Number Publication Date
CN108021717A CN108021717A (zh) 2018-05-11
CN108021717B true CN108021717B (zh) 2020-12-01

Family

ID=62072385

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711497600.3A Active CN108021717B (zh) 2017-12-29 2017-12-29 一种轻量级嵌入式文件系统的实现方法

Country Status (1)

Country Link
CN (1) CN108021717B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109284252B (zh) * 2018-09-11 2021-07-06 武汉虹信科技发展有限责任公司 一种通信设备中轻量级文件系统管理方法
CN110851403A (zh) * 2019-10-24 2020-02-28 北京空间飞行器总体设计部 一种基于rom和ram的星载文件管理方法
CN111143293B (zh) * 2019-12-22 2022-06-07 浪潮电子信息产业股份有限公司 一种元数据获取方法、装置、设备及计算机可读存储介质
CN113806119A (zh) * 2020-06-17 2021-12-17 浙江宇视科技有限公司 存储卡处理方法、装置、设备及存储介质
CN113835791A (zh) * 2020-06-23 2021-12-24 北京字节跳动网络技术有限公司 呈现视图组件的层级关系的方法和装置
CN111782625A (zh) * 2020-06-30 2020-10-16 安徽芯智科技有限公司 芯智科技嵌入式远程文件系统软件
CN113806803B (zh) * 2021-09-17 2023-06-02 厦门服云信息科技有限公司 一种数据存储方法、系统、终端设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101146138A (zh) * 2007-10-16 2008-03-19 吕利勇 一种定制手机媒体内容的系统、方法及移动终端
CN101833559A (zh) * 2009-11-05 2010-09-15 北京炬力北方微电子有限公司 一种读取fat磁盘文件的方法和装置
WO2013067166A1 (en) * 2011-11-01 2013-05-10 Box, Inc. Platform and application independent system and method for networked file access and editing
CN104298697A (zh) * 2014-01-08 2015-01-21 凯迈(洛阳)测控有限公司 一种fat32格式的数据文件管理系统
CN104750744A (zh) * 2013-12-31 2015-07-01 中国移动通信集团河南有限公司 一种基于Oracle数据库的压缩数据同步方法及装置
CN105045528A (zh) * 2015-06-24 2015-11-11 武汉烽火众智数字技术有限责任公司 一种快速的fat32磁盘分区遍历及文件查找方法
CN106776752A (zh) * 2016-11-22 2017-05-31 上海拓攻机器人有限公司 一种应用于无人机飞行数据的嵌入式文件存储系统及方法
CN106844584A (zh) * 2017-01-10 2017-06-13 清华大学 元数据结构和基于其的操作方法、定位方法、切分方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8321439B2 (en) * 2004-12-17 2012-11-27 Microsoft Corporation Quick filename lookup using name hash
CN102682015B (zh) * 2011-03-15 2014-09-10 中国科学院声学研究所 一种面向高清媒体的嵌入式文件存储结构及存储方法
CN102426586B (zh) * 2011-10-25 2017-02-08 厦门雅迅网络股份有限公司 一种嵌入式系统中的fat文件存储方法
US9063664B1 (en) * 2012-12-18 2015-06-23 Emc Corporation Method and system for processing checksum of a data stream to optimize deduplication

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101146138A (zh) * 2007-10-16 2008-03-19 吕利勇 一种定制手机媒体内容的系统、方法及移动终端
CN101833559A (zh) * 2009-11-05 2010-09-15 北京炬力北方微电子有限公司 一种读取fat磁盘文件的方法和装置
WO2013067166A1 (en) * 2011-11-01 2013-05-10 Box, Inc. Platform and application independent system and method for networked file access and editing
CN104750744A (zh) * 2013-12-31 2015-07-01 中国移动通信集团河南有限公司 一种基于Oracle数据库的压缩数据同步方法及装置
CN104298697A (zh) * 2014-01-08 2015-01-21 凯迈(洛阳)测控有限公司 一种fat32格式的数据文件管理系统
CN105045528A (zh) * 2015-06-24 2015-11-11 武汉烽火众智数字技术有限责任公司 一种快速的fat32磁盘分区遍历及文件查找方法
CN106776752A (zh) * 2016-11-22 2017-05-31 上海拓攻机器人有限公司 一种应用于无人机飞行数据的嵌入式文件存储系统及方法
CN106844584A (zh) * 2017-01-10 2017-06-13 清华大学 元数据结构和基于其的操作方法、定位方法、切分方法

Also Published As

Publication number Publication date
CN108021717A (zh) 2018-05-11

Similar Documents

Publication Publication Date Title
CN108021717B (zh) 一种轻量级嵌入式文件系统的实现方法
US8843454B2 (en) Elimination of duplicate objects in storage clusters
CN110825748B (zh) 利用差异化索引机制的高性能和易扩展的键值存储方法
US9367448B1 (en) Method and system for determining data integrity for garbage collection of data storage systems
JP5996088B2 (ja) 暗号ハッシュ・データベース
US9043334B2 (en) Method and system for accessing files on a storage system
US20180322062A1 (en) Optimized record lookups
US10248556B2 (en) Forward-only paged data storage management where virtual cursor moves in only one direction from header of a session to data field of the session
US9547706B2 (en) Using colocation hints to facilitate accessing a distributed data storage system
US20160350302A1 (en) Dynamically splitting a range of a node in a distributed hash table
CN107003814A (zh) 存储系统中的有效元数据
CN104184812B (zh) 一种基于私有云的多点数据传输方法
JP2005267600A5 (zh)
CN104408111A (zh) 一种删除重复数据的方法及装置
CN104899297A (zh) 具有存储感知的混合索引结构
CN110888837B (zh) 对象存储小文件归并方法及装置
CN109522283A (zh) 一种重复数据删除方法及系统
US9189408B1 (en) System and method of offline annotation of future accesses for improving performance of backup storage system
US20150169623A1 (en) Distributed File System, File Access Method and Client Device
Amur et al. Design of a write-optimized data store
CN111782625A (zh) 芯智科技嵌入式远程文件系统软件
US8612717B2 (en) Storage system
CN105187565A (zh) 一种利用网络存储数据的方法
CN106547484A (zh) 一种基于raid5的实现内存数据可靠性方法及系统
CN107133334B (zh) 基于高带宽存储系统的数据同步方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant