北航OS课程笔记--二、系统引导

这一章期末不考所以记得比较水(目移)

系统引导

系统引导:开机时,操作系统是如何运行起来的?

  1. CPU从一个特定主存地址开始取指令,执行ROM中的引导程序(Bootloader);先硬件自检,再开机。
  2. 将磁盘的第一块:主引导记录(MBR)读入内存,执行磁盘引导程序,扫描分区表
  3. 从活动分区(主分区,即安装了操作系统的分区)读入分区引导记录PBR,执行其中的程序
  4. 从根目录下找到完整的操作系统初始化程序并执行

Bootloader

引导加载程序是系统加电后运行的第一段软件代码,称为Bootloader,是在操作系统内核运行之前运行的一段小程序。MIPS处理器大多用于嵌入式系统,嵌入式系统常用U-boot作为OS启动装载程序。

嵌入式系统中硬件配置千差万别,所以不可能有一个BootLoader支持所有CPU(操作系统不可完全移植)。

U-Boot启动流程:

  • 分为stage1和stage2两部分。
  • 依赖于CPU体系结构的代码,如设备初始化代码等:放在stage1且可以用汇编语言来实现。
  • stage2:通常用C语言来实现,这样可以实现复杂的功能,而且有更好地可读性和移植性。

MIPS的基本地址空间

image-20240313110734872

  • kuseg: 用户态可用的地址。在有MMU的机器里,这些地址将一概被MMU作转换。

    MMU:内存管理单元,一种硬件模块,用于在CPU和内存之间进行虚拟内存管理。主要功能是将虚拟地址转换为物理地址。

  • kseg0:将最高位清零,就可以映射到物理地址段。称为“非转换”的地址区域;对这段地址的存取基本都会通过cache

    • 一个没有MMU的系统会使用这段地址作为绝大多数程序和数据的存放位置
    • 有MMU的系统,操作系统核心会存放在这。
  • kseg1:将这些地址的高三位清零可映射到相应的物理地址上

    • kseg1是非cache存取的
    • kseg1是唯一在系统重启时能正常工作的地址空间
  • kseg2:只能在核心态下使用,并要经过MMU的转换。

加载BIOS

BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。

读取MBR

MBR:主引导记录,存在于驱动器开始部分的一个特殊的启动扇区。包含了已安装的操作系统的启动加载器(BootLeader)

posted @   qiuer0121  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示