HUST OS 3.1 操作系统启动过程【自学笔记】

版权声明:学习,哪有那么多条条框框~ https://blog.csdn.net/Irish_Moonshine/article/details/91128105

第3章 操作系统用户界面

3.1 操作系统启动过程

3.2 操作系统生成

3.3 用户界面

3.4 系统调用

3.1 操作系统启动过程

3.1.1 BIOS和主引导记录MBR
3.1.2 操作系统启动过程
3.1.1 BIOS和主引导记录MBR
  • 实模式和保护模式

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

  • 保护模式(内存保护模式,PROTECT MODE)
    1.寻址方式:段(32位)和偏移量(32位),寻址4GB空间
    段的属性:起始地址,存取属性,权限级别…
    2.段页式寻址机制(段,页)
    3.虚拟地址,进程,封闭空间
    4.应用程序和操作系统的运行环境都被保护
    5.CPU支持多任务

实模式存取的1M空间
1.前面640K【00000 – 9FFFF】:基本内存
2.中间128K【A0000 – BFFFF】:显卡显存
3.末尾256K【C0000 – FFFFF】:BIOS;
【C0000 – C7FFF】:显示卡BIOS
【C8000 – CBFFF】:IDE控制器BIOS
【F0000 – FFFFF】:最后64KB,系统BIOS

  • BIOS:Basic I/O System(Firmware,固件)
    基本输入/输出系统
    位置【F0000 – FFFFF】
    功能:
    1.系统启动配置
    2.基本的设备I/O服务
    3.系统的加电自检和启动。

BIOS使用的中断类型号为10H ~ 1FH

  • 加电自检和自举:
    加电自检POST
    Power On Slef-Test(加电自检)
    初始化基本硬件
    CPU、内存、显卡…
    自检正常不提示,错误则通过喇叭提示。

按下PowerOn或者Reset键执行第1条指令
执行FFFF0处的指令(JUMP POST;POST位于系统BIOS内部)

POST之后…
查找显卡BIOS,调用显卡BIOS;
依次查找其他设备执行相应设备的BIOS;
显示启动画面…

从硬盘/软盘/光驱/U盘读入OS;
OS启动后,由OS接管计算机

  • 主启动记录MBR
    MBR:
    1.存放在硬盘/软盘的首扇区
    2.存放和OS启动的相关信息 ( Main Boot Reacord )
    3.512 BYTES
    4.结束: 0xAA55h

  • MBR/硬盘分区/格式化

MBR|Windows FAT32/NTFS| LinuxEXT2/EXT3 /其他文件系统

分区启动扇区( Partition Boot Sector ); BootLoader , PBR

主启动扇区( Main boot sector ):完成OS加载或启动管理功能:
1.提供菜单:让用户选择不同的启动项,实现多重启动
2.加载核心文件:直接指向可启动区加载操作系统;
3.跳转:将启动管理功能转交给其他loader

  • BIOS和MBR程序运行过程
    1.POST—CMOS设置(硬盘启动)—读取MBR—控制权交给MBR
    2.MBR读取分区表(Partition Table),找到其中的活动分区(Active Partition),并确认其他的分区都不是活动分区。MBR读取活动分区的第一个分区(分区引导记录PBR)并把它加载到内存中去。
    3.PBR继续控制后面的引导过程。
3.1.2 操作系统的启动过程
  • 启动过程
    从加电到用户工作环境准备好的过程
    1.初始引导
    2.核心初始化
    3.系统初始化

  • 初始引导:
    目的:把OS核心装入内存并使之开始工作接管计算机系统
    过程:
    加电,JUMP POST
    …BIOS中的启动程序执行
    -启动程序(位于BIOS):
    读取0面0道1扇区内容(MBR)
    加载MBR中的引导程序
    -引导程序(位于MBR,主流GRUB):
    根据相关参数读取硬盘指定位置的文件到内存
    加载硬盘上的OS内核,并初始化基本参数
    -OS内核:
    逐步加载OS剩余部分,最后完全控制计算机

  • 核心初始化
    目的:OS内核初始化系统的核心数据
    典型工作:
    各种寄存器的初始化
    存储系统和页表初始化
    核心进程构建

  • 系统初始化
    目的:为用户使用系统做准备,使系统处于待命状态
    主要工作:
    初始化文件系统
    初始化网络系统
    初始化控制台
    初始化图形界面

  • Windows的启动过程
    1.POST
    加电后BIOS启动主机自检程序
    2.初始引导
    BIOS从MBR读取引导程序,装入内存的特定位置
    引导程序启动DOS7.0,调入操作系统核心
    WINDOWS开始接管系统
    3.核心初始化
    资源状态、核心数据等初始化
    4.系统初始化
    GUI界面生成,系统处于待命/消息接受状态

  • Linux的启动过程
    1.POST
    2.MBR
    3.KERNEL映像(一部分代码是非压缩的,大部分后面代码是压缩的,这非常有利于嵌入式系统)
    4.KERNEL映像自解压并执行
    5.内核初始化
    6.内核启动

  • 内核完成引导后,加载init程序
    1.进程号1.
    2.init进程通过/etc/inittab脚本进行初始化
    不同运行级别(Runlevel)/etc/inittab脚本不同
    3.脚本文件/etc/inittab
    init进程根据/etc/inittab执行相应的脚本初始化系统
    设置键盘、字体、装载模块、设置网络等等。

猜你喜欢

转载自blog.csdn.net/Irish_Moonshine/article/details/91128105