操作系统启动过程
经典丶
|
2020.04.07
|
0
+关注

操作系统启动过程简单分为四部分,从BIOS自检、系统引导、启动内核、初始化系统。其中每个部分又分为多个自部分,操作系统的建立是一个相对比较复杂的事情。

操作系统从加电到用户工作环境准备好的过程分为三个步骤:初始引导,核心初始化,系统初始化。

一.初始引导

1.实模式和保护模式

(1)实模式(实地址模式):系统按照8086寻址方法访问00000h~FFFFFh(1MB大小)。

寻址方式:物理地址(20位)=段地址左移四位+偏移地址

CPU单任务运行。

实模式的存在时间非常短,一般感觉不到。CPU在复位(reset)或加电(power on)的过程中是以实模式方式进行的。CPU以实模式运行时,不能实现权限分级,也不能访问20位以上的地址线,即只能访问1MB大小的内存。之后进行加载操作系统模块,实模式转化为保护模式。

实模式存取的1MB空间:

前面640K(00000~9FFFF):基本内存

中间128K(A0000~8FFFF):显卡内存

末尾256K(C0000~FFFFF):BIOS

C0000~C7FFF:显卡 BIOS

C8000~CBFFF:IDE控制器BIOS

F0000~FFFFF:系统BIOS

(2)保护模式(内存保护模式)

寻址方式:段(32位)和偏移量(32位),寻址4GB。

保护模式改变了程序的寻址方式,使进程的地址空间得到保护。

2.系统BIOS(BASIC I/O SYSTEM)(fireware,固件)

在实模式下访问的1MB空间的最后64KB(F0000~FFFFF)中存储着系统BIOS。

功能:CMOS设置、基本的I/O设备中断服务、POST(上电自检)、系统自举。

3.POST

在加电后CPU回马上从FFFF0h处开始执行指令,这里的指令是JUMP POST的跳转指令,跳到系统BIOS启动代码处。该代码会进行POST(Power On Self Test ,加电后自检)。首先会先检查显卡BIOS,检查完后开始在屏幕上显示显卡信息。其后是检查系统中一些关键设备是否正常工作,如果存在问题,系统BIOS会直接控制喇叭发出发出声音来汇报错误信息,然后系统BIOS会继续检查各种标准硬件设备,在这之后会继续检查一些即插即用设备。在所有硬件设备检查完毕后,系统BIOS会根据用户指定的启动顺序选择从软件、硬件或者光驱启动。

4.MBR(Master Boot Record,主引导记录)

在通常设定的启动顺序下,系统BOIS会读取磁盘0面0道第一扇区的内容(MBR)。MBR只有512个字节,其主要作用是告诉计算机到磁盘那个位置去寻找操作系统。计算机会加载MBR中的引导程序,常见的引导程序有:ntrdl(WinXP以下)、bootmgr(Vista以上Win7)、GRUB、LILO。接着引导程序会根据相关参数读取硬盘指定位置的文件到内存,加载硬盘上的操作系统内核并初始化基本参数,再之后,操作系统内核会加载其内核剩余部分,直至完全控制计算机。

二.核心初始化

目的:执行系统核心的初始子程序,初始化系统核心数据。

典型工作:

l 各种寄存器的初始化

l 存储系统和页表初始化

l 核心进程构建

三.系统初始化

目的:为用户使用系统做准备,使系统处于待命状态。

四.系统启动举例

1.Windows的启动过程

l POST

加电后BIOS启动加电自检程序

l 初始引导

BIOS从MBR读入引导程序,装入内存的特定位置引导程序启动DOS7.0,调入操作系统核心WINDOWS开始接管系统

l 核心初始化

资源状态、核心数据等初始化

l 系统初始化

GUI界面生成,系统处于待命/消息接受状态

2.Linux的启动过程

POST → MBR → KERNEL映像 → KERNEL映像自解压并执行→内核初始化→内核启动

精选留言
延伸阅读
2020.10.02
2880阅读
更多报告干货
写留言
1501
阅读
收藏
回到顶部