跳转至

文件系统的库支持

Overview

有一个需要思考的问题:我们是否需要将这些具体文件系统本身用编程语言实现?

由于具体文件系统是写入这些存储设备本身的,因此,如果目的仅仅是为了读写其他存储器内的文件,只需在实现虚拟文件系统时将这些文件系统的接口接入虚拟文件系统。

如果我们要实现能够对存储设备进行分区,格式化等操作,也可直接使用镜像文件进行挂载。

FreeRTOS-Plus-FAT 事实上本质是给本来根本不支持文件读写的 FreeRTOS 内核从无到有的提供了 FAT 文件系统。

FAT

对于 FAT 文件系统,已经有开发者给其提供标准化的开发模块,参考网址:http://elm-chan.org/fsw/ff/00index_e.html。

romfs

未找到相关的标准库,但有一些已有实现案例:

  • https://github.com/kaos/ecos/blob/master/packages/fs/rom/current/src/romfs.c#L884
  • rt-thread/components/dfs/dfs_v2/filesystems/romfs

类似的可以考虑开发 ramfs 的支持。

jffs2

未找到相关的标准库,但有一些已有实现案例:

  • https://github.com/torvalds/linux/tree/master/fs/jffs2

可以看出使用 C 语言写一个文件系统会相当复杂