操作系统的两种模式
1.实模式(实地址模式)
- 计算机刚加电时处于实模式下
- 程序按照8086寻址方式访问0h-FFFFFh(1MB)空间
- 寻址方式:物理地址(20位)=短地址:偏移地址
- CPU单任务运行
2.保护模式
- 计算机启动成功后处于保护模式下
- 寻址方式:段(32位)和偏移量(32位),寻址4GB空间
- 段页式寻址机制(段,页)
- 虚拟地址,进程,封闭空间
- 应用程序和操作系统的运行环境都被保护
- CPU支持多任务
段的属性:其实地址,存起属性,权限级别…
系统BIOS(Basic I/O System)
基本输入/输出系统 位置:F0000-FFFFF
功能:
- 系统启动配置
- 基本的设备I/O服务
- 系统的加电自检和启动
MBR
BIOS读硬盘的过程会先读主启动记录MBR
- 存放在硬盘/软盘的首扇区
- 存放和OS启动的相关信息
- 512BYTES
- 结束:0Xaa55h
硬盘扇区
硬盘扇区如上图划分,在系统扇区中,存在分区启动扇区(PBR),在MBR分区中存在主启动扇区。
主启动扇区:完成OS加载或启动管理功能
- 提供菜单:让用户选择不同的启动项,实现多重启动
- 加载核心文化:直接指向可启动区加载操作系统
- 跳转:将启动管理功能转交给其他loader
BIOS和MBR程序运行过程
- POST->硬盘启动->读取MBR->控制权交给MBR
- MBR读取分区表,找到其中的活动分区,并确认其他的分区都不是活动分区。MBR读取活动分区的第一个分区(分区引导记录PBR),并把他加载到内存中去。
- PBR继续控制后面的引导过程
操作系统的启动
(1)初始引导 目的:把OS的核心装入内存并使之开始工作接管计算机系统 过程: 1)加电,JUMP POST 2)BIOS中的启动程序: 读取0面0道第1扇区内容(MBR) 加载MBR中的引导程序
引导程序 根据相关参数,读取硬盘指定位置的文件到内存 加载硬盘上OS内核,并初始化基本参数
(2)核心初始化 目的:OS内核初始化系统的核心数据 典型工作
- 各种寄存器的初始化
- 存储系统的页表初始化
- 核心进程构建
(3)系统初始化 目的:为用户使用系统做准备,使系统处于待命状态 主要工作 初始化文件系统、网络系统等
Windows启动过程
1.POST 2.加电后BIOS启动主机自检程序 3.初始引导 BIOS从MBR读取引导程序,装入内存的特点文职 引导程序启动DOS7.0,调入操作系统核心 WINDOWS开始接管系统 4.核心初始化 资源状态、核心数据等初始化 5.系统初始化 GUI界面生成,系统处于待命/消息接受状态
Linux启动过程
POST->MBR->KERNEL映像(内核映像)->KERNEL映像自解压并执行 ->内核初始化->内核启动->加载init程序
KERNEL映像是一个zlib压缩国的内核映像 内核完成引导后,加载init程序 进程号1 init进程通过/etc/inittab脚本进行初始化 不同运行级别(Runlevel)/etc/inittab脚本不同 脚本文件/etc/inittab init进程根据脚本文件执行相应的脚本初始化系统