操作系统启动过程

操作系统启动过程小记

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

一.初始引导
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。接着引导程序会根据相关参数读取硬盘指定位置的文件到内存,加载硬盘上的操作系统内核并初始化基本参数,再之后,操作系统内核会加载其内核剩余部分,直至完全控制计算机。

二.核心初始化
目的:执行系统核心的初始子程序,初始化系统核心数据。
典型工作:

  • 各种寄存器的初始化
  • 存储系统和页表初始化
  • 核心进程构建

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

四.系统启动举例
1.Windows的启动过程

  • POST

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

  • 初始引导

  • BIOS从MBR读入引导程序,装入内存的特定位置

  • 引导程序启动DOS7.0,调入操作系统核心

  • WINDOWS开始接管系统

  • 核心初始化

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

  • 系统初始化

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

2.Linux的启动过程
POST → MBR → KERNEL映像 → KERNEL映像自解压并执
行→内核初始化→内核启动
注释:

  • 当KERNEL映像被加载到内存之后,内核阶段就开始了。
  • KERNEL映像是一个zlib压缩过的内核映像,通常是一个
    zImage(小于 512KB)或 bzImage(大于 512KB)。
  • 在KERNEL映像最前面是一个可执行例程(实现少量硬件设
    置,并对映像其余部分解压放入高端内存中)。然后该例程
    会调用内核,并开始启动内核引导的过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值