文件系统(STM32学习者也建议看)

文件系统

如果你是想在这里找关于文件系统的信息,那你没有走错,请跳过开头关于STM32的FatFs信息,继续往下浏览
如果你是想在这里找关于STM32中FatFs的信息,那你也没有走错,请往下浏览
直接寻找FAT相关信息

在这里插入一段话:
如果你是学习STM32中,想查看有关FAT操作系统的具体函数以及错误详情
那么请直接浏览下方两个URL,我想多半可以找到你的问题根源
第一个是关于FAT返回错误码的具体详情

http://elm-chan.org/fsw/ff/doc/rc.html
在这里插入图片描述

第二个是关于FatFs具体的函数编写网站,其中包含每个函数以及对应用法

http://elm-chan.org/fsw/ff/00index_e.html
在这里插入图片描述

当然,具体如果编写的函数有错误,可以询问我,不过最好还是自行排错,因为根源找到了,实际上函数的问题也相对容易解决了

好了,我们言归正传,我们来看看到底什么是文件系统

以下几段这是维基百科对于文件系统的解释,如果基本了解的大可不看,小白建议还是稍微理解看看一看。

**> 计算机的文件系统是一种存储和组织计算机数据的方法,它使得对其访问和查找变得容易,文件系统使用文件和树形目录的抽象逻辑概念代替了硬盘和光盘等物理设备使用数据块的概念,用户使用文件系统来保存数据不必关心数据实际保存在硬盘(或者光盘)的地址为多少的数据块上,只需要记住这个文件的所属目录和文件名。在写入新数据之前,用户不必关心硬盘上的那个块地址没有被使用,硬盘上的存储空间管理(分配和释放)功能由文件系统自动完成,用户只需要记住数据被写入到了哪个文件中。
**> 文件系统通常使用硬盘和光盘这样的存储设备,并维护文件在设备中的物理位置。但是,实际上文件系统也可能仅仅是一种访问数据的界面而已,实际的数据是通过网络协议(如NFS、SMB、9P等)提供的或者内存上,甚至可能根本没有对应的文件(如proc文件系统)。
**> 严格地说,文件系统是一套实现了数据的存储、分级组织、访问和获取等操作的抽象数据类型(Abstract data type)。

大家可以根据自己的操作系统自行选择阅读

1.DOS / Microsoft Windows支持的文件系统

在这里插入图片描述
如果你是Win的操作系统,其实可以按如下操作看一看里你最近的Win系统到底支持什么文件系统
1.Win+X,弹出菜单,Win + x在计算机操作系统中是快捷键的一种,所说的是打开Windows移动中心
2.打开磁盘管理,选择一个分区
3.如下操作,你就可以看到了
在这里插入图片描述在这里插入图片描述
当然,如果你想看看你的U盘支持什么操作系统
那就按如下操作
1.插上你的U盘
2.
在这里插入图片描述
3.
在这里插入图片描述
大家就可以看到了,我的U盘支持NTFS,FAT32,exFAT
那么什么是NTFS,FAT32,exFAT呢????
请往下看

NTFS

NTFS(英语:New Technology File System),是Microsoft公司开发的专用文件系统,从Windows NT 3.1开始成为Windows NT家族的标准文件系统。[4]

NTFS取代FAT(文件分配表)和HPFS(高性能文件系统)并进行一系列改进,例如增强对元数据的支持,使用更高级的数据结构以提升性能、可靠性和磁盘空间利用率,并附带一系列增强功能,如访问控制列表(ACL)和文件系统日志。

Mac OS X内核能对NTFS进行有限的读操作。Linux和BSD提供自由及开放源代码的软件,可用于读写NTFS文件。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

FAT比较(FAT12/FAT16/FAT32)

文件分配表(英语:File Allocation Table,首字母缩略字:FAT),是一种由微软发明并拥有部分专利[2] 的文件系统,供MS-DOS使用,也是所有非NT核心的Windows系统使用的文件系统。

FAT文件系统考虑当时电脑性能有限,所以未被复杂化,因此几乎所有个人电脑的操作系统都支持。这特性使它成为理想的软盘和存储卡文件系统,也适合用作不同操作系统中的数据交流。现在,一般所讲的FAT专指FAT32。

但FAT有一个严重的缺点:当文件删除后写入新数据,FAT不会将文件整理成完整片段再写入,长期使用后会使文件数据变得逐渐分散,而减慢了读写速度。碎片整理是一种解决方法,但必须经常重组来保持FAT文件系统的效率。
在这里插入图片描述
在这里插入图片描述

Linux支持的文件系统

随着Linux的不断发展,它所支持的文件系统也在迅速扩充,Linux系统核心可以支持十多种文件系统类型:Btrfs、JFS、ReiserFS、exFAT、ext、ext2、ext3、ext4、XFS、ISO 9660、Minix、MSDOS、UMSDOS、VFAT、NTFS(Linux Kernel内置的NTFS驱动程序,写入功能不稳定)、HPFS、NFS、SMB、SysV、PROC等。
注意:部分Linux发行版的Kernel默认不编译Kernel内置的NTFS文件系统支持,常见的在Linux下读写NTFS的解决方法是安装NTFS-3G或ufsd等NTFS驱动程序。部分Linux发行版对NTFS的支持度并不高。

UNIX及BSD操作系统下的文件系统

柏克莱加州大学开发早期的伯克利快速文件系统(Berkeley Fast File System),再由各UNIX厂商开发不同的文件系统,包括IRIX上的XFS、IBM AIX的JFS、HP HP-UNIX的VxFS、迪吉多Tru64的AdvFS[2]及Solaris的ZFS。

macOS(Mac OS X)的文件系统

从1998年到2016年间使用HFS+,再早采用HFS。从2016年发布的macOS Sierra起,使用苹果文件系统(APFS)。

由于篇幅有限,不能将每一种操作系统所对应的所有文件系统一一介绍,请大家见谅
在这里主要区分了FAT,NTFS,FAT32这几种常见的文件系统
实际上学习文件系统完全不需要死记硬背,维基百科的表格完全可以直观地表现出每一种操作系统具体的特性,非常直观,看几遍就理解了

当然,如果你要专门研究文件系统,那我想这张图片里面的文件系统足够你研究很长时间了(手动狗头)
在这里插入图片描述

发布了4 篇原创文章 · 获赞 3 · 访问量 1225

猜你喜欢

转载自blog.csdn.net/weixin_45572288/article/details/104991153
今日推荐