Linux内核启动揭秘:msg_loop中的字符串与实/保护模式转换
需积分: 15 169 浏览量
更新于2024-08-23
收藏 1.37MB PPT 举报
在《关于msg_loop输出的字符串 - Linux内核源代码导读 - 陈香兰 - 基于x86的Linux 2.6.26的启动》这篇文章中,作者陈香兰探讨了Linux内核启动过程,特别是针对I386架构的细节。文章首先回顾了编译得到的bzImage结构,这个结构包括Setup.bin、vmlinux.bin(具有自解压功能)以及多个模块,如head_32.o、misc.o和piggy.o等。
对于Linux的启动流程,文章详细介绍了BIOS的作用以及几种常见的启动方式,如软盘启动、硬盘启动、Grub和Lilo等。特别强调了BIOS中第一个扇区的重要性,它是引导加载程序的起点,内容包含引导加载代码,如setup.ld。在这个部分,作者着重讲解了实模式、保护模式和分页模式的区别,以及它们在内存管理中的作用。
实模式是早期CPU兼容性设计,地址总线只有20位,内存范围限于0~1MB,逻辑地址由段地址和段内偏移组成。而保护模式引入了更高级别的内存管理,地址总线扩展到32位,可访问4GB内存,通过段选择子(GDT表)与全局描述符表(GDT)配合实现。中断描述符表(IDT)和全局描述符表(GDTR)也在此阶段发挥作用。
文章还提到了控制寄存器(如CS、DS、ES、FS和GS)的管理和装载,其中CS通常通过长跳转指令装载,而其他数据段寄存器直接设置。阅读文档"documentation/i386/boot.txt"有助于理解这些概念。
这篇文档深入剖析了Linux内核启动过程中的底层机制,对于理解和开发基于x86架构的Linux系统具有很高的参考价值。理解这些概念不仅有助于开发者编写启动代码,也有助于对整个操作系统的工作原理有更深的认识。
2010-04-07 上传
2010-04-12 上传
辰可爱啊
- 粉丝: 17
- 资源: 2万+
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍