文件系统简介
1、什么是文件系统,它有什么用?
文件系统是在存储设备、内存或者网络上组织和管理文件的方法,负责文件的存储、保护和检索等操作,最主要的目的就是实现用户对数据的存储和访问。
2、文件系统的基本单位是文件
文件系统存储的基本单位是文件,使用文件夹来对文件进行管理。
在Windows下,\表示根目录,目录以右斜杠“\”来分割
Linux下一切皆文件。
3.常见的文件系统类型
在Windows下常遇见的文件系统有FAT16、FAT32、 exFAT、 NTFS等;
在Linux下常遇见的文件系统有FATFS、ext3、 ext4、 swap、NFS等;
APFS是Mac电脑默认使用的文件系统。
本地文件系统
对于本地存储空间(比如硬盘、U盘、SD卡、 EEPROM、FLASH、 eMMC)进行管理的文件系统。如ext3、ext2、 ext4、 NTFS、FAT16、 FAT32等。
网络文件系统
NFS (Network File System)即网络文件系统,通过TCP/IP网络的方式来访问远程设备上的文件系统,常见的,比如NFS和SMB (samba) ,通过网络文件系统可实现资源的共享。
虚拟文件系统
虚拟文件系统(Virtual File System, VFS)可以支持多种文件系统,它以统一的数据结构管理各种文件系统,屏蔽了底层各种文件系统的差异,并提供统一的接口, 用户不需要关心不同文件系统的差异即可完成对文件系统的操作。
4、OneOS文件系统框架
5.OneOS文件系统
(1)、FATFS—— 是一个兼容微软 FAT 格式的通用 FAT 文件系统模块,非常适合小型嵌入式设备开发。
(2)、CUTEFS—— 一种小巧的文件系统,支持各种文件及目录操作,目前需要配合 RAMDISK 使用。
(3)、DEVFS—— 设备文件系统,可以将系统中的设备在 /dev 文件夹下虚拟成文件。
(4)、NFS—— 网络文件 系统,可以访问远程服务器上的文件 系统。
(5)、JFFS2—— 是一种日志型文件系统,主要用于 NOR FLASH, 支持数据压缩、 磨损均衡、垃圾回收等机制。
(6)、YAFFS2—— 是一种针对 NAND FL ASH 特性而设计的嵌入式文件系统,也是一种日志型文件系统,支持磨损均衡、垃圾回收等机制。
(7)、LittleFS——ittleFS 是为 MCU 等级嵌入式应用场景而设计的小型 FL ASH 文件系统,特别针对资源受限场景设计,有着效率高、占用资源小、掉电可恢复,均匀 FLASH 块写入磨损等的特点。