logo资料库

FAT32文件系统详解.pdf

第1页 / 共30页
第2页 / 共30页
第3页 / 共30页
第4页 / 共30页
第5页 / 共30页
第6页 / 共30页
第7页 / 共30页
第8页 / 共30页
资料共30页,剩余部分请下载后查看
第八章 FAT32 文件系统详解 Descript ion: OS: Microsoft windows 7、Microsoft Professional xp sp3 Software: winhex15.2 SR-10 Hardware: Mega16、Kingston 2G sd card Author: FGD Time: 20090808 8.1 Microsoft 比尔·盖茨于 2008 年 6 月 27 日退休了,他在微软同事的心目中是一个什么形象呢?这个当属与他一 起共同执掌了微软 28 年之久的 CEO 鲍尔默最有话语权了。“他是一个比较内向的小伙子,不太爱说话,但 浑身充满了活力,尤其是一到晚上就活跃起来。当时的情况是,经常在我早上醒来时,他才准备睡觉。” 鲍尔默在最近接受《华尔街日报》采访时,如此形容比尔·盖茨。鲍尔默说的对,也许只有活力才是成功 的最关键因素,这是比尔·盖茨留给大家最好的礼物! 1. Life is un fair, you want to adapt it. 2. The world will not take your self-esteem, but for the self-satisfaction before you have success. 3. Just returned from the school come out when you can not earn 60,000 U.S. dollars a month, but will not become any company vice president, also owned a car until you have won the hand of those that day. 4. If you think school teachers is too harsh, then you have to think back to the boss. 5. Selling hamburger and not detrimental to your dignity. Your gran dparents had a different under stan ding to sell hamburger, they called it "opportunity". 6. If you get into difficulties, it is not the fault of your parents, you should not be the responsibility onto others, and to learn to learn from it. 7. Before you were born, your parents do not like so boring. Th ey look into this today because these years have been for you to pay bills, to your laundry. So, in talking to parents, or whatever cleaning your own house? 8. You may no longer host school hours and poor health themselves, but life is not the case. In some schools had not "fail" concept, the school will continue to give you the opportunity for you to progress, but real life is not like that. 9. Unlike in the life out of school after a semester of the same school hours, nor that the summer. No boss to help you find some self-and you must rely on its own to complete. 10. Many of the scenes on television is not real life. In real life, people must do their burie d in h is work, not like TV where my daily dwell in the case of coffee Lane. 11. Treat your avers ion to the people, because there days you will work for such a person. 8.2 先说说硬盘
【笔者按:这部分知识基本是笔者对《数据重现》一书(作者:马林)读书笔记的整理,要了解详更详细 的细节,可参考该书或求助互联网。】 8.2.1 硬盘结构 硬盘基本上由两大部分组成:控制电路板和盘体。 1. 控制电路板 控制电路板是由接口、DSP 处理器、ROM、缓存、磁头驱动电路和盘片电机驱动电路等等组成。 2. 盘体 盘体由盘腔、上盖、盘片电机、盘片、磁头、音圈和其他辅助组件组成。 【以上专业名词希望读者可以通过互联网了解】 8.2.2 硬盘接口 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 三档高速传输率,是 现在所有硬盘望尘莫及的。 8.2.3 磁道、扇区、柱面 1. 磁道 当磁盘在旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆 形轨迹就叫做磁道。每张盘片上的磁道由外向内依次从“0”开始进行编号。虽然磁道的编号是“由外向内 依次从“0”开始进行编号”,但这并不意味着“0”磁道是位于磁盘片的最外沿的。固件区的物理位置有的 位于比“0”磁道更靠近磁盘片的外缘的磁道上。有的位于磁盘片的中部。 2. 扇区 磁盘上的每个磁道被等分为若干个弧段,这些弧段便是磁盘的扇区。每个扇区大小为 512 字节。扇区 从“1”开始编号。 3. 柱面 磁盘通常由重叠的一组盘片构成。前面提到,每个盘面都被划分为树木相等的磁道,并从外圈的“0” 开始编号,具有相同编号的磁道形成一个圆柱,这个圆柱我们称之为磁盘的柱面。磁盘上数据的存取是沿 柱面进行的,也就是在一个柱面内依次从低号盘片向高号盘片写入,写满一个柱面后再转到下一个柱面。
磁盘的柱面数与一个盘面上的磁道数相等。由于每一个盘面都有自己的磁头,因此,盘面数等于总的 磁头数。所谓硬盘的 CHS,既是 Cylinder(柱面)、Head(磁头)、Sector(扇区)。 8.2.4 硬盘的启动过程 (1)硬盘上电后,DSP 首先运行 ROM 中的程序,部分硬盘会检查各部件的完整性。 (2)然后盘片电机启动,当转速达到预定的转速时,磁头开始运行,定位到盘片的固件区,读取硬 盘的固件程序和坏道表,部分硬盘会先将 ROM 中记忆的系列号与盘片上的进行比较,如果不一致,硬盘会 终止初始化工作。 (3)当所有必须的固件正确读出后,磁盘即进入就绪状态,等待接收指令进行数据的读写操作。 8.2.5 硬盘的性能指标 1.硬盘的转速 2.硬盘的数据传输率 3.硬盘缓存 缓存是硬盘与外部总线交换数据的场所。 4.平均寻道时间 平均寻道时间指的是从硬盘接到相应指令开始到磁头转移到指定磁道位置为止所用的平均时间。 5.柱面切换时间 6.平均潜伏期 平均潜伏期指的是磁头移动到指定磁道后,还需要多少时间指定的(即要读写的)扇区才会转到磁头 下进行读取或写入的相关操作。换算公式: (60*1000) / (硬盘转速*2) = 平均潜伏期 7.平均方位时间 8.2.6 寻址方式 所谓寻址方式,大哥比方就好比我们看一本书,要从中找到我们要读的章节,那么要怎样才能纸袋它 所在的位置呢?通常我们可以目录中找到它所在的页数,然后找到它。还有一种方法就是将所有章节都进 行编号,我们只要知道它章节号,也可以找到它所在位置。 同样,要访问硬盘上的数据,也需要合适的寻址方式方可准确读取数据。硬盘上的寻址方式有两种: & C/H/S 寻址方式 使用 Cylinder(柱面)、Head(磁头)、Sector(扇区)三个参数来定位唯一的扇区地址。 &LBA 寻址方式 LBA 寻址方式即 Logic Block Address(逻辑块地址),又称为“线性寻址模式”。 (插入图片)
8.3 数的存储格式 数的存储格式也就是数字的存储顺序。 & Big-endian:也被称作“大头位序”或“大端模式”。字节由最高位向最低位依次存放,高位在前, 地位在后。 & Little-endian:也被称作“小头位序”或“小端模式”。字节由最低位向最高位依次存放,低位在 前,高位在后。 例如:有一个十六进制数“00 23 0f 4a”: Big-endian: 00 23 0f 4a Little-endian: 4a 0f 23 00 在进行数据操作的时候一定要注意大小端存放格式,否则后果就是,你应该知道的。 8.4 DOC 分区 8.4.1 概述 说明:虽然我们的存储介质没有分区(你的 u 盘,sd 卡等小容量存储介质肯定没有分区的吧)。但是 在文件系统初始化的开始我们必须通过 MBR 获取分区表项的数据,以获得 CHS、LBA 参数以及分区大小扇区 数,否则就无法知道你文件系统的起始物理扇区号!!! Microsoft 将使用 DOC 分区体系的磁盘称为“主引导记录(Master Boot recorder, MBR)”磁盘,这 是对于使用“全局 ID 分区表(GUID Partition Table, GPT)磁盘”而言的。 很多人一提到“DOC 分区”,就认为只是指 windows 下使用的分区体系,这是对“DOC 分区”的一个理 解错误。“DOC 分区”并不是以操作系统的不同而划定的分区体系,而是指使用“主引导记录(MBR)”的分 区体系。 8.4.2 主引导记录扇区 使用“DOC 分区”体系时,磁盘的第一个——也就是 0 号扇区被称为主引导记录扇区,也称为主引导 记录 MBR(Master Boot recorder,MBR)。 1. MBR 数据结构 MBR 由 446 个字节的引导代码、64 字节的主分区(4 个)表及两个字节的签名值“55 AA”组成。 我们可以用 WinHex 打开一个 SD 卡(Canon 的牌子,32MB,文件系统:FAT16)的 MBR 查看: (说明,不知为什么,用 WinHex 无法看到 SD 卡文件系统以前的扇区数据,也许是笔者没有发现吧!没有 WinHex,怎么办?好办!我们可以通过读取 SD 卡 0 号扇区的数据,然后用串口发回到计算机的超级终端观 察。所以下面的数据是笔者在调试过程中用 uart 获取的)
我们可以看到前 446 字节的数据全是 0,怎么回事?我也不知道,可能是因为 SD 卡不存在系统引导问 题,所以将所有数据用 0 来填充。 接下来的 64 字节的数据就是我们所关心的重要数据。首先先介绍一下分区表项的数据结构: 分区表项共占用 64 字节数据,共四个分区表项,图示中用黄色长条标记的是第一个分区表项。 分区表项数据结构 偏移(十六进制) 字节数 描述 00~00 1 可引导标志,0x00 不可引导,0x80 可引导 01~03 3 分区起始 CHS 地址 04~04 1 分区类型 05~07 3 分区结束 CHS 地址 08~0B 4 分区起始 LBA 地址(Little-endian 顺序) 0C~0F 4 分区大小扇区数(Little-endian 顺序) 说明: 分区起始 CHS 地址: 第一个字节用于记录分区起始磁头号。 第二个字节的低 6 位用于记录分区起始扇区号 用 10 个 bit 记录分区起始柱面号:第二个字节的高两位作为起始柱面号的高两位,第三个字节的 8 个 bit 作为分区起始柱面号的低 8 位。 现在我们来分析一下上面所示图中的数据: 00-00(00)不可引导 01~03(00 14 01) 该处我们不做分析,因为 SD 卡不存在柱面问题,有兴趣的朋友可有用 WinHex 打 开一个 FAT32 的硬盘,然后算算 CHS。
04~04(04) 分区标志。这个地方有一张表格(分区标志类型值及其含义),请读者自行上网查询。 05~07(DA 60 03)此处不介绍 08~0B(00 00 00 33)这正是我们要获取的数据,通过计算可知它是 51,它很重要,因为它就是我们 SD 卡上文件系统开始的物理扇区号,我们可以用 WinHex 打开 SD 卡查看,在左边的记录中发现,文件系统 的 DBR 起始物理扇区号果真就是 51!!!如下图所示: 0C~0F(00 00 ED 4D)60749 这就是分区大小的扇区数,可以这么说,SD 卡只有一个分区,我们在 WinHex 中看到的总扇区数即除去 MBR(还有隐藏扇区)剩余的扇区总数,在 WinHex 中同样可知,如上图下方黄色 区域标记的一样。 8.4.3 扩展引导记录扇区 EBR MBR 扇区只包含 4 个分区表项,最多只能描述 4 个分区。大多数用户都会将自己的硬盘分为 4 个分区 甚至更多,那怎么办呢?那就交给扩展引导记录扇区 EBR 去处理。 由于这里的知识不在我们的讨论范围,有兴趣的读者可以查看《数据重现》一书,上面有详细的介绍。 好了,DOC 分区的知识就介绍这么多,感兴趣的读者还可以通过互联网获取更多的知识。知识的获取 是一个积累的过程,在积累中提高自己,在积累中丰富自己的生活。 接下来就开始我们的文件系统之旅,读者有可能看过一遍后有不理解的地方,没关系,继续看第二遍、 第三遍、第四遍(要知道笔者当时连续用了两个通宵来了解它!!!)„„上网查找资料,有一天,你总会这 样感觉到,原来文件系统就那么回事儿,呵呵。好,Let us go!!! 8.5 认识文件系统 8.5.1 FAT 文件系统简介 初次接触文件系统,很多读者或许都和笔者有同感:到底文件系统是什么东西??? 文件系统就是对数据进行存储与管理的方式。
怎么样?听上去还好理解吧。就好比在我们自己的电脑上,现在我们的硬盘都是几百个 G 容量,你天 天往里面存放各种各样不同的数据,有文档文件,有音乐文件,有视频文件等等等等。想象一下,如果你 的电脑没有一个管理数据的好家伙,我的天,那将无法想象!!!你的数据将被乱七八糟的存放着,更要命 的是,你根本无法再从硬盘中读取你之前存放的数据,因为你根本不知道它们在哪。有了文件系统,那就 简单了,你可以随意将任何文件存放在任何地方,有的文件不想让人一下就看见,行,你把它放到安装 windows 系统的系统盘目录下,再觉得不爽,好,那就隐藏了它。文件系统会在你把文件存放到某个目录 下时记录下你文件的信息(文件存放的起始簇号,文件大小,文件创建、修改、访问、保存的时间等等), 当你下次要打开那个文件时,文件系统就根据已知的文件信息去寻找它,找到后,你就又可以读,写,修 改,移动你的文件了,并且文件系统会同时更新。 上面的描述是希望让读者对文件系统有一个感官的认识,接下来,我们详细的讲解文件系统。 文件系统是为了长久的存储和访问数据而为用户提供的一种基于文件和目录的存储机制。我们都知道, 在使用硬盘存储数据之前,首先要进行分区(当然你也可以不分区),然后对分区(或整个硬盘)进行格式 化,其实格式化的过程就是在分区内建立文件系统的过程。一个文件系统由系统结构和按一定规则存放的 用户数据组成。日常,我们都有这样的经历,在 windows 下当我们要格式化一个分区或是其他存储介质时, windows 会弹出一个对话框,上面有这样一些选择内容:容量、文件系统、分配单元大小、卷标等等。其 中文件系统的下拉菜单中就有几种不同的文件系统共供户选择,一般我们都会选择默认、FAT32 或 NTFS 文 件系统,当我们按下格式化按钮后,操作系统就开始为这个分区建立你所选择的文件系统。 文件系统种类繁多,但所有的文件系统都有一定的共性 1. 数据单元 数据在写入磁盘或从磁盘读取数据时每次操作的数据量称为数据单元,它的大小在建立文件系统时确 定。数据单元在不同的文件系统中有不同的称呼:例如在 FAT 和 NTFS 文件系统中称作“簇(Cluster)”, ExtX 中称作“块(Block)”等。一个数据单元由若干个连续的扇区组成,大小总是 2 的整数次幂个扇区。 2. 坏数据单元 坏数据单元也就是包含缺陷扇区的数据单元。 3. 逻辑文件系统地址 磁盘上的一个扇区在不同的情况下会有不同的地址表达形式。 &每个扇区都会有一个 LBA 地址,也就是物理地址 &每个物理卷内的扇区又有一个物理卷地址 &在逻辑卷内部的扇区会有一个逻辑卷地址 (以上几个概念比较容易混淆,注意区分) 4. 逻辑文件地址 对于每个文件来说,将它按所在文件系统中的数据单元大小为单位进行分割,分割后的每一个部分由 0 开始编号,这个编号就是其对应数据单元的逻辑文件地址。一个文件前后相邻的两个数据单元在物理上 的存储地址可能是不连续的,但它的逻辑文件地址一定是连续的。 5. 分配策略 【1】第一可用分配策略,即当为一个文件分配了一个存储单元后还要继续为其分配时,操作系统会重 新从文件系统的起始处搜索可以使用的空间。 举例说明,加入我们现在有一个文件需要 4 个储存单元,文件系统内的 1、2、3、5、10 号储存单元已 经有数据放在那了,4、6、7、8、9 号储存单元空闲,按照第一分配策略为这个文件的 4 个部分分配空间 时步骤如下: <1>第一部分分配到 4 号储存单元,如下图所示:
分享到:
收藏