《第2章预备知识-1》由会员分享,可在线阅读,更多相关《第2章预备知识-1(28页珍藏版)》请在金锄头文库上搜索。
1、主要内容主要内容u硬盘结构硬盘结构u文件系统文件系统u计算机的引导过程计算机的引导过程u中断中断u内存管理内存管理uEXE文件的格式文件的格式第第2 2章章 预备知识预备知识2.1.1 2.1.1 硬盘的物理结构硬盘的物理结构u绝大多数硬盘在结构上都是温彻斯特绝大多数硬盘在结构上都是温彻斯特(Winchester)盘,其核心就是:磁盘片被密封、固定并且不停高盘,其核心就是:磁盘片被密封、固定并且不停高速旋转,磁头悬浮于盘片上方沿磁盘径向移动,并速旋转,磁头悬浮于盘片上方沿磁盘径向移动,并且不和盘片接触且不和盘片接触2.1 2.1 硬盘结构简介硬盘结构简介2.1.1 2.1.1 硬盘的物理结构硬
2、盘的物理结构u低级格式化与硬盘的基本参数低级格式化与硬盘的基本参数8对于一块新硬盘,低级格式化的过程已经由生产对于一块新硬盘,低级格式化的过程已经由生产厂家在产品出厂前完成了厂家在产品出厂前完成了8低级格式化的主要目的是将盘面划分成磁道、扇低级格式化的主要目的是将盘面划分成磁道、扇区和柱面区和柱面2.1 2.1 硬盘结构简介硬盘结构简介早期:早期:3D参数(参数(CHS)Cylinder-最大最大1023-10bit存储存储表示一个盘片上有几条磁道表示一个盘片上有几条磁道Head-最大最大255-8bit存储存储表示磁盘有几个盘面表示磁盘有几个盘面Sector-最大最大63-6bit存储存储表
3、示一条磁道有几个扇区表示一条磁道有几个扇区特别注意特别注意C、H从从0开始;而开始;而S从从1开始开始一个扇区通常是一个扇区通常是512个字节个字节早期每个磁道具有相同扇区数早期每个磁道具有相同扇区数2.1.1 2.1.1 硬盘的物理结构硬盘的物理结构u基本基本INT 13H调用调用8BIOS INT 13H调用是调用是BIOS提供的磁盘基本输入提供的磁盘基本输入输出中断调用,它可以完成磁盘输出中断调用,它可以完成磁盘(包括硬盘和软盘包括硬盘和软盘)的复位、读写、校验、定位、诊断、格式化等功的复位、读写、校验、定位、诊断、格式化等功能,完全不用考虑被操作硬盘安装的是什么操作能,完全不用考虑被操
4、作硬盘安装的是什么操作系统系统8使用使用CHS寻址方式寻址方式 柱面柱面-磁头磁头-扇区扇区8只能访问只能访问8GB左右的硬盘左右的硬盘8老式硬盘缺点:老式硬盘缺点:8每个磁道扇区数相等。每个磁道扇区数相等。2.1 2.1 硬盘结构简介硬盘结构简介2.1.1 2.1.1 硬盘的物理结构硬盘的物理结构u现代硬盘结构简介现代硬盘结构简介8老式硬盘,每个磁道扇区数相等老式硬盘,每个磁道扇区数相等8改用等密度结构生产硬盘,外圈磁道的扇区比内改用等密度结构生产硬盘,外圈磁道的扇区比内圈磁道多圈磁道多8硬盘不再具有实际的硬盘不再具有实际的3D参数参数8寻址方式也改为线性寻址,即以扇区为单位进行寻址方式也改
5、为线性寻址,即以扇区为单位进行寻址寻址8现代大容量硬盘一般采用现代大容量硬盘一般采用LBA(Logic Block Address)线性地址来寻址,以替代线性地址来寻址,以替代CHS寻址。在寻址。在LBA方式下,系统把所有的物理扇区都按某种方方式下,系统把所有的物理扇区都按某种方式或规则看做是一线性编号的扇区,即从式或规则看做是一线性编号的扇区,即从0到某个到某个最大值方式排列,这样,只用一个序数就能确定最大值方式排列,这样,只用一个序数就能确定一个唯一的物理扇区。这就是线性地址扇区的由一个唯一的物理扇区。这就是线性地址扇区的由来,显然线性地址是物理扇区的逻辑地址来,显然线性地址是物理扇区的逻
6、辑地址2.1 2.1 硬盘结构简介硬盘结构简介CHS到到LBAu假设用假设用C表示当前柱面号,表示当前柱面号,H表示当前磁头号,表示当前磁头号,c表示起始柱表示起始柱面号,面号,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
7、/S=0/0/63,代入上述公式中得到,代入上述公式中得到LBA=62uC/H/S=220/156/18,代入上述公式中得到,代入上述公式中得到LBA=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虽然现代硬盘都已经采用了线性寻址
8、,但是由于虽然现代硬盘都已经采用了线性寻址,但是由于基本基本INT 13H的制约,使用的制约,使用BIOS INT 13H接口的接口的程序,如程序,如DOS等还只能访问等还只能访问8G以内的硬盘空间。以内的硬盘空间。为了打破这一限制,为了打破这一限制,Microsoft等几家公司制定了等几家公司制定了扩展扩展INT 13H标准标准(Extended INT 13H),采用线采用线性寻址方式存取硬盘,所以突破了性寻址方式存取硬盘,所以突破了8G的限制,而的限制,而且还加入了对可拆卸介质且还加入了对可拆卸介质(如移动硬盘、优盘如移动硬盘、优盘)的支的支持持2.1 2.1 硬盘结构简介硬盘结构简介2
9、.1.1 2.1.1 硬盘的物理结构硬盘的物理结构u分区与高级格式化分区与高级格式化8硬盘在使用时,是按照不同的区域存储数据的,硬盘分区硬盘在使用时,是按照不同的区域存储数据的,硬盘分区就是划分区域的过程。划分好的每一个区域都称作一个分就是划分区域的过程。划分好的每一个区域都称作一个分区,最多可以划分为四个主分区。这项工作由分区程序来区,最多可以划分为四个主分区。这项工作由分区程序来完成,通常使用完成,通常使用FDISK或磁盘管理工具软件或磁盘管理工具软件在分区的过程中,分区程序向在分区的过程中,分区程序向0柱面柱面0磁头磁头1扇区写入主引导扇区写入主引导记录记录MBR(Master Boot
10、 Record)和分区记录表和分区记录表DPT(Disk Partition Table),并建立一个分区表链,所有的逻辑驱动并建立一个分区表链,所有的逻辑驱动器写入链表记录。器写入链表记录。硬盘的分区格式常用的分区格式有四种:硬盘的分区格式常用的分区格式有四种:FAT16、FAT32、NTFS和和Linux 8硬盘分区后还不能直接使用,要在每个分区内建立完整的硬盘分区后还不能直接使用,要在每个分区内建立完整的存储系统后才能正常使用。建立存储系统的工作一般由存储系统后才能正常使用。建立存储系统的工作一般由FORMAT程序来完成,这个过程称为高级格式化程序来完成,这个过程称为高级格式化高级格式化
11、的目的是在分区内建立分区引导记录高级格式化的目的是在分区内建立分区引导记录DBR(DOS Boot Record)、文件分配表文件分配表FAT(File Allocation Table)、文件目录表文件目录表FDT(File Directory Table)和数据区和数据区DATA2.1 2.1 硬盘结构简介硬盘结构简介存放系统主存放系统主引导程序,引导程序,负责从活动负责从活动分区中装载分区中装载并运行系统并运行系统引导程序引导程序作业:作业:MBR反编译,分析主引导程序功能。反编译,分析主引导程序功能。2.1.2 硬盘的数据结构硬盘的数据结构u主引导扇区的组成主引导扇区的组成8主引导扇区
12、主引导扇区(Boot Sector)也就是硬盘的第也就是硬盘的第一个物理扇区一个物理扇区(0柱面柱面0磁磁头头1扇区扇区)主引导记录主引导记录(Master Boot Record,MBR)主分区表即磁盘分区表主分区表即磁盘分区表(Disk Partition Table,DPT)引导扇区标记引导扇区标记(Boot Record ID/Signature)8完成系统主板完成系统主板BIOS向操向操作系统交接的重要入口作系统交接的重要入口2.1 2.1 硬盘结构简介硬盘结构简介主引导扇区结构图主引导扇区结构图合法引导区标志u隐藏扇区隐藏扇区主引导扇区主引导扇区0|0|1所在的磁道称为所在的磁道称
13、为0磁道,磁道,是隐藏磁道是隐藏磁道这个磁道的这个磁道的63个扇区个扇区都是隐藏扇区都是隐藏扇区 Debug读写读写Winhex2.1 2.1 硬盘结构简介硬盘结构简介2.1.2 硬盘的数据结构硬盘的数据结构Format对它们也无能为力!对它们也无能为力!2.1.2 硬盘的数据结构硬盘的数据结构u硬盘主分区表结构简介硬盘主分区表结构简介2.1 2.1 硬盘结构简介硬盘结构简介偏移字节偏移字节字段长度字段长度值值字段名和定义字段名和定义0x01BE0x01BEBYTEBYTE0x800x80引导指示符号引导指示符号( (Boot Indicator) Boot Indicator) 0x01BF
14、0x01BFBYTEBYTE0x010x01起始磁头号起始磁头号( (Start Head)Start Head)0x01C00x01C0WORDWORD6 6位位0x010x01起始扇区号高起始扇区号高2 2位为起始柱面号位为起始柱面号9-109-10位位0x01C10x01C11010位位0x000x00起始柱面号起始柱面号( (Start Cylinder)Start Cylinder)0x01C20x01C2BYTEBYTE0x070x07系统系统ID(System ID)ID(System ID),定义了分区的类型定义了分区的类型0x01C30x01C3BYTEBYTE0 0xFEx
15、FE结束磁头号结束磁头号( (End Head)End Head)0x01C40x01C4WORDWORD6 6位位0 0xBFxBF结束扇区号结束扇区号( (End Sector)End Sector)0x01C50x01C51010位位0 0xFCxFC结束柱面号结束柱面号( (End Cylinder)End Cylinder)0x01C60x01C6DWORDDWORD0x0000003F0x0000003F相对扇区数相对扇区数( (Relative Sectors) Relative Sectors) 0x01CA0x01CADWORDDWORD0x00BB867E0x00BB867
16、E总扇区数总扇区数( (Total Sectors)Total Sectors),该分区中扇区总数该分区中扇区总数u注意注意:在在dos/windows系统中,基本分区一柱面为系统中,基本分区一柱面为单位划分(以单位划分(以1柱面的容量为分区粒度)柱面的容量为分区粒度)u如果磁盘总空间不是柱面的整数倍,那么不够一个如果磁盘总空间不是柱面的整数倍,那么不够一个柱面的空间就是剩余空间,这部分空间不参与分区柱面的空间就是剩余空间,这部分空间不参与分区 浪费,并且成为病毒的藏身之地。浪费,并且成为病毒的藏身之地。u问:对于问:对于CHS为为764/255/63的硬盘,分区的最小尺的硬盘,分区的最小尺寸
17、是多少?寸是多少?2.1.2 硬盘的数据结构硬盘的数据结构2.1 2.1 硬盘结构简介硬盘结构简介u通过主引导记录定义的硬盘分区表,最多只能描述通过主引导记录定义的硬盘分区表,最多只能描述4个分区个分区-不够用,无法满足需求不够用,无法满足需求u一个主分区定义为扩展分区一个主分区定义为扩展分区-可进一步分区,满足需求可进一步分区,满足需求2.1.3 扩展分区与扩展扩展分区与扩展MBR简介简介2.1 2.1 硬盘结构简介硬盘结构简介2.1.3 扩展分区与扩展扩展分区与扩展MBR简介简介u微软采用虚拟微软采用虚拟MBR的技术的技术-主主MBR在定义分区的时候,将多在定义分区的时候,将多余的容量定义
18、为主扩展分区。余的容量定义为主扩展分区。u该分区中还可以进一步划分一个基本分区和一个扩展分区。该分区中还可以进一步划分一个基本分区和一个扩展分区。u虚拟虚拟MBR(扩展扩展MBR,Extended MBR,EBR)没有引导和错误没有引导和错误提醒信息部分。提醒信息部分。u用以描述分区的扇区形成一个用以描述分区的扇区形成一个“分区链分区链”,通过这个分区链,通过这个分区链,就可以描述所有的分区就可以描述所有的分区-逻辑锁逻辑锁2.1 2.1 硬盘结构简介硬盘结构简介29302560*512=15002910720=37E3E4000H97659135*512=BA451FE00H+37E3E40
19、00H=F22903E00H2.1.3 扩展分区与扩展扩展分区与扩展MBR简介简介u扩展分区和逻辑盘扩展分区和逻辑盘2.1 2.1 硬盘结构简介硬盘结构简介2.1.3 扩展分区与扩展扩展分区与扩展MBR简介简介u3主分区主分区(其中一个用作扩展其中一个用作扩展)的磁盘结构图的磁盘结构图2.1 2.1 硬盘结构简介硬盘结构简介一一个个3主主分分区区的的磁磁盘盘结结构构扩展分区表链接示意图扩展分区表链接示意图2.2.1 文件系统简介文件系统简介2.2 2.2 文件系统文件系统主引导记录主引导记录(Master Boot Record,MBR)磁盘分配表磁盘分配表DPT操作系统引导记录操作系统引导记
20、录(DOS Boot Record,DBR)文件分配表文件分配表(File Allocation Table,FAT)文件目录表文件目录表(File Directory Table,FDT)数据区数据区在低级格式化,磁盘被分成每块512BFAT文件系统将多个扇区合并成一个簇(cluster)2.2.2 FAT32 DBRuDBR区区(DOS Boot Record) 引导扇区引导扇区2.2 2.2 文件系统文件系统BPB BIOS Parameter Block2.2.3 FAT16 DBRuFAT12和和FAT16中的中的DBR与与FAT32中的中的DBR的基本的基本含义类似,只是相关偏移量
21、和参数意义有小的差异含义类似,只是相关偏移量和参数意义有小的差异2.2 2.2 文件系统文件系统偏移字节偏移字节字段长度字段长度( (字节字节) )字段名称字段名称0x000x003 3跳跳转转指指令令( (Jump Jump Instruction)Instruction)0x030x038 8OEM IDOEM ID0x0B0x0B2525BPBBPB0x240x242626扩展扩展BPBBPB0x3E0x3E448448引引 导导 程程 序序 代代 码码 ( (Bootstrap Bootstrap Code)Code)0x01FE0x01FE4 4扇区结束标识符扇区结束标识符(0(0x
22、55AA)x55AA)2.2.4 保留扇区保留扇区u在在FAT文件系统文件系统DBR的偏移的偏移0x0E处,用处,用2个字节存储保留扇区的数目。所谓保留扇个字节存储保留扇区的数目。所谓保留扇区区(有时候也称作系统扇区、隐藏扇区有时候也称作系统扇区、隐藏扇区),是指从分区是指从分区DBR扇区开始的仅为系统所有扇区开始的仅为系统所有的扇区,包括的扇区,包括DBR扇区。在扇区。在FAT16文件系文件系统中,通常设置为统中,通常设置为1,即仅仅,即仅仅DBR扇区。扇区。而在而在FAT32中,保留扇区的数据通常取为中,保留扇区的数据通常取为32uFAT32中的保留扇区除了磁盘总第中的保留扇区除了磁盘总第
23、0扇区扇区用作用作DBR,总第总第2扇区扇区(Windows 98系统系统)或总第或总第0xC扇区扇区(Windows 2000/XP)用作用作OS引导代码扩展部分外,其余扇区都不引导代码扩展部分外,其余扇区都不参与操作系统管理与磁盘数据管理,通常参与操作系统管理与磁盘数据管理,通常情况下是没作用的情况下是没作用的u操作系统之所以在操作系统之所以在FAT32中设置保留扇区,中设置保留扇区,是为了对是为了对DBR作备份或留待以后升级时用。作备份或留待以后升级时用。FAT32中,中,DBR偏移偏移0x32占占2字节的数据字节的数据指明了指明了DBR备份扇区所在,一般为第备份扇区所在,一般为第6扇扇
24、区。当区。当FAT32分区分区DBR扇区被破坏导致分扇区被破坏导致分区无法访问时,可以用第区无法访问时,可以用第6扇区的原备份扇区的原备份替换第替换第0扇区来找回数据扇区来找回数据2.2 2.2 文件系统文件系统2.2.5 FAT16 存储原理存储原理u当把一部分磁盘空间格式化为当把一部分磁盘空间格式化为FAT文件系统时,文件系统时,FAT文件系统就将这个分区当成整块可分配的区域文件系统就将这个分区当成整块可分配的区域进行规划,以便于数据的存储进行规划,以便于数据的存储uFAT16是是Microsoft较早推出的文件系统,具有高较早推出的文件系统,具有高度兼容性,目前仍然广泛应用于度兼容性,目
25、前仍然广泛应用于PC机尤其是移动机尤其是移动存储设备中存储设备中2.2 2.2 文件系统文件系统FAT16的组织形式的组织形式2.2.5 FAT16 存储原理存储原理uFAT表记录了磁盘数据文件的存储链表表记录了磁盘数据文件的存储链表(簇号链表簇号链表)8FAT表以表以“F8 FF FF FF”开头,此开头,此4字节为介质描述单元,字节为介质描述单元,并不参与并不参与FAT表簇链关系。小红字标出的是表簇链关系。小红字标出的是FAT扇区每扇区每2字字节对应的簇号节对应的簇号8相对偏移相对偏移0x40x5为第为第2簇簇(顺序上第顺序上第1簇簇),为,为“FF FF”,表示存储在第表示存储在第2簇上的文件簇上的文件/目录是个小文件,只占用目录是个小文件,只占用1个簇个簇便结束了便结束了2.2 2.2 文件系统文件系统FAT16 VS FAT322.2.6 FAT32 存储原理存储原理uFAT32是个非常有效的文件系统,是个非常有效的文件系统,FAT32依然占据依然占据着着Microsoft Windows文件系统中重要的地位文件系统中重要的地位uFAT32最早是出于最早是出于FAT16不支持大分区、单位簇容不支持大分区、单位簇容量大以至于空间急剧浪费等缺点设计的量大以至于空间急剧浪费等缺点设计的2.2 2.2 文件系统文件系统FAT32分区的基本构成分区的基本构成FAT32 FDT