首页
›
Linux内核与驱动
›
077-Linux内核启动流程
›
《x86内核解压引导程序开发与地址重定位》
VIP10
本课程属于:077-Linux内核启动流程
Linux内核与驱动 · 共 10 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
x86内核解压引导程序开发与地址重定位
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
课程导论
x86内核启动流程概述 · 解压缩与重定位的重要性 · 课程目标与前置知识
课程导论
x86
02
x86实模式基础
实模式内存模型 · 段寄存器与物理地址计算 · BIOS中断服务
x86
实模式基础
03
引导扇区与MBR
MBR结构解析 · 引导代码加载流程 · 0x7C00地址约定
MBR
引导扇区
04
从实模式到保护模式
A20地址线开启 · GDT表结构 · CR0控制寄存器切换
从实模式到保护模…
A20
05
保护模式内存模型
分段机制详解 · 段描述符与选择子 · 平坦模型配置
保护模式内存模型
分段机制详解
06
ELF文件格式解析
ELF头结构 · 程序头表 · 节头表
ELF
文件格式解析
07
内核映像的压缩原理
常见压缩算法概述(gzip/LZ77… · 压缩比与解压速度权衡
内核映像的压缩原…
gzip/LZ77
08
自解压头部设计
自解压桩结构 · 压缩数据布局 · 魔数与校验和
自解压头部设计
自解压桩结构
09
汇编解压引擎初始化
栈指针设置 · BSS段清零 · 全局描述符表重载
汇编解压引擎初始…
栈指针设置
10
LZ77解压算法实现
滑动窗口原理 · 长度-距离编码 · 汇编级优化技巧
LZ77
解压算法实现
11
gzip解压核心逻辑
DEFLATE流解析 · Huffman树构建 · 动态与静态Huffman
gzip
解压核心逻辑
12
位操作与字节流处理
位缓冲区管理 · 变长编码读取 · 字节对齐处理
位操作
字节流处理
13
解压过程中的内存管理
临时缓冲区策略 · 解压目标地址对齐 · 内存覆盖保护
解压过程
内存管理
14
地址重定位基础
链接时地址与加载时地址 · 重定位表结构 · R_386_32与R_386_PC3…
地址重定位基础
链接时地址
15
重定位表解析
SHT_REL与SHT_RELA节 · 重定位入口遍历 · 符号表关联
重定位表解析
SHT
16
符号解析与地址修正
全局符号与局部符号 · 符号表查找 · 地址计算与写入
符号解析
地址修正
17
自举重定位实现
位置无关代码(PIC)原理 · GOT与PLT在重定位中的作用
自举重定位实现
PIC
18
解压与重定位协同工作
解压后立即重定位 · 分段处理策略 · 性能考量
解压
重定位协同工作
19
跳转到解压后内核
长跳转指令 · 刷新指令缓存 · 设置新栈与GDT
跳转到解压后内核
长跳转指令
20
调试与日志输出
串口输出调试信息 · QEMU与GDB调试 · 断点设置技巧
调试
日志输出
21
错误处理与异常恢复
解压校验失败处理 · 重定位越界检测 · 看门狗机制
错误处理
异常恢复
22
多阶段引导加载器
Stage1与Stage2分工 · 链式加载 · 内存布局规划
多阶段引导加载器
Stage1
23
x86-64扩展考虑
长模式切换 · 64位重定位类型 · 兼容性处理
x86-64
扩展考虑
24
性能优化
循环展开 · SIMD指令加速解压 · 缓存预取策略
性能优化
循环展开
25
安全加固
栈溢出保护 · 地址空间布局随机化(ASLR)基础 · 完整性校验
安全加固
栈溢出保护
26
工程构建系统
Makefile编写 · 链接脚本定制 · 编译选项优化
工程构建系统
Makefile
27
测试与验证
单元测试框架 · 模拟器测试 · 硬件测试流程
测试
验证
28
案例分析
Linux内核启动中的解压与重定位 · GRUB2引导分析
案例分析
Linux
29
常见问题与陷阱
段寄存器保存恢复 · 中断禁用时机 · 内存对齐问题
常见问题
陷阱
30
课程总结与进阶
项目实战建议 · 参考资料推荐 · 后续学习路径
课程总结
进阶
所属VIP或分类
同VIP:ARM64启动时head-S页表构建与MMU使能故障排查
同VIP:ARM64启动时设备树解析与内存映射调试
同VIP:EFI-stub引导下ARM64设备树传递路径与调试方法