快速了解FAT32文件系统
文章目录
- 1 快速了解Fat32文件系统
- 1.1 只读文件系统
- 1.2 可写文件系统
- 1.3 Fat32分区结构
1 快速了解Fat32文件系统
1.1 只读文件系统
首先看一下我们的第一个需求,如果我们现在需要实现只读文件系统。假设现在有3个文件需要存储,使用时只需要读取。我们可以采取顺序存储的方式,如下;
但是按照上述方式存储遍历文件时会非常麻烦,我们进行下改进,将所有的文件信息集中存储:
不过,试着想一下,文件一般是由层次结构了,为了方便组织文件,我们可以采用树形结构对文件进行分层,树形结构如下:
我们可以继续改进文件的存储方式:
对于FAT32文件系统来说,目录也被视作文件。
我们可以采用另一视角看待一下:
1.2 可写文件系统
我们现在对需求升下级,我们需要可写的文件系统。
文件的写包含:调整文件大小、写入数据等。
上图中所示的方法明显是行不通的。我们可以采用文件不连续存储:找出其余的空闲空间,将其与原有文件数据链接起来。
我们怎样表示及存储链接关系呢?
为了快速查找及节省空间,链接关系应集中存储。
考虑到块设备的特性,文件数据应按照扇区/块分配空间。
考虑到磁盘空间有限及查找效率,我们可以将多个扇区组织为簇进行读写。
考虑到块设备的特殊性,链接关系几种存储于一个表中。
1.3 Fat32分区结构
根据前面所述原理,FAT32文件系统将分区划分为以下几个区域。
保留区:主要保存文件系统配置数据、启动代码等。
FAT表区:保存文件不连续存储的各部分链接关系。
数据区:存储文件和目录数据,一切都是文件。特别的,目录存储文件信息。
总结一下:
参考资料:
- 自己动手从0到1学写FAT32文件系统
快速了解FAT32文件系统相关推荐
- SD卡FAT32文件系统格式
一.声明 1.本文来源和主旨 2.本文测试环境 二.SD卡FAT文件系统 1.SD卡FAT32文件系统的整体布局 2.FAT文件系统简介 ① 文件分配表 ② 目录项 三.DBR(DOS BOOT RE ...
- JAVA——构建FAT32文件系统的DBR(DOS引导记录)类
Maven <dependency><groupId>org.projectlombok</groupId><artifactId>lombok< ...
- FAT32文件系统(一)
笔者最近在自学FAT32系统及其在嵌入式的应用,将学习笔记整理发布. 学习过程中主要参考的资料有: B站:[纯干货| 超实用!来看Fat32文件系统详细解读--带你一节课掌握FatFS小型文件系统!] ...
- 基于ATmega32的SD卡上FAT32文件系统数据读取
SD卡(secure digital memory card,安全数码卡)是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机.个人数码助理(PDA)和多媒体播放器等 ...
- FAT32文件系统结构分析
FAT,英文为File Allocation Table,文档分配表.先要记住几个概念: 扇区:一般扇区为512个字节. 簇:由若干个扇区组成,是存取数据的最小单位.如 ...
- 为什么 UEFI 方式启动的 U 盘必须使用 FAT32 文件系统?
如果你希望更刺激地安装 Windows,那么你需要了解很多 Windows 系统相关的问题. 为什么 UEFI 方式启动的 U 盘必须使用 FAT32 文件系统? 因为 NTFS 是 Windows ...
- SD卡移植FAT32文件系统无MBR
问题:在研究SD卡和FAT32文件系统的时候,发现SD卡有的有MBR,有的没有MBR,这个为什么呢? 分析:MBR是主引导记录,是在给磁盘分区的时候建立的,我们的SD卡没有这个可能就是没有进行过分区操 ...
- 【转载】FAT32文件系统详解
硬盘是用来存储数据的,为了使用和管理方便,这些数据以文件的形式存储在硬盘上.任何操作系统都有自己的文件管理系统,不同的文件系统又有各自不同的逻辑组织方式.例如:常见的文件系统有FAT,NTFS,EXT ...
- DSP之解读FAT32文件系统
FAT 的全称是File Allocation Table(文件分配表系统),FAT 文件系统1982年开始应用于MS- DOS 中. FAT 文件系统主要的优点是它可以被多种操作系统访问,如MS- ...
最新文章
- Linux Kernel TCP/IP Stack|Linux网络硬核系列
- 螺旋矩阵Python解法
- mysql 表锁——读锁和写锁
- 深度理解cnn 网络
- 剑指offer java -查找旋转数组的最小数字
- ORM框架之Mybatis(二)数据库连接池、事务及动态SQL
- SVN 使用hooks 自动更新到远程的web目录下
- Kmalloc和Vmalloc的区别
- pytorch ImageFolder
- mac本 安装淘宝镜像
- 数据分析师与数据科学家的区别
- android 按钮边距,安卓button代码初始化默认内边距问题
- 用VS2005打开方案出现“此安装不支持该项目类型
- java远程连接fpt_java远程连接本地fpt
- linux ---vim编辑用户管理权限
- R安装nCov2019包报错:Failed to install 'unknown package' from GitHub: schannel: failed to receive handsh
- 降噪耳机哪款比较好?佩戴舒适的降噪蓝牙耳机推荐
- html弹窗确认操作事件
- 抓准痛点就能撬动市场!读屏时代的黑科技非它莫属了
- java 文件压缩zip【两种方式】