# 操作系统用户界面

# 操作系统启动过程

# BIOS和主引导记录MBR

  • 实模式(实地址模式,real mode)
    程序按照8086寻址方法访问0h——FFFFFh(1MB)空间
    寻址方式:物理地址(20位) = 段地址:偏移地址
    CPU单任务运行

  • 保护模式(内存保护模式 protect mode)
    寻址方式:段(32位)和偏移量(32)位
    段页式寻址机制(段、页)
    虚拟地址,进程,封闭空间
    应用程序和操作系统的运行环境都被保护
    CPU支持多任务

实模式存取的1M空间:
前面640K:基本内存
中间128K:显卡显存
末尾256K:BIOS

# Basic I/O System(Firmware,固件)

位置:F0000——FFFFF
功能:完成系统的启动配置,基本设备I/O服务,系统加电自检和启动

# 加电自检POST

Power On Self-Test
初始化基本硬件:CPU、内存、显卡
自检正常不提示,错误则通过喇叭提示

按下PowerOn或者Reset键执行第一条指令
执行FFFF0处的指令:JUMP POST;POST位于系统BIOS内部
之后查找显卡BIOS,调用显卡BIOS
依次查找其他设备执行相应设备的BIOS
显示启动画面
BIOS信息,芯片组型号,主板信息
从硬盘/软盘/光驱/U盘读入OS
OS启动后,由OS接管计算机

# 主启动记录MBR(Main Boot Record)

MBR存放在硬盘/软盘的首扇区
存放和OS启动的相关信息
共512BYTES
结束:0xAA55

f9ec07984f66be1d13692d287ef27e33

# BIOS和MBR程序运行过程

  1. POST->CMOS设置(硬盘启动)->读取MBR->控制权交给MBR。
  2. MBR读取分区表(Partition Table),找到其中的活动分区(Active Partition),并确认其他的分区都不是活动分区。MBR读取活动分区的第一个分区(分区引导记录PBR),并把他加载到内存中去。
  3. PBR继续控制后面的引导过程。

# 启动过程

从加电到用户工作环境准备好的过程

  1. 初始引导
  2. 核心初始化
  3. 系统初始化

# 过程

# 初始引导

  1. 加电,JUMP POST;
  2. BIOS中的启动程序运行
  3. 启动程序读取0面0道第1扇区内容(MBR)
  4. 加载MBR中的引导程序
  5. 引导程序根据相关参数,读取硬盘中指定位置的文件到内存
  6. 加载硬盘上的OS内核,并初始化参数

# 核心初始化

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

# 系统初始化

为用户使用系统作准备,使系统处于待命状态
初始化文件系统,网络系统,控制台,图形界面等

11836033bf3543d945cbf33700657564
4ffdb95a4333e31fb45609db788bf010

内核完成引导后,加载init程序
进程号为1
init进程通过/etc/inittab脚本进行初始化,不同的运行级别下的/etc/inittab脚本不同。脚本文件设置键盘、字体、装载模块、设置网络等等。

b5ef0170c1b9404e915450b041624b38