资源描述
6/6
开机流程(For DOS)
当我们按下电源开关时,电源就开始向主板和其它设备供电,此时电压还是不稳定,主板控制芯片组会向CPU发出一个RESET信号
置CS寄存器为FFFFH,IP寄存器为0000H
Power On
CPU Initialize
1. 当电源开始稳定供电后,芯片组便撤去RESET信号,CPU马上就从地址FFFF0H处开始执行指令
POST开始
*
2.CPU取的第一条指令(一条跳转指令),跳到系统BIOS中真正的启动代码处(系统板上8KBROMBIOS程序),运行程式(post程式)开始自检
POST会先将CPU的控制权交给可选择ROM-BIOS程式执行
1.无法在屏幕上显示出来(POST的检测过程在显示卡初始化之前)
2.可通过喇叭发声来报告错误情况,声音长短和次数代表了错误的类型。
1.由内向外侦测
2.在元件初始化以前,先测试其硬件线路
3. ROM BIOS的checksum等
侦测过程(如640k常规内存)
检)
主要任务是检测系统中的一些关键设备是否存在和能否正常工作.如内存,显卡等。
FAIL
若ROM中的程式有问题,就会一去不回返,既交给ROM的控制权无法回传给系统,则造成DOWN机 (hang up)。
1. 系统BIOS将检查显示卡的BIOS,起始地址通常在C0000H处
2. 找到显卡BIOS之后调用它的初始化代码,由显卡BIOS找来完成显示卡的初始化,显示生产厂商、显存容量等的信息.
3. 接着系统BIOS会找到之后同样要调用这些BIOS内部的初始化代码来初始化这些设备。(如: DMA测试、interrupt中断控制器测试、HDD ROM BIOS、网卡的Remote ROM、防毒卡等)
检测可选择ROM-BIOS及Init
FAIL
1.先检测FDD ROM,找到了就将Int13分配给FDD。
2.若扫描到硬盘控制器中的ROM(起始地址为C800:0000H,其中放的是2KB硬盘设备驱动程序),则进行软中断的重新分配,把原INT13H给硬盘,软盘中断改为INT40H.
可选择ROM-BIOS程式执行完之后,将控制权交回给POST程式
显示系统BIOS的启动画面
1.显示系统BIOS的类型、序列号和版本号等内容
2. 屏幕底端左下角会出现主板信息代码,包含BIOS的日期、主板芯片组型号、主板的识别编码及厂商代码等
系统BIOS检测CPU的类型和工作频率
将检测结果显示在屏幕上,这就是我们开机看到的CPU类型和主频
将检测内存的数值显示在屏幕上, 就是屏幕上半部份那个飞速翻滚的内存计数器,这个过程我们可以在BIOS设置中选择耗时少的"快速检测"或者耗时多的"全面检测"方式
系统BIOS检测内存容量
内存测试结束(通过)
系统BIOS检测系统中安装的一些标准硬件设备
设备包括:硬盘、CD-ROM、软驱、串行接口和并行接口等连接的设备;另外绝大多数新版本的系统BIOS在这一过程中还要自动检测和设置内存的定时参数、硬盘参数和访问模式等
标准设备检测完毕
1.系统BIOS内部的支持即插即用的代码将开始检测和配置系统中安装的即插即用设备
2. 每找到一个设备之后,系统BIOS都会在屏幕上显示出设备的名称和型号等信息,同时为该设备分配中断、DMA通道和I/O端口等资源
检测和配置系统中安装的即插即用设备
所有硬件都已经检测配置完毕
显示出一个系统配置列表
ESCD: Extended System Configuration Data,扩展系统配置数据)。ESCD是系统BIOS用来与操作系统交换硬件配置信息的数据
系统BIOS会重新清屏并在屏幕上方显示出一个系统配置列表,其中概略地列出了系统中安装的各种标准硬件设备,以及它们使用的资源和一些相关工作参数。
系统BIOS更新ESCD
1. 通常ESCD数据只在系统硬件配置发生改变后才会进行更新,所以不是每次启动机器时我们都能够看到"Update ESCD... Success"这样的信息,
2. 系统BIOS与操作系统交换硬件配置信息的数据,这些数据被存放在CMOS(一小块特殊的RAM,由主板上的电池来供电)之中。
不过,某些主板的系统BIOS在保存ESCD数据时使用了与Windows 9x不相同的数据格式,于是Windows 9x在它自己的启动过程中会把ESCD数据转换成自己的格式,但在下一次启动机器时,即使硬件配置没有发生改变,系统BIOS又会把ESCD的数据格式改回来,如此循环,将会导致在每次启动机器时,系统BIOS都要更新一遍ESCD这就是为什么有的计算机在每次启动时都会显示"Update ESCD...
POST调用中断INT 19h
(引导程序装载器)
将控制权交给BIOS 中的INT 19h
*
POST大结束
执行INT 19h,运行相应的程式
1. INT19H调用,进行系统引导,若自检有错,则显示错误信息进入死循环。
2. 控制权由INT 19h交给INT 13h时,INT 13h检查其DL的第七位是‘0’还是‘1’; 0表示FDD驱动器;1表示HDD驱动器.
备注:程序应总是使用中断INT13h来提供磁盘服务
是从FDD启动 or HDD启动
0
FAIL
DL寄存器的第七位为‘0’,其中断为:INT 13h 或 INT 40h
屏幕上显示No bootable devices
1
No HDD or BOOT DISK
DL寄存器的第七位为‘1’,其中断为:INT 13h
执行INT 18h (ROM BASIC/引导失败)
HDD启动
FDD启动
FAIL
FAIL
将软盘驱动器A:上0头、0道、1扇区(BOOT)引导记录读到起始地址为0000:7C00H的内存单元中,以完成该分区操作系统的引导。
1.将硬盘的0头、0道、1扇区的硬盘主引导记录(MBR)读到起始地址0000:7C00H的内存单元中
2.执行该硬盘主引导程序,其作用是将当前活动分区(80h)主引导程序(DBR,硬盘的1头、0道、1扇区) 也读到上述内存单元中,以完成该分区操作系统的引导。
备注:FDD & HDD扇区结束标志为55AAH
MBR通过检查DPT (HDD分区表)分区信息引导系统跳转至DBR
操作系统的引导(boot程序)
1.读取、操作系统参数。
DOS和Windows的系统文件名子相同但性质不同
3. 读取隐藏系统文件 (IO.SYS、MSDOS.SYS)
2.根据操作系统参数,读取文件分配表FAT
该模块主要是提供外设的驱动程序,并执行扩充了ROMBIOS与DOS核心((MSDOS.SYS)的接口
备注:系统引导过程,主控权由IO.SYS 控制。
调用并执行IO.SYS
1. SYSINT-初始子模块:主要进行DOS初始化,启动中,确定内存,寻找并定位MSDOS.SYS核心,处理系统配置文件CONFIG.SYS进行DOS环境的设置,将COMMAND.COM文件,调入内存区等。
2. 代码初始子模块(BIOS Int Code: 主要进行BIOS代码的初始,将MSDOS.SYS文件装入内存区,建立磁盘和块设备(主要指磁盘)参数表工作。
3.基本输入输出系统(BIOS)是IO.SYS的主体部分:主要提供DOS常驻内存的标准设备的驱动程序
DOS核心文件
1. DOS-INIT-核心初始子模块:主要是DOS启动时做内部的初始化工作,如:建立磁盘的IO参数表、设置中断向量INT20至INT18的段址,偏址等
调用MSDOS.SYS
2. MSDOS.SYS核心的主体 (INT21):提供各种系统和应用接口。如:应用程序、IO.SYS模块。操作系统接口负责完成系统的调用、系统资源管理和文件资源的管理功能。
:
1. 配置系统运行的环境。如: buffer, files, HMA等的设置。
2.加载硬件设备的驱动程式。如:CD-ROM、声卡、网卡等。
调用CONFIG.SYS
该模块是用户与系统直接“交谈”的界面
1. Shell INT-外壳初始模块:在DOS启动时,担负外壳程序的初始化中断程序,接受输入输出的初始工作,解释执行AUTOEXEC.BAT自动批处理工作。
调用Command
2. CCPR-常驻内存模块: 主要负责中断处理 (致命错误中断、Ctrl+Break强迫暂停中止) 与DOS核心。CCPT和应用程序的接口,保证CCPT的安全完整, 当CCPT遭到破坏时能自动从COMMAND.COM中重新装入CCPT至内存区并报告错误信息
3. CCPT-暂驻内存模块: 主要是解释DOS内部命令、外部命令加载、运行批处理命令
执行Autoexec.bat,
自动执行其内所设的一些命令
启动完毕,待用户下一步指示
若无CONFIG.SYS 和AUTOEXEC.BAT这两个文件,则会显示系统时间、日期。按两次ENTER, 则回到DOS提示符下(C:\> 或 A:\>)
QUANTACN-M2-SOFTWARE-GROUP 2025-8-24
展开阅读全文