北航OS课程笔记--二、系统引导
这一章期末不考所以记得比较水(目移)
系统引导
系统引导:开机时,操作系统是如何运行起来的?
- CPU从一个特定主存地址开始取指令,执行ROM中的引导程序(Bootloader);先硬件自检,再开机。
- 将磁盘的第一块:主引导记录(MBR)读入内存,执行磁盘引导程序,扫描分区表
- 从活动分区(主分区,即安装了操作系统的分区)读入分区引导记录PBR,执行其中的程序
- 从根目录下找到完整的操作系统初始化程序并执行
Bootloader
引导加载程序是系统加电后运行的第一段软件代码,称为Bootloader,是在操作系统内核运行之前运行的一段小程序。MIPS处理器大多用于嵌入式系统,嵌入式系统常用U-boot作为OS启动装载程序。
嵌入式系统中硬件配置千差万别,所以不可能有一个BootLoader支持所有CPU(操作系统不可完全移植)。
U-Boot启动流程:
- 分为stage1和stage2两部分。
- 依赖于CPU体系结构的代码,如设备初始化代码等:放在stage1且可以用汇编语言来实现。
- stage2:通常用C语言来实现,这样可以实现复杂的功能,而且有更好地可读性和移植性。
MIPS的基本地址空间
-
kuseg: 用户态可用的地址。在有MMU的机器里,这些地址将一概被MMU作转换。
MMU:内存管理单元,一种硬件模块,用于在CPU和内存之间进行虚拟内存管理。主要功能是将虚拟地址转换为物理地址。
-
kseg0:将最高位清零,就可以映射到物理地址段。称为“非转换”的地址区域;对这段地址的存取基本都会通过cache
- 一个没有MMU的系统会使用这段地址作为绝大多数程序和数据的存放位置
- 有MMU的系统,操作系统核心会存放在这。
-
kseg1:将这些地址的高三位清零可映射到相应的物理地址上
- kseg1是非cache存取的
- kseg1是唯一在系统重启时能正常工作的地址空间
-
kseg2:只能在核心态下使用,并要经过MMU的转换。
加载BIOS
BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。
读取MBR
MBR:主引导记录,存在于驱动器开始部分的一个特殊的启动扇区。包含了已安装的操作系统的启动加载器(BootLeader)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)