1、主要内容主要内容u 硬盘结构硬盘结构u 文件系统文件系统u 计算机的引导过程计算机的引导过程u 中断中断u 内存管理内存管理u EXE文件的格式文件的格式2.1.1 2.1.1 硬盘的物理结构硬盘的物理结构u 绝大多数硬盘在结构上都是温彻斯特绝大多数硬盘在结构上都是温彻斯特(Winchester)盘,其核心就是:磁盘片被密封、固定并且不停高盘,其核心就是:磁盘片被密封、固定并且不停高速旋转,磁头悬浮于盘片上方沿磁盘径向移动,并速旋转,磁头悬浮于盘片上方沿磁盘径向移动,并且不和盘片接触且不和盘片接触2.1.1 2.1.1 硬盘的物理结构硬盘的物理结构u 低级格式化与硬盘的基本参数低级格式化与硬盘
2、的基本参数8 对于一块新硬盘,低级格式化的过程已经由生产对于一块新硬盘,低级格式化的过程已经由生产厂家在产品出厂前完成了厂家在产品出厂前完成了8 低级格式化的主要目的是将盘面划分成磁道、扇低级格式化的主要目的是将盘面划分成磁道、扇区和柱面区和柱面早期:早期:3D参数(参数(CHS)Cylinder-最大最大1023-10bit存储存储表示一个盘片上有几条磁道表示一个盘片上有几条磁道Head-最大最大255-8bit存储存储表示磁盘有几个盘面表示磁盘有几个盘面Sector-最大最大63-6bit存储存储表示一条磁道有几个扇区表示一条磁道有几个扇区特别注意特别注意C、H从从0开始;而开始;而S从从
3、1开始开始一个扇区通常是一个扇区通常是512个字节个字节早期每个磁道具有相同扇区数早期每个磁道具有相同扇区数2.1.1 2.1.1 硬盘的物理结构硬盘的物理结构u 基本基本INT 13H调用调用8 BIOS INT 13H调用是调用是BIOS提供的磁盘基本输入提供的磁盘基本输入输出中断调用,它可以完成磁盘输出中断调用,它可以完成磁盘(包括硬盘和软盘包括硬盘和软盘)的复位、读写、校验、定位、诊断、格式化等功的复位、读写、校验、定位、诊断、格式化等功能,完全不用考虑被操作硬盘安装的是什么操作能,完全不用考虑被操作硬盘安装的是什么操作系统系统8 使用使用CHS寻址方式寻址方式 柱面柱面-磁头磁头-扇
4、区扇区8 只能访问只能访问8GB左右的硬盘左右的硬盘8 老式硬盘缺点:老式硬盘缺点:8 每个磁道扇区数相等。每个磁道扇区数相等。2.1.1 2.1.1 硬盘的物理结构硬盘的物理结构u 现代硬盘结构简介现代硬盘结构简介8 老式硬盘,每个磁道扇区数相等老式硬盘,每个磁道扇区数相等8 改用等密度结构生产硬盘,外圈磁道的扇区比内改用等密度结构生产硬盘,外圈磁道的扇区比内圈磁道多圈磁道多8 硬盘不再具有实际的硬盘不再具有实际的3D参数参数8 寻址方式也改为线性寻址,即以扇区为单位进行寻址方式也改为线性寻址,即以扇区为单位进行寻址寻址8 现代大容量硬盘一般采用现代大容量硬盘一般采用LBA(Logic Bl
5、ock Address)线性地址来寻址,以替代线性地址来寻址,以替代CHS寻址。在寻址。在LBA方式下,系统把所有的物理扇区都按某种方方式下,系统把所有的物理扇区都按某种方式或规则看做是一线性编号的扇区,即从式或规则看做是一线性编号的扇区,即从0到某个到某个最大值方式排列,这样,只用一个序数就能确定最大值方式排列,这样,只用一个序数就能确定一个唯一的物理扇区。这就是线性地址扇区的由一个唯一的物理扇区。这就是线性地址扇区的由来,显然线性地址是物理扇区的逻辑地址来,显然线性地址是物理扇区的逻辑地址CHS到到LBAu假设用假设用C表示当前柱面号,表示当前柱面号,H表示当前磁头号,表示当前磁头号,c表
6、示起始表示起始柱面号,柱面号,h表示起始磁头号,表示起始磁头号,s表示起始扇区号,表示起始扇区号,PS表示每表示每磁道有多少个扇区,磁道有多少个扇区,PH表示每柱面有多少个磁道,则有以表示每柱面有多少个磁道,则有以下对应关系下对应关系:uLBA=(C-c)*PH*PS+(H-h)*PS+(S-s)一般情况下,一般情况下,c=0、h=0、s=1;PS=63、PH=255uC/H/S=0/0/1,代入上述公式中得到,代入上述公式中得到LBA=0uC/H/S=0/0/63,代入上述公式中得到,代入上述公式中得到LBA=62uC/H/S=220/156/18,代入上述公式中得到,代入上述公式中得到LB
7、A=3544145LBA到到CHSc=0、h=0、s=1;PS=63、PH=255/整除;整除;MOD 求余;求余;uC=LBA/(PH*PS)+cuH=(LBA/PS)MOD PH+HsuS=LBA MOD PS+suLBA=0,相应地相应地C/H/S=0/0/1uLBA=62,相应地相应地C/H/S=0/0/632.1.1 2.1.1 硬盘的物理结构硬盘的物理结构u 扩展扩展INT 13H8 虽然现代硬盘都已经采用了线性寻址,但是由于虽然现代硬盘都已经采用了线性寻址,但是由于基本基本INT 13H的制约,使用的制约,使用BIOS INT 13H接口的接口的程序,如程序,如DOS等还只能访问
8、等还只能访问8G以内的硬盘空间。以内的硬盘空间。为了打破这一限制,为了打破这一限制,Microsoft等几家公司制定了等几家公司制定了扩展扩展INT 13H标准标准(Extended INT 13H),采用线,采用线性寻址方式存取硬盘,所以突破了性寻址方式存取硬盘,所以突破了8G的限制,而的限制,而且还加入了对可拆卸介质且还加入了对可拆卸介质(如移动硬盘、优盘如移动硬盘、优盘)的的支持支持2.1.1 2.1.1 硬盘的物理结构硬盘的物理结构u分区与高级格式化分区与高级格式化8硬盘在使用时,是按照不同的区域存储数据的,硬盘分区硬盘在使用时,是按照不同的区域存储数据的,硬盘分区就是划分区域的过程。
9、划分好的每一个区域都称作一个分就是划分区域的过程。划分好的每一个区域都称作一个分区,最多可以划分为四个主分区。这项工作由分区程序来区,最多可以划分为四个主分区。这项工作由分区程序来完成,通常使用完成,通常使用FDISK或磁盘管理工具软件或磁盘管理工具软件在分区的过程中,分区程序向在分区的过程中,分区程序向0柱面柱面0磁头磁头1扇区写入主引导扇区写入主引导记录记录MBR(Master Boot Record)和分区记录表和分区记录表DPT(Disk Partition Table),并建立一个分区表链,所有的逻辑驱动,并建立一个分区表链,所有的逻辑驱动器写入链表记录。器写入链表记录。硬盘的分区格
10、式常用的分区格式有四种:硬盘的分区格式常用的分区格式有四种:FAT16、FAT32、NTFS和和Linux 8硬盘分区后还不能直接使用,要在每个分区内建立完整的硬盘分区后还不能直接使用,要在每个分区内建立完整的存储系统后才能正常使用。建立存储系统的工作一般由存储系统后才能正常使用。建立存储系统的工作一般由FORMAT程序来完成,这个过程称为高级格式化程序来完成,这个过程称为高级格式化高级格式化的目的是在分区内建立分区引导记录高级格式化的目的是在分区内建立分区引导记录DBR(DOS Boot Record)、文件分配表、文件分配表FAT(File Allocation Table)、文件目录表文
11、件目录表FDT(File Directory Table)和数据区和数据区DATA存放系统主存放系统主引导程序,引导程序,负责从活动负责从活动分区中装载分区中装载并运行系统并运行系统引导程序引导程序作业:作业:MBR反编译,分析主引导程序功能。反编译,分析主引导程序功能。2.1.2 硬盘的数据结构硬盘的数据结构u主引导扇区的组成主引导扇区的组成8主引导扇区主引导扇区(Boot Sector)也就是硬盘的第也就是硬盘的第一个物理扇区一个物理扇区(0柱面柱面0磁磁头头1扇区扇区)主引导记录主引导记录(Master Boot Record,MBR)主分区表即磁盘分区表主分区表即磁盘分区表(Disk
12、Partition Table,DPT)引导扇区标记引导扇区标记(Boot Record ID/Signature)8完成系统主板完成系统主板BIOS向操向操作系统交接的重要入口作系统交接的重要入口主引导扇区结构图主引导扇区结构图合法引导区标志u 隐藏扇区隐藏扇区主引导扇区主引导扇区0|0|1所在的磁道称为所在的磁道称为0磁道,磁道,是隐藏磁道是隐藏磁道这个磁道的这个磁道的63个扇区个扇区都是隐藏扇区都是隐藏扇区 Debug读写读写Winhex2.1.2 硬盘的数据结构硬盘的数据结构Format对它们也无能为力!对它们也无能为力!2.1.2 硬盘的数据结构硬盘的数据结构u 硬盘主分区表结构简介
13、硬盘主分区表结构简介偏移字节偏移字节字段长度字段长度值值字段名和定义字段名和定义0 x01BE0 x01BEBYTEBYTE0 x800 x80引导指示符号引导指示符号(Boot Indicator)(Boot Indicator)0 x01BF0 x01BFBYTEBYTE0 x010 x01起始磁头号起始磁头号(Start Head)(Start Head)0 x01C00 x01C0WORDWORD6 6位位0 x010 x01起始扇区号高起始扇区号高2 2位为起始柱面号位为起始柱面号9-109-10位位0 x01C10 x01C11010位位0 x000 x00起始柱面号起始柱面号(S
14、tart Cylinder)(Start Cylinder)0 x01C20 x01C2BYTEBYTE0 x070 x07系统系统ID(System ID)ID(System ID),定义了分区的类型,定义了分区的类型0 x01C30 x01C3BYTEBYTE0 xFE0 xFE结束磁头号结束磁头号(End Head)(End Head)0 x01C40 x01C4WORDWORD6 6位位0 xBF0 xBF结束扇区号结束扇区号(End Sector)(End Sector)0 x01C50 x01C51010位位0 xFC0 xFC结束柱面号结束柱面号(End Cylinder)(En
15、d Cylinder)0 x01C60 x01C6DWORDDWORD0 x0000003F0 x0000003F相对扇区数相对扇区数(Relative Sectors)(Relative Sectors)0 x01CA0 x01CADWORDDWORD0 x00BB867E0 x00BB867E总扇区数总扇区数(Total Sectors)(Total Sectors),该分区中扇区总数,该分区中扇区总数u 注意注意:在在dos/windows系统中,基本分区一柱面为系统中,基本分区一柱面为单位划分(以单位划分(以1柱面的容量为分区粒度)柱面的容量为分区粒度)u 如果磁盘总空间不是柱面的整数
16、倍,那么不够一个如果磁盘总空间不是柱面的整数倍,那么不够一个柱面的空间就是剩余空间,这部分空间不参与分区柱面的空间就是剩余空间,这部分空间不参与分区 浪费,并且成为病毒的藏身之地。浪费,并且成为病毒的藏身之地。u 问:对于问:对于CHS为为764/255/63的硬盘,分区的最小尺的硬盘,分区的最小尺寸是多少?寸是多少?2.1.2 硬盘的数据结构硬盘的数据结构u 通过主引导记录定义的硬盘分区表,最多只能描述通过主引导记录定义的硬盘分区表,最多只能描述4个分区个分区-不够用,无法满足需求不够用,无法满足需求u 一个主分区定义为扩展分区一个主分区定义为扩展分区-可进一步分区,满足需求可进一步分区,满
17、足需求2.1.3 扩展分区与扩展扩展分区与扩展MBR简介简介2.1.3 扩展分区与扩展扩展分区与扩展MBR简介简介u微软采用虚拟微软采用虚拟MBR的技术的技术-主主MBR在定义分区的时候,将多在定义分区的时候,将多余的容量定义为主扩展分区。余的容量定义为主扩展分区。u该分区中还可以进一步划分一个基本分区和一个扩展分区该分区中还可以进一步划分一个基本分区和一个扩展分区。u虚拟虚拟MBR(扩展扩展MBR,Extended MBR,EBR)没有引导和错误没有引导和错误提醒信息部分。提醒信息部分。u用以描述分区的扇区形成一个用以描述分区的扇区形成一个“分区链分区链”,通过这个分区链,通过这个分区链,就
18、可以描述所有的分区,就可以描述所有的分区-逻辑锁逻辑锁定义C:盘描述剩余空间未用未用表项1表项2表项3表项4C:盘分区表定义D:盘描述扩展MBR未用未用D:盘分区表定义E:盘描述扩展MBR未用未用E:盘分区表定义F:盘未用未用未用F:盘分区表29302560*512=15002910720=37E3E4000H97659135*512=BA451FE00H+37E3E4000H=F22903E00H2.1.3 扩展分区与扩展扩展分区与扩展MBR简介简介u 扩展分区和逻辑盘扩展分区和逻辑盘主扩展分区(/dev/hda2)扩展分区表分区表项1分区表项2逻辑盘(/dev/hda5)扩展分区2扩展分区
19、表分区表项1分区表项2逻辑盘(/dev/hda6)扩展分区3扩展分区表分区表项1分区表项2逻辑盘(/dev/hda7)主扩展分区2.1.3 扩展分区与扩展扩展分区与扩展MBR简介简介u 3主分区主分区(其中一个用作扩展其中一个用作扩展)的磁盘结构图的磁盘结构图一一个个3主主分分区区的的磁磁盘盘结结构构硬盘主引导记录分区表主分区1主分区2主扩展分区逻辑驱动器扩展引导记录逻辑驱动器扩展引导记录主引导记录第1分区表项第2分区表项第3分区表项第4分区表项0 x55AA引导扇区数据引导扇区数据扩展分区表0 x55AA引导扇区数据扩展分区表0 x55AA引导扇区数据扩展分区表链接示意图扩展分区表链接示意图
20、主扩展分区第一个逻辑驱动器扩展引导记录扩展分区表分区表项1分区表项2分区表项3分区表项4结束有效标志第二个逻辑驱动器扩展引导记录扩展分区表分区表项1分区表项2分区表项3分区表项4结束有效标志当前下一个未用未用0 x55AA引导扇区数据当前未用未用未用0 x55AA引导扇区数据2.2.1 文件系统简介文件系统简介数据区DATA文件目录表FDTFAT2FAT131个保留扇区操作系统DBR62个保留扇区(系统扇区)第二分区DPT+55AA数据区DATA文件目录表FDTFAT2FAT1操作系统DBR62个保留扇区(系统扇区)MBR+DPT+55AA剩余扇区剩余扇区0柱面0磁头1扇区0柱面1磁头1扇区占
21、一个扇区占一个扇区共63个保留扇区,属第1分区前的数据第1个分区通常是活动分区C,此处以FAT16为例共63个保留扇区,属第1、2分区之间数据第2个分区,此处以FAT32为例主引导记录主引导记录(Master Boot Record,MBR)磁盘分配表磁盘分配表DPT操作系统引导记录操作系统引导记录(DOS Boot Record,DBR)文件分配表文件分配表(File Allocation Table,FAT)文件目录表文件目录表(File Directory Table,FDT)数据区数据区在低级格式化,磁盘被分成每块512BFAT文件系统将多个扇区合并成一个簇(cluster)2.2.2
22、 FAT32 DBRu DBR区区(DOS Boot Record)引导扇区引导扇区BPB BIOS Parameter Block2.2.3 FAT16 DBRu FAT12和和FAT16中的中的DBR与与FAT32中的中的DBR的基的基本含义类似,只是相关偏移量和参数意义有小的差本含义类似,只是相关偏移量和参数意义有小的差异异偏移字节偏移字节字段长度字段长度(字节字节)字段名称字段名称0 x000 x003 3跳转指令跳转指令(Jump Instruction)(Jump Instruction)0 x030 x038 8OEM IDOEM ID0 x0B0 x0B2525BPBBPB0
23、x240 x242626扩展扩展BPBBPB0 x3E0 x3E448448引导程序代码引导程序代码(Bootstrap(Bootstrap Code)Code)0 x01FE0 x01FE4 4扇区结束标识符扇区结束标识符(0 x55AA)(0 x55AA)2.2.4 保留扇区保留扇区u在在FAT文件系统文件系统DBR的偏移的偏移0 x0E处,用处,用2个字节存储保留扇区的数目。所谓保留扇个字节存储保留扇区的数目。所谓保留扇区区(有时候也称作系统扇区、隐藏扇区有时候也称作系统扇区、隐藏扇区),是指从分区是指从分区DBR扇区开始的仅为系统所有扇区开始的仅为系统所有的扇区,包括的扇区,包括DBR
24、扇区。在扇区。在FAT16文件文件系统中,通常设置为系统中,通常设置为1,即仅仅,即仅仅DBR扇区扇区。而在。而在FAT32中,保留扇区的数据通常取中,保留扇区的数据通常取为为32uFAT32中的保留扇区除了磁盘总第中的保留扇区除了磁盘总第0扇区扇区用作用作DBR,总第,总第2扇区扇区(Windows 98系统系统)或总第或总第0 xC扇区扇区(Windows 2000/XP)用作用作OS引导代码扩展部分外,其余扇区都不引导代码扩展部分外,其余扇区都不参与操作系统管理与磁盘数据管理,通常参与操作系统管理与磁盘数据管理,通常情况下是没作用的情况下是没作用的u操作系统之所以在操作系统之所以在FAT
25、32中设置保留扇区中设置保留扇区,是为了对,是为了对DBR作备份或留待以后升级时作备份或留待以后升级时用。用。FAT32中,中,DBR偏移偏移0 x32占占2字节的字节的数据指明了数据指明了DBR备份扇区所在,一般为第备份扇区所在,一般为第6扇区。当扇区。当FAT32分区分区DBR扇区被破坏导扇区被破坏导致分区无法访问时,可以用第致分区无法访问时,可以用第6扇区的原扇区的原备份替换第备份替换第0扇区来找回数据扇区来找回数据数 据 区 DATA文 件 目 录 表 FDTFAT2FAT131个 保 留 扇 区操 作 系 统 DBR62个 保 留 扇 区(系 统 扇 区)第 二 分 区 DPT+55
26、AA数 据 区 DATA文 件 目 录 表 FDTFAT2FAT1操 作 系 统 DBR62个 保 留 扇 区(系 统 扇 区)MBR+DPT+55AA剩 余 扇 区剩 余 扇 区0柱 面 0磁 头 1扇 区0柱 面 1磁 头 1扇 区占 一 个 扇 区占 一 个 扇 区共 63个 保 留 扇 区,属 第 1分 区 前 的 数 据第 1个 分 区 通 常是 活 动 分 区 C,此 处 以 FAT16为 例共 63个 保 留 扇 区,属 第 1、2分 区 之 间 数 据第 2个 分 区,此 处 以 FAT32为 例2.2.5 FAT16 存储原理存储原理u 当把一部分磁盘空间格式化为当把一部分磁
27、盘空间格式化为FAT文件系统时,文件系统时,FAT文件系统就将这个分区当成整块可分配的区域文件系统就将这个分区当成整块可分配的区域进行规划,以便于数据的存储进行规划,以便于数据的存储u FAT16是是Microsoft较早推出的文件系统,具有高较早推出的文件系统,具有高度兼容性,目前仍然广泛应用于度兼容性,目前仍然广泛应用于PC机尤其是移动机尤其是移动存储设备中存储设备中FAT16的组织形式的组织形式引导扇区FAT1FAT2(重复的)根文件夹其他文件夹及所有文件剩余扇区1扇区据实际情况取大小同FAT132个扇区开始簇编号(从2开始)不足一簇2.2.5 FAT16 存储原理存储原理uFAT表记录
28、了磁盘数据文件的存储链表表记录了磁盘数据文件的存储链表(簇号链表簇号链表)8FAT表以表以“F8 FF FF FF”开头,此开头,此4字节为介质描述单元,字节为介质描述单元,并不参与并不参与FAT表簇链关系。小红字标出的是表簇链关系。小红字标出的是FAT扇区每扇区每2字字节对应的簇号节对应的簇号8相对偏移相对偏移0 x40 x5为第为第2簇簇(顺序上第顺序上第1簇簇),为,为“FF FF”,表示存储在第表示存储在第2簇上的文件簇上的文件/目录是个小文件,只占用目录是个小文件,只占用1个簇个簇便结束了便结束了FAT16 VS FAT322.2.6 FAT32 存储原理存储原理u FAT32是个非常有效的文件系统,是个非常有效的文件系统,FAT32依然占据依然占据着着Microsoft Windows文件系统中重要的地位文件系统中重要的地位u FAT32最早是出于最早是出于FAT16不支持大分区、单位簇容不支持大分区、单位簇容量大以至于空间急剧浪费等缺点设计的量大以至于空间急剧浪费等缺点设计的其余保留扇区FAT1FAT2(重复的)根文件夹首簇其他文件夹及所有文件剩余扇区31个扇区据实际情况取大小同FAT1第2簇不足一簇引导扇区1扇区数据区保留扇区FAT32分区的基本构成分区的基本构成FAT32 FDT