0
问答首页 最新问题 热门问题 等待回答标签广场
我要提问

嵌入式

嵌入式操作系统 文件系统

如题,操作系统中的文件系统是什么,资料讲的是它是操作系统用于明确磁盘上文件的方法数据结构,它是操作系统里面所包含内容吗,是一组程序还是。。。,太抽象了,有没有通俗一点的解释的

提问者:dposadksapdsakd 地点:- 浏览次数:10759 提问时间:10-26 16:16
我有更好的答案
提 交
3条回答
想搞硬件的实施人员 01-21 03:25
先看看znFAT,你会有直观的理解
727634sf 01-20 22:24
当你的系统中,存储介质不使用文件系统进行数据的存取时,你通常是这样操作:按照数据在存储介质中的起始地址,数据字节数,进行读写操作。这样的操作会比较原始,针对的是数据块,而没有文件的概念。但这是最基本的,底层的必须功能。在底层,存储介质中的每一个存储单元都可以存储文件数据。

当你使用文件系统后,文件系统的所有操作最终都是调用前面提到的底层功能,但文件系统提供给你的是更容易理解的接口,它对整个存储介质的空间进行管理,记录,为了达到这些功能,势必要占用一部分存储空间用作文件系统的一些记录。举个例子,你在文件系统根目录下创建100个目录,目录并非数据,没有任何数据一堆目录也没有意义,但它是文件系统用于管理文件类目的分支标识。它一样会占用存储介质的存储空间。

文件系统就是让你可以通过它提供的接口进行文件操作,现在你可以通过类似 open("\abc\a.txt") 的函数来打开文件系统根目录下的abc目录下a.txt文件,进行读取或改写数据。文件系统知道如何找到a.txt这个数据块在存储介质的位置,而不需要你操心。它的方便之处是显而易见的。

文件系统 听起来 很复杂,所谓系统,只不过是一套特定功能的代码,而且代码量可以很小(fatfs总共才几个文件),它有高内聚低耦合的特性,它的本质作用是承上启下,作为一个中间层,它是对底层存储操作的封装,使上层能使用统一的文件操作接口进行数据存储和管理。

文件系统 对存储介质的管理,是一套规范的数据结构,如何为分区,如何为目录,如何为文件?每个分区,每个目录,每个文件,他们的节点地址在哪?数据长度又是多少?文件的创建时间,权限等等都属于文件系统记录管理的范畴,不同的文件系统使用不同的数据结构来包含这些信息。不同的文件系统程序,是无法解释其他文件系统所写入的数据的。一块崭新的存储卡,上面是没有任何文件系统结构,需要进行格式化,第一次格式化就把存储空间按照规范的数据结构给布置好了。

被文件系统操作的存储介质,如果你再使用底层的接口进行任何地址写入或擦除数据,或者出现某个数据块坏掉,都极有可能使整个存储介质上的数据无法被文件系统正确解释,但这并不代表所有数据丢失,你可能只是无意间破坏了文件系统所布置的数据结构,文件系统就不能正常识别里面的节点,文件内容,或整个存储空间,会要求你重新格式化。

每当出现这样的惨剧时,可以通过一些工具,使用底层读取接口将数据读取,然后根据数据中的一些常见文件数据的特定结构(比如可执行文件的头尾结构,bmp图片的头尾结构),来拆分数据块,还原出丢失的文件。

每当写到这么多的时候,总是忘情的来一句:阿弥陀佛~老衲不行了
脑洞大赛13 01-19 02:14
是操作系统用于明确磁盘或分区上的文件的方法和数据结构,说得通俗些就是操作系统中管理文件的管家,进来了什么东西,按照规定应该往哪里放置,就是由文件系统说了算。
撰写答案
提 交
1 / 3
1 / 3
相关嵌入式
一种嵌入式汽车数字仪表电路设计
作为一个新人,怎样学习嵌入式Linux
嵌入式多屏异显在卡拉OK点唱机中的运用
优秀的嵌入式程序特点
基于μC/OS-II嵌入式的固话来电防火墙电路模块设计