打印
[应用相关]

FAT32 文件系统详解

[复制链接]
2768|26
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chenqiang10|  楼主 | 2018-3-31 23:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Microsoft
比尔·盖茨于 2008 年 6 月 27 日退休了,他在微软同事的心目中是一个什么形象呢?这个当属与他一
起共同执掌了微软 28 年之久的 CEO 鲍尔默最有话语权了。“他是一个比较内向的小伙子,不太爱说话,但
浑身充满了活力,尤其是一到晚上就活跃起来。当时的情况是,经常在我早上醒来时,他才准备睡觉。”
鲍尔默在最近接受《华尔街日报》采访时,如此形容比尔·盖茨。鲍尔默说的对,也许只有活力才是成功
的最关键因素,这是比尔·盖茨留给大家最好的礼物!
沙发
chenqiang10|  楼主 | 2018-3-31 23:41 | 只看该作者
硬盘结构
硬盘基本上由两大部分组成:控制电路板和盘体。
1. 控制电路板
控制电路板是由接口、DSP 处理器、ROM、缓存、磁头驱动电路和盘片电机驱动电路等等组成。
2. 盘体
盘体由盘腔、上盖、盘片电机、盘片、磁头、音圈和其他辅助组件组成。

使用特权

评论回复
板凳
chenqiang10|  楼主 | 2018-3-31 23:42 | 只看该作者
硬盘接口
1.IDE 接口(Integrated Drive Electronics)
2.SCSI 接口(Small Computer System Interface)
SCSI 硬盘接口有三种,分别是 50 针(N-Narrow)、68 针(W-Wide)和 80 针(SCA-Single Connector
Attachment)。
3. SATA 接口(Serial-ATA)
IDE 系列属于 Parallel-ATA(并行),SATA 是一种新的标准,目前已成为硬盘的主流接口。
4. SAS 接口(Serial Attached SCSI)
即串行 SCSI 接口。
5. IEEE1394 接口
IEEE1394 并不是硬盘专用接口,但它却可以方便的链接包括硬盘在内的 63 个不同设备,并支持即插
即用和热插拔。在数据传输率方面,IEEE1394 可以提供 100MB/S、400MB/S、1.2GB/S 三档高速传输率,是
现在所有硬盘望尘莫及的。

使用特权

评论回复
地板
chenqiang10|  楼主 | 2018-3-31 23:43 | 只看该作者
1. 磁道
当磁盘在旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆
形轨迹就叫做磁道。每张盘片上的磁道由外向内依次从“0”开始进行编号。虽然磁道的编号是“由外向内
依次从“0”开始进行编号”,但这并不意味着“0”磁道是位于磁盘片的最外沿的。固件区的物理位置有的
位于比“0”磁道更靠近磁盘片的外缘的磁道上。有的位于磁盘片的中部。

使用特权

评论回复
5
chenqiang10|  楼主 | 2018-3-31 23:43 | 只看该作者
2. 扇区
磁盘上的每个磁道被等分为若干个弧段,这些弧段便是磁盘的扇区。每个扇区大小为 512 字节。扇区
从“1”开始编号。

使用特权

评论回复
6
chenqiang10|  楼主 | 2018-3-31 23:44 | 只看该作者
3. 柱面
磁盘通常由重叠的一组盘片构成。前面提到,每个盘面都被划分为树木相等的磁道,并从外圈的“0”
开始编号,具有相同编号的磁道形成一个圆柱,这个圆柱我们称之为磁盘的柱面。磁盘上数据的存取是沿
柱面进行的,也就是在一个柱面内依次从低号盘片向高号盘片写入,写满一个柱面后再转到下一个柱面。
磁盘的柱面数与一个盘面上的磁道数相等。由于每一个盘面都有自己的磁头,因此,盘面数等于总的
磁头数。所谓硬盘的 CHS,既是 Cylinder(柱面)、Head(磁头)、Sector(扇区)。

使用特权

评论回复
7
chenqiang10|  楼主 | 2018-3-31 23:45 | 只看该作者
硬盘的启动 过程
(1)硬盘上电后,DSP 首先运行 ROM 中的程序,部分硬盘会检查各部件的完整性。
(2)然后盘片电机启动,当转速达到预定的转速时,磁头开始运行,定位到盘片的固件区,读取硬
盘的固件程序和坏道表,部分硬盘会先将 ROM 中**的系列号与盘片上的进行比较,如果不一致,硬盘会
终止初始化工作。
(3)当所有必须的固件正确读出后,磁盘即进入就绪状态,等待接收指令进行数据的读写操作。

使用特权

评论回复
8
chenqiang10|  楼主 | 2018-3-31 23:45 | 只看该作者
硬盘的性能指标
1.硬盘的转速
2.硬盘的数据传输率
3.硬盘缓存
缓存是硬盘与外部总线交换数据的场所。
4.平均寻道时间
平均寻道时间指的是从硬盘接到相应指令开始到磁头转移到指定磁道位置为止所用的平均时间。
5.柱面切换时间
6.平均潜伏期
平均潜伏期指的是磁头移动到指定磁道后,还需要多少时间指定的(即要读写的)扇区才会转到磁头
下进行读取或写入的相关操作。换算公式:
(60*1000) / (硬盘转速*2) = 平均潜伏期
7.平均方位时间

使用特权

评论回复
9
chenqiang10|  楼主 | 2018-3-31 23:46 | 只看该作者
寻址方式
所谓寻址方式,大哥比方就好比我们看一本书,要从中找到我们要读的章节,那么要怎样才能纸袋它
所在的位置呢?通常我们可以目录中找到它所在的页数,然后找到它。还有一种方法就是将所有章节都进
行编号,我们只要知道它章节号,也可以找到它所在位置。
同样,要访问硬盘上的数据,也需要合适的寻址方式方可准确读取数据。硬盘上的寻址方式有两种:
& C/H/S 寻址方式
使用 Cylinder(柱面)、Head(磁头)、Sector(扇区)三个参数来定位唯一的扇区地址。
&LBA 寻址方式
LBA 寻址方式即 Logic Block Address(逻辑块地址),又称为“线性寻址模式”。
(插入图片)

使用特权

评论回复
10
chenqiang10|  楼主 | 2018-3-31 23:46 | 只看该作者
数的存储格式
数的存储格式也就是数字的存储顺序。
& Big-endian:也被称作“大头位序”或“大端模式”。字节由最高位向最低位依次存放,高位在前,
地位在后。
& Little-endian:也被称作“小头位序”或“小端模式”。字节由最低位向最高位依次存放,低位在
前,高位在后。

使用特权

评论回复
11
chenqiang10|  楼主 | 2018-3-31 23:46 | 只看该作者
1. MBR 数据结构
MBR 由 446 个字节的引导代码、64 字节的主分区(4 个)表及两个字节的签名值“55 AA”组成。
我们可以用 WinHex 打开一个 SD 卡(Canon 的牌子,32MB,文件系统:FAT16)的 MBR 查看:
(说明,不知为什么,用 WinHex 无法看到 SD 卡文件系统以前的扇区数据,也许是笔者没有发现吧!没有
WinHex,怎么办?好办!我们可以通过读取 SD 卡 0 号扇区的数据,然后用串口发回到计算机的超级终端观
察。所以下面的数据是笔者在调试过程中用 uart 获取的)

使用特权

评论回复
12
chenqiang10|  楼主 | 2018-3-31 23:47 | 只看该作者
扩展引导记录扇区  EBR
MBR 扇区只包含 4 个分区表项,最多只能描述 4 个分区。大多数用户都会将自己的硬盘分为 4 个分区
甚至更多,那怎么办呢?那就交给扩展引导记录扇区 EBR 去处理。
由于这里的知识不在我们的讨论范围,有兴趣的读者可以查看《数据重现》一书,上面有详细的介绍。
好了,DOC 分区的知识就介绍这么多,感兴趣的读者还可以通过互联网获取更多的知识。知识的获取
是一个积累的过程,在积累中提高自己,在积累中丰富自己的生活。

使用特权

评论回复
13
chenqiang10|  楼主 | 2018-3-31 23:47 | 只看该作者
FAT  文件系统简介
初次接触文件系统,很多读者或许都和笔者有同感:到底文件系统是什么东西???
文件系统就是对数据进行存储与管理的方式。
怎么样?听上去还好理解吧。就好比在我们自己的电脑上,现在我们的硬盘都是几百个 G 容量,你天
天往里面存放各种各样不同的数据,有文档文件,有音乐文件,有视频文件等等等等。想象一下,如果你
的电脑没有一个管理数据的好家伙,我的天,那将无法想象!!!你的数据将被乱七八糟的存放着,更要命
的是,你根本无法再从硬盘中读取你之前存放的数据,因为你根本不知道它们在哪。有了文件系统,那就
简单了,你可以随意将任何文件存放在任何地方,有的文件不想让人一下就看见,行,你把它放到安装
windows 系统的系统盘目录下,再觉得不爽,好,那就隐藏了它。文件系统会在你把文件存放到某个目录
下时记录下你文件的信息(文件存放的起始簇号,文件大小,文件创建、修改、访问、保存的时间等等),
当你下次要打开那个文件时,文件系统就根据已知的文件信息去寻找它,找到后,你就又可以读,写,修
改,移动你的文件了,并且文件系统会同时更新。

使用特权

评论回复
14
chenqiang10|  楼主 | 2018-3-31 23:47 | 只看该作者
上面的描述是希望让读者对文件系统有一个感官的认识,接下来,我们详细的讲解文件系统。
文件系统是为了长久的存储和访问数据而为用户提供的一种基于文件和目录的存储机制。我们都知道,
在使用硬盘存储数据之前,首先要进行分区(当然你也可以不分区),然后对分区(或整个硬盘)进行格式
化,其实格式化的过程就是在分区内建立文件系统的过程。一个文件系统由系统结构和按一定规则存放的
用户数据组成。日常,我们都有这样的经历,在 windows 下当我们要格式化一个分区或是其他存储介质时,
windows 会弹出一个对话框,上面有这样一些选择内容:容量、文件系统、分配单元大小、卷标等等。其
中文件系统的下拉菜单中就有几种不同的文件系统共供户选择,一般我们都会选择默认、FAT32 或 NTFS 文
件系统,当我们按下格式化按钮后,操作系统就开始为这个分区建立你所选择的文件系统。

使用特权

评论回复
15
chenqiang10|  楼主 | 2018-3-31 23:49 | 只看该作者
1. 数据单元
数据在写入磁盘或从磁盘读取数据时每次操作的数据量称为数据单元,它的大小在建立文件系统时确
定。数据单元在不同的文件系统中有不同的称呼:例如在 FAT 和 NTFS 文件系统中称作“簇(Cluster)”,
ExtX 中称作“块(Block)”等。一个数据单元由若干个连续的扇区组成,大小总是 2 的整数次幂个扇区。

使用特权

评论回复
16
chenqiang10|  楼主 | 2018-3-31 23:49 | 只看该作者
2. 坏数据单元
坏数据单元也就是包含缺陷扇区的数据单元。

使用特权

评论回复
17
chenqiang10|  楼主 | 2018-3-31 23:49 | 只看该作者
3. 逻辑文件系统地址
磁盘上的一个扇区在不同的情况下会有不同的地址表达形式。
&每个扇区都会有一个 LBA 地址,也就是物理地址
&每个物理卷内的扇区又有一个物理卷地址
&在逻辑卷内部的扇区会有一个逻辑卷地址
(以上几个概念比较容易混淆,注意区分)

使用特权

评论回复
18
chenqiang10|  楼主 | 2018-3-31 23:51 | 只看该作者
4. 逻辑文件地址
对于每个文件来说,将它按所在文件系统中的数据单元大小为单位进行分割,分割后的每一个部分由
0 开始编号,这个编号就是其对应数据单元的逻辑文件地址。一个文件前后相邻的两个数据单元在物理上
的存储地址可能是不连续的,但它的逻辑文件地址一定是连续的。

使用特权

评论回复
19
chenqiang10|  楼主 | 2018-3-31 23:51 | 只看该作者
6. 松弛空间
松弛空间分为两种,一种是数据的结尾与为其分配的空间结束处的未使用部分,还有一种就是位于分
区结尾的卷松弛空间。

使用特权

评论回复
20
chenqiang10|  楼主 | 2018-3-31 23:51 | 只看该作者
7. 元数据
任何文件和目录都会有一个名字,我们将其统称为“文件名”。除了文件名外,文件或目录还有其他
一些描述信息,如大小,时间信息,是否加密或压缩,储存位置信息等,我们将这些描述信息统称为文件
或目录的元数据。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

39

主题

940

帖子

1

粉丝