2023年12月15日发(作者:)

1.1 DOS的磁盘管理技术:

一. 磁盘地址:

磁盘结构:扇区、磁道、柱面和簇

盘片从0开始编号。

标准360K软盘有40个柱面。

磁盘扇区大小一般为512字节。

360K软盘每磁道有9个扇区;1.2M软盘每磁道有15个扇区;标准硬盘每磁道有17个扇区。

物理扇区编号和逻辑扇区编号:

物理扇区编号(绝对扇区或BIOS扇区):三维的(磁面、磁道、扇区),首扇区为:0面0道1扇区。

逻辑扇区编号(相对扇区或DOS扇区):一维的,首扇区称0扇区。(DOS不使用物理扇区寻址)。

硬盘DOS扇区编号:0面0道1扇区——0面0道17扇区为非DOS扇区,不予考虑(此处存放引导记录和分区表)。0面1道1扇区称为0扇区。

逻辑扇区是经逻辑格式化产生的。

簇:

簇是DOS对磁盘进行分配的最小单位。给定簇的大小是逻辑格式化时决定的。

磁盘簇从数据区开始编号,是一维编号。首簇称2簇。

DOS将数扇区放在一个簇中是为了减少文件分配表的长度。

二. 物理格式化和逻辑格式化:

物理格式化(低级格式化):

将硬盘分为若干扇区,并给每扇区一个地址,这地址作为扇区数据的固定起始块,它包含:扇区地址、数字节特殊的同步信号及扇区间的间隔字节(填充字节)

物理格式化由磁盘控制器硬件完成。

逻辑格式化(高级格式化):

经逻辑格式化后的磁盘区域称DOS区域。DOS区域又分为系统区域和数据区域。

系统区包括:引导记录、文件分配表(FAT)、根目录区。

数据区:从2簇顺序编号。

系统区:

(1)、DOS引导记录区:1个扇区。

(2)、文件分配表FAT区:可变长度,一般有两个FAT表。

(3)、根目录区:对于一定类型的磁盘,根目录区大小是固定的。大部分硬盘中,格式化建立一个可容512个目录条目的根目录区。

子目录:从形式上讲同文件一样,从功能上讲同根目录相似。

系统区以扇区为单位分配,数据区以簇为单位分配。

1.2 主引导记录——MBR:

主引导记录是硬盘分区后产生的,总是在硬盘起始部位占一个扇区。

一. 主引导记录的功能:

包含分区表和主引导代码。

主引导代码:

用来检查和测试分区表的完整性,并引导系统进入活动分区,引导启动。

分区表存放逻辑分区的物理位置,分区类型和长度。

二. 主引导记录分析:

以40MB硬盘为例,引导程序代码:(用16进制代码)

(1)、读每个分区表,找出活动分区(入口标志字节为“80”,“00”为非活动分区标志,其它为无效分区。)

(2)、若全部分区入口处标志既非80亦非00,则分区表无效,显示“INVALID ARTION

TABLE”,停机。

(3)、从活动分区的DOS逻辑0扇区加载DOS引导记录。若DOS引导出错,显示:“ERROR

LOADING OPERATING SYSTEM”,停机。

(4)、查DOS引导记录最后两字节是否“55AAH”。若非“55AAH”,则显示:“MISSING

OPERATING SYSTEM”,停机。

(5)、如DOS引导记录正常,则把控制权交给DOS引导记录,由它引导系统启动。

MBR中分区表意义如下:

从偏移地址1BE开始的64个字节,每16个字节记录一个分区项,共4个分区项。

16进制代码中,字节数据逆序排列,低位在前,高位在后。

最后剩下两个字节,是55AAH。

1.3 DOS引导记录——DBR:

位于逻辑盘的0扇区,含磁盘参数表和引导代码。

DOS引导记录的功能:

引导代码功能如下:

(1)、检测磁盘是否可引导盘。

(2)、复位驱动器。

(3)、检查磁盘根目录的前两项是否为系统隐藏文件的名字。

(4)、检查这两个隐藏文件是否连续地存放于数据区起始部分。

(5)、将隐藏文件装入内存并执行。

(6)、将系统控制权交给隐藏文件。

(7)、读入操作系统。

一. DOS引导记录分析:

逻辑C盘DOS引导记录在1面0道1扇区(0面1道1扇区?)

磁盘参数表BPB:

偏移地址0B——1D的19个字节包含磁盘参数信息。

DOS引导程序代码段:

作用:

(1)、检测磁盘参数表中所描述的数值与实际情况是否相符,检查该盘是否符合引导盘的要求。若符合,则加载DOS,否则显示:Non-system disk or disk error Replace and strike any key

when ready

(2)、DOS加载出错或读操作失败则显示:Disk boot failure并停机。

(3)、偏移地址1FD的一个字节值为磁盘驱动器的标志。A:=00,C:=80

(4)、最后两字节应为55AAH。

1.4 文件分配表FAT

FAT长度与磁盘容量成正比。

FAT的结构:

每一个FAT项与一个同样编号的簇对应,每项为12位或16位。

FAT前两项保留为特殊信号,第一项描述磁盘介质类型:

FEH:单面,每磁道8扇区软盘。

FFH:双面,每磁道8扇区软盘。

FCH:单面,每磁道9扇区软盘。

FDH:双面,每磁道9扇区软盘。

F8H:硬盘。

第二项填上FFH,第三项对应2簇,依次类推,描述簇状态的FAT表项提供以下信息之一:

0000H:对应的簇未分配。

0002H——FFEEH:文件下一簇地址。

FFF8H——FFFFH:对应簇是文件最后一簇。

FFF0H——FFF6H:对应簇是坏簇。

FAT与文件的关系:

文件的目录项中(第28——32字节)记录了文件长度和它的起始簇编号(文件目录项的第26、27字节)。同时,每一个文件的最后一个FAT条目中,填入了一个〈EOF〉。

DOS读文件时,先从其目录表项中取出每一个簇的编号,然后查找FAT中对应地址记录的下一个簇,直到结束符〈EOF〉。

写文件时相反,先在目录中查是否有同名文件,若无则将文件名写入第一个作过删除标记的目录中(或未用的目录),然后找下一个0000H表项,将文件写入它对应的簇,并将簇号写入目录项中第26——27字节中。

删文件时,仅在文件分配表中释放该文件占用的簇(表中清零)。

1.5 根目录

根目录是唯一不在磁盘数据区的目录。其大小、位置固定,由逻辑格式化决定。

根目录项数(32字节/项):360K软盘112项;1.2M软盘224项;硬盘512项。

目录项结构(32字节):

00——07:文件名。ASCII字符。

08——0A:扩展名。ASCII字符。

0B:属性,每位一个属性。

OC——15:保留,至今未用。

16——17:时间,字,编码。

18——19:日期,字,编码。

1A——1B:起始簇(FAT开始项),字。

1C——1F:文件大小,长整型(低位在前)

文件名第一字节既可为文件名第一个字母,也可为00H,表示该项目未使用。

2EH:ASCII码的“·”,表示该项目为DOS保留,用于查询目录结构。

E5H:即小写希腊字母“δ”,表示文件已删除。

属性字节(8位)开关型,各位属性打开为1,关闭为0:

位0(只读)、位1(隐含)、位2(系统)、位3(卷标,只在根目录区,一个项目)、位4(子目录)、位5(档案)、位6位7(保留未用)。

时间2字节(16位):

位0——4:从0——29,表示0——58秒。

位5——10:表0——59分。

位11——15:表0——23时。

日期2字节(16位):

位0——4:日期(0——31)。

位5——8:月份(1——12)。

位9——15:年(0表示1980年)。

文件起始簇(2字节):

当0字节为2EH,本处表子目录所在簇号,若0字节与1字节都为2EH,本处表父目录。

第二章:系统的启动

2.1 PC-DOS的模块化结构

引导记录:过程:

(1)、检查引导盘根目录区前二个文件,应为和。(和)。

(2)、将和放在地址为0060:0000处。

(3)、转到0060:0000处,执行。

一. (或)——基本输入输出模块:

负责初始化系统,定位将要驻留的软件,激活DOS的系统功能调用,寻找

,执行其中语句。(开机时,只作为子程序被调用)

的最后一个启动功能是:将装入内存,然后将控制权交给它。

的初始化功能:

(1)、建磁盘参数表(INT——1EH)入口。

(2)初始化RS232端口和打印机口。

(3)、建立01H、03H、04H、1BH类中断入口。

(4)、建立通讯区0050H段中的标志单元。

(5)、把IBMDOS从当前位置移到BFH段。

(6)、确定磁盘驱动器数和RAM的大小。

(7)、调IBMDOS初始化程序,建立用户区段。

(8)、填写25H、29H类中断入口地址。

(9)、把读到用户区段0100H处。

(10)、建立磁盘缓冲区(DAT)地址编移量为80H。

(11)、执行程序。

的接口功能:

有11个中断程序:05H、08H、0AH、10H、11H、12H、14H、16H、17H、19H。

二. (或)——PC-DOS的核心模块:

操作系统大部分功能存在于此模块的系统功能调用中,负责系统的磁盘文件管理、内存管理和其他外部设备的管理。在PC-DOS上用汇编语言开发的系统软件、应用软件通过这些系统功能调用来实现。共12组57个功能块,调用时AH寄存器存放功能块号。

三. ——命令处理程序:

负责接受和解释输入的命令,处理错误中断和键盘中断,具有全部内部命令的处理程序。

负责把外部命令文件读入内存,再把控制权交给该程序。

存放位置无要求,包括三部分:暂驻内存、常驻内存、初始化部分。

暂驻内存部分:

在建立段前缀PSD后,由的初始化程序将的常驻部分CS:0100,由此开始执行的初始化。暂驻部分含:命令处理程序本身、所有内部命令处理程序、批命令处理程序、装入外部命令程序、执行外部命令程序。

常驻内存部分:

(1) 与用户程序、的暂存部分通信。

(2) 建立INT22H程序终止,INT33H中断退出,INT27H结束并保留程序。

(3) 用户程序终止后,检查暂存部分被用户程序覆盖否,若覆盖则重新调入。

初始化部分:

包含的设置程序,决定被装入程序的段地址,产生DOS提示符,读命令并执行之。

DOS层次关系:

硬件→ROM BIOS→DOS与ROM BIOS的接口模块()→DOS功能调用()→命令处理程序()

2.2.和文件

一. (系统结构设置文件)

作用:

(1)、为PC可能不知道的硬件装入驱动程序。

(2)、改变某些操作系统参数的缺省值。

(3)、在内存中装TSR。

顺序(也可不按顺序):

(1)、物理磁盘的设备驱动程序。

(2)、存储器板的设备驱动程序。

(3)、其他硬件的设备驱动程序。

(4)、软件的设备驱动程序。

(5)、配置命令。

内存管理的设备驱动程序次序:

(1)、,如果计算机有扩展内存。

(2)、扩充内存管理程序,若有扩充内存板。

(3)、,若装有80386处理器和扩展内存(若本文件已含扩充内存管理程序和EMM386命令,本行应加NOEMS选项)

(4)、其他设备驱动程序。

语句格式:

(1)、BREAK=ON/OFF*(默认):对中断键CTRL+BREAK设置。OFF时,只有系统在执行屏幕、键盘、打印或异步通讯适配器操作时才能用CTRL+BREAK中止他。ON时,任何操作都可终止。BREAK状态也可用内部命令来设置。

(2)、BUFFERS=n(n=1-99,约定为2):缓冲区数量。

(3)、FILES=N(N=8*-99):其中5个,DOS已分配给标准输入、标准输出、标准错误输出、辅助设备和标准打印机。DOS每打开一个文件,就在内存中为它建一个文件控制块(FCB),FILES规定了能建FCB的个数。

(4)、DEVICE=〈文件名全称〉:

(5)、SHELL=〈文件名全称〉:启动指定的命令处理程序。约定为。

(6)、COUNTRY=:设国家信息、码页、国家信息文件名。

(7)、DRIVPARM=:设置块设备参数。

(8)、FCBS=:确定同时能打开的文件控制块(FCB)的数目。

(9)、INSTALL=:执行时执行FASTOPEN、KEYB、NLSFUNC或SHARE等命令。

(10)、LASTDRIVE=:设置最后一个可使用的驱动器名。

(11)、REM:解释。

(12)、STACKS=:用于支持动态用数据栈。

(13)、SWITCHAR=:设置命令开关字符。

(14)、SWITCHES=:使增强型键盘能象普通键盘一样使用。

二、

作用功能:

(1)、执行多个命令序列。

(2)建立命令的代用名字。

(3)对不同文件使用相同的命令序列。

(4)、建立使用命令。

(5)、简化硬盘操作。

(6)、保存与恢复缺省条件。