CN108021717A - 一种轻量级嵌入式文件系统的实现方法 - Google Patents
一种轻量级嵌入式文件系统的实现方法 Download PDFInfo
- Publication number
- CN108021717A CN108021717A CN201711497600.3A CN201711497600A CN108021717A CN 108021717 A CN108021717 A CN 108021717A CN 201711497600 A CN201711497600 A CN 201711497600A CN 108021717 A CN108021717 A CN 108021717A
- Authority
- CN
- China
- Prior art keywords
- cluster
- file
- content
- implementation method
- directory entry
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
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 (8)
1.一种轻量级嵌入式文件系统的实现方法,其特征在于,将设备存储空间划分为不同类型簇,簇包括目录项簇和文件内容簇,目录项簇用于存储文件和/或目录的索引信息,文件内容簇用于存储文件数据,系统上电时,扫描并缓存每个簇的簇标识,通过读取簇标识判断簇类型,判断簇内容是否合法,完成上电流程。
2.根据权利要求1所述的一种轻量级嵌入式文件系统的实现方法,其特征在于,所述目录项簇存储的元数据内容包括父目录名、本目录名或文件名、本目录或文件所在层级。
3.根据权利要求1所述的一种轻量级嵌入式文件系统的实现方法,其特征在于,所述文件内容簇存储有文件索引值、文件内容簇序号和文件数据。
4.根据权利要求1所述的一种轻量级嵌入式文件系统的实现方法,其特征在于,当目录项簇对应的是一个文件时,目录项簇还存储有文件索引值和文件属性区,用于完成对文件的索引。
5.根据权利要求1所述的一种轻量级嵌入式文件系统的实现方法,其特征在于,所述目录项簇还存储有冗余数据和整个簇的校验值。
6.根据权利要求1所述的一种轻量级嵌入式文件系统的实现方法,其特征在于,通过读取簇标识判断簇为目录项簇时,根据目录项簇内部存储的校验值是否正确判断簇内容是否合法。
7.根据权利要求1所述的一种轻量级嵌入式文件系统的实现方法,其特征在于,通过读取簇标识判断簇为文件内容簇时,通过检查该文件是否有对应的合法目录项簇来判断簇内容是否合法。
8.根据权利要求1所述的一种轻量级嵌入式文件系统的实现方法,其特征在于,通过所述文件系统访问文件内容的方法为:
(1)输入文件路径名和文件内部偏移量,生成各层级目录名及文件所在目录层级和文件内容簇序号;
(2)搜索匹配各层级目录名,找到文件对应的目录项簇;
(3)从文件对应的目录项簇中读取文件索引值;
(4)利用文件索引值和文件内容簇序号作为输入,搜索对应的文件内容簇,完成对文件内容的访问。
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 true CN108021717A (zh) | 2018-05-11 |
CN108021717B 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) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284252A (zh) * | 2018-09-11 | 2019-01-29 | 武汉虹信通信技术有限责任公司 | 一种通信设备中轻量级文件系统管理方法 |
CN110851403A (zh) * | 2019-10-24 | 2020-02-28 | 北京空间飞行器总体设计部 | 一种基于rom和ram的星载文件管理方法 |
CN111143293A (zh) * | 2019-12-22 | 2020-05-12 | 浪潮电子信息产业股份有限公司 | 一种元数据获取方法、装置、设备及计算机可读存储介质 |
CN111782625A (zh) * | 2020-06-30 | 2020-10-16 | 安徽芯智科技有限公司 | 芯智科技嵌入式远程文件系统软件 |
CN113806803A (zh) * | 2021-09-17 | 2021-12-17 | 厦门服云信息科技有限公司 | 一种数据存储方法、系统、终端设备及存储介质 |
CN113806119A (zh) * | 2020-06-17 | 2021-12-17 | 浙江宇视科技有限公司 | 存储卡处理方法、装置、设备及存储介质 |
CN113835791A (zh) * | 2020-06-23 | 2021-12-24 | 北京字节跳动网络技术有限公司 | 呈现视图组件的层级关系的方法和装置 |
Citations (12)
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磁盘文件的方法和装置 |
CN102426586A (zh) * | 2011-10-25 | 2012-04-25 | 厦门雅迅网络股份有限公司 | 一种嵌入式系统中的fat文件存储方法 |
CN102682015A (zh) * | 2011-03-15 | 2012-09-19 | 中国科学院声学研究所 | 一种面向高清媒体的嵌入式文件存储结构及存储方法 |
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格式的数据文件管理系统 |
US9063664B1 (en) * | 2012-12-18 | 2015-06-23 | Emc Corporation | Method and system for processing checksum of a data stream to optimize deduplication |
CN104750744A (zh) * | 2013-12-31 | 2015-07-01 | 中国移动通信集团河南有限公司 | 一种基于Oracle数据库的压缩数据同步方法及装置 |
CN105045528A (zh) * | 2015-06-24 | 2015-11-11 | 武汉烽火众智数字技术有限责任公司 | 一种快速的fat32磁盘分区遍历及文件查找方法 |
US20150370821A1 (en) * | 2004-12-17 | 2015-12-24 | Microsoft Licensing Technology, LLC | Quick Filename Lookup Using Name Hash |
CN106776752A (zh) * | 2016-11-22 | 2017-05-31 | 上海拓攻机器人有限公司 | 一种应用于无人机飞行数据的嵌入式文件存储系统及方法 |
CN106844584A (zh) * | 2017-01-10 | 2017-06-13 | 清华大学 | 元数据结构和基于其的操作方法、定位方法、切分方法 |
-
2017
- 2017-12-29 CN CN201711497600.3A patent/CN108021717B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150370821A1 (en) * | 2004-12-17 | 2015-12-24 | Microsoft Licensing Technology, LLC | Quick Filename Lookup Using Name Hash |
CN101146138A (zh) * | 2007-10-16 | 2008-03-19 | 吕利勇 | 一种定制手机媒体内容的系统、方法及移动终端 |
CN101833559A (zh) * | 2009-11-05 | 2010-09-15 | 北京炬力北方微电子有限公司 | 一种读取fat磁盘文件的方法和装置 |
CN102682015A (zh) * | 2011-03-15 | 2012-09-19 | 中国科学院声学研究所 | 一种面向高清媒体的嵌入式文件存储结构及存储方法 |
CN102426586A (zh) * | 2011-10-25 | 2012-04-25 | 厦门雅迅网络股份有限公司 | 一种嵌入式系统中的fat文件存储方法 |
WO2013067166A1 (en) * | 2011-11-01 | 2013-05-10 | Box, Inc. | Platform and application independent system and method for networked file access and editing |
US9063664B1 (en) * | 2012-12-18 | 2015-06-23 | Emc Corporation | Method and system for processing checksum of a data stream to optimize deduplication |
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 | 清华大学 | 元数据结构和基于其的操作方法、定位方法、切分方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284252A (zh) * | 2018-09-11 | 2019-01-29 | 武汉虹信通信技术有限责任公司 | 一种通信设备中轻量级文件系统管理方法 |
CN109284252B (zh) * | 2018-09-11 | 2021-07-06 | 武汉虹信科技发展有限责任公司 | 一种通信设备中轻量级文件系统管理方法 |
CN110851403A (zh) * | 2019-10-24 | 2020-02-28 | 北京空间飞行器总体设计部 | 一种基于rom和ram的星载文件管理方法 |
CN111143293A (zh) * | 2019-12-22 | 2020-05-12 | 浪潮电子信息产业股份有限公司 | 一种元数据获取方法、装置、设备及计算机可读存储介质 |
CN111143293B (zh) * | 2019-12-22 | 2022-06-07 | 浪潮电子信息产业股份有限公司 | 一种元数据获取方法、装置、设备及计算机可读存储介质 |
CN113806119A (zh) * | 2020-06-17 | 2021-12-17 | 浙江宇视科技有限公司 | 存储卡处理方法、装置、设备及存储介质 |
CN113806119B (zh) * | 2020-06-17 | 2024-05-31 | 浙江宇视科技有限公司 | 存储卡处理方法、装置、设备及存储介质 |
CN113835791A (zh) * | 2020-06-23 | 2021-12-24 | 北京字节跳动网络技术有限公司 | 呈现视图组件的层级关系的方法和装置 |
CN113835791B (zh) * | 2020-06-23 | 2024-05-07 | 北京字节跳动网络技术有限公司 | 呈现视图组件的层级关系的方法和装置 |
CN111782625A (zh) * | 2020-06-30 | 2020-10-16 | 安徽芯智科技有限公司 | 芯智科技嵌入式远程文件系统软件 |
CN113806803A (zh) * | 2021-09-17 | 2021-12-17 | 厦门服云信息科技有限公司 | 一种数据存储方法、系统、终端设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108021717B (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108021717A (zh) | 一种轻量级嵌入式文件系统的实现方法 | |
Vo et al. | Logbase: A scalable log-structured database system in the cloud | |
CN103377137B (zh) | 使用增强的频繁块检测进行存储去重的方法和系统 | |
CN100456311C (zh) | 用于实施基于内容的文件系统安全性的系统和方法 | |
CN105787093B (zh) | 一种基于LSM-Tree结构的日志文件系统的构建方法 | |
JP2005267600A5 (zh) | ||
CN103617199B (zh) | 一种操作数据的方法和系统 | |
CN108427647A (zh) | 读取数据的方法以及混合存储器模块 | |
US20210109917A1 (en) | System and Method for Processing a Database Query | |
CN107066393A (zh) | 提高地址映射表中映射信息密度的方法 | |
CN102831222A (zh) | 一种基于重复数据删除的差量压缩方法 | |
CN108959563B (zh) | 一种容量可扩展区块链查询方法及系统 | |
CN105556520A (zh) | 在存储器中镜像盘中的数据以提高查询性能 | |
US11526465B2 (en) | Generating hash trees for database schemas | |
CN105556519A (zh) | 对oracle存储器中数据库的存储器中快照存储的多版本并行控制 | |
CN104160398B (zh) | 用于大对象数据内的结构化内容的方法及其系统 | |
JP2007012058A (ja) | フラッシュ様媒体におけるトランザクションレコードを格納するファイルシステム | |
US20010051954A1 (en) | Data updating apparatus that performs quick restoration processing | |
CN107944041A (zh) | 一种hdfs的存储结构优化方法 | |
Amur et al. | Design of a write-optimized data store | |
Le-Tuan et al. | RDF4Led: An RDF engine for lightweight edge devices | |
CN111782625A (zh) | 芯智科技嵌入式远程文件系统软件 | |
CN110019017A (zh) | 一种基于访问特征的高能物理文件存储方法 | |
Li et al. | Enabling efficient updates in KV storage via hashing: Design and performance evaluation | |
US7685377B1 (en) | Piecewise logical data management |
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 |