计算机的启动过程_第1页
计算机的启动过程_第2页
计算机的启动过程_第3页
计算机的启动过程_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机的启动过程

计算机的启动过程好比一场接力赛,各选手如上图所示,BIOS,MBR,

OSLoader,OS,一个程序接一个程序的运行,而峙递的接力棒便相当于对计算

机的控制权。

本文也就围绕着这四个程序进行介绍,隐去了部分细节后续讲解,着重于理清

启动的顺序、过程。

BIOS

BIOS运行

启动的第一步便是运行BIOS程序,平常要运行某个程序时一般分为两步:

1、将程序载入内存

2、使cs:ip指向程序入口地址

而BIOS作为开机运行的第一个程序,运行方式与普通程序有所不同,但方法过

程是相通的:

1、BIOS程序不需要由谁加载,本身便固化在ROM只读存储器中,位置如下图

所示:

实模式下的内存布局

起始结束大小用途

BIOS入口地址,此地址也属于BIOS代码,同样属于顶部的640KB字节.只是为了

FFFFOFFFFFI6B

强调其入口地址才胱独贴出来.此处16字节的内容是跳转指令jmpQOO:eO5b

系统BIOS范Bl是F0000〜FFFFF共640KB.为说明入口地址,将最上面的16

FOOOOFFFEF64KB-I6B

字节从此处去抻了.所以此处终止地址是OXFFFEF

C8000EFFFF160KB映射硬件适配器的ROM或内存映射式I/O

C0000C7FFF32KB显示适配器BIOS

B8000BFFFF32KB用于文本模式显示增配期

B0000B7FFF32KB用于黑白显示适配器

A0000AFFFF64KB用于彩色M示适配器

9FC009FFFFIKBEBDA(ExtendedBIOSDaUArca)扩及BIOS数据区

7E009FBFF622080B约608KB可用区域

7C007DFF512BMBR被BIOS加毂到此处,共512字节

5007BFF30464B的30KB可用区域

4004FF2S6BBIOSDataArea(BIOS数据区)

0003FFIKBInterruptVectorTable(中断向■表)

据图可知,BIOS位于内存底部1M的顶端64KB处。

2、开机的一瞬间cs:ip便被初始化为OxfOOO:OxfffOo开机的时候处于实模

式,其等效地址为OxffffO,如上图所示此地址为BIOS的入口地址。

内存说明:计算机中的内存靠地址总线进行访问,而地址总线能访问到不仅仅

是内存条,还有ROM,显存等等。一般是将地址总线能访问到的地址空间低端

的一部分划给除内存条之外的其他储存空间。这也是电脑中显示的已安装的内

存与实际不符的原因,总是会小上一点,不信右击此电脑点属性查看内存。

BIOS功能

BIOS程序有如下功能:

1、检验外设,初始化硬件

2、在0x00(T0x3ff处建立终端向量表并填写终端例程

3、基本的I/O功能

4、权力交接给MBR

BIOS最后一项工作便是检验启动盘0盘0道1扇区(CHS表示方法,LBA表示方

法为0盘0道0扇区),如果此扇区末尾两个字节是0x55和Oxaa,则认为此扇

区存在可执行的程序(MBR),随后将其加载到0x7c00处,再跳转到此处运

行,此时便将接力棒交给了MBR.

MBR

MBR全称MainBootRecord,主引导记录,位于硬盘最开始的扇区。

一般扇区大小为512字节,MBR引导扇区的内容为:

1、446字节的引导程序和参数

2、64字节的分区表

3、最后两字节0x55和Oxaa

简析分区表:分区表每个表项16字节,则共有4个表项。重要的表项内容如

下:

1、第0字节,活动分区标记,两种取值0x80和0。0x80表示活动分区,也就

是此分区的引导扇区包含引导程序,通常为操作系统内核加载器。0表示非活

动分区,不可引导。

2、第871字节:分区起始偏移扇区

3、第12T5字节:分区扇区数

MBR主要的功能是检验分区表,从分区表查找可引导的活动分区,找到后“传

递接力棒”,将分区中的引导程序加载到某地(不同操作系统有着不同实现,从

实模式下的内存分布中可看出,有一些未利用的区域,可加载到其中某处),最

后跳转去执行,完成交接。

OSLoader

OSLoader,即操作系统加载器,顾名思义此程序的功能便是要将操作系统加载

进来,然后将接力棒交给操作系统。

Loader所做工作比较复杂,在此简述需要了解的部分:

1、从实模式到保护模式的转化

2、启用分页机制

3、加载内核

OS

操作系统接权后,首先运行init程序,如Linux下的init/main.c,main,c中

的start_kernel函数会调用各种初

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论