(一)系统启动流程
-
CPU初始化
-
CS:IP = 0xf000:fff0
-
第一条指令是跳转指令
-
-
CPU初始状态为16位实模式
-
CS:IP是16位寄存器
-
指令指针PC = 16*CS + IP
-
最大地址空间是1MB
-
-
BIOS初始化过程
-
硬件自检POST
-
检测系统中内存和显卡等关键部件的存在和工作
-
查找并执行显卡等接口卡BIOS,进行设备初始化
-
执行系统BIOS,进行系统检测;
-
检测和配置系统中安装的即插即用设备
-
-
更新CMOS中的拓展系统配置数据ESCD(能知道系统有什么设备,会变)
-
按指定启动顺序从软盘、硬盘或光驱启动。(读进到第一块扇区)
-
-
主引导记录MBR格式
-
启动代码:446字节
-
检查分区表正确性
-
加载并跳转到磁盘上的引导程序
-
-
硬盘分区表:64字节
-
描述分区状态和位置
-
每个分区描述信息占据16字节(4个分区)
-
-
结束标志字:2字节(55AA)
-
主引导记录的有效标志
-
-
-
分区引导扇区格式
-
跳转指令: 跳转到启动代码 (jmp)
-
与平台相关代码
-
-
文件卷头 : 文件系统描述信息
-
启动代码 : 跳转到加载程序
-
结束标志: 55AA
-
-
加载程序(bootloader)
-
从文件系统中读取启动配置信息 (加载程序)
-
可选的操作系统内核列表和加载参数 (启动菜单) (加载时候内核或参数不同)
-
依据配置加载指定内核并跳转到内核执行 (操作系统内核)
-
-
系统启动规范
-
BIOS (启动流程标准)
-
固化到计算机主板上的程序
-
包括系统设置、自检程序和系统自启动程序
-
BIOS-MBR(主引导记录)、BIOS-GPT(全局唯一标识分区表)、PXE(网络系统, 从服务器上下载镜像)
-
-
UEFI
-
接口标准
-
在所有平台上一致的操作系统启动服务
-
可信启动流程,读磁盘上的引导记录时候,会对引导记录的可信性进行检查。可信这些代码在我的系统上运行。
-
-
分类:
其他 操作系统笔记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程