Linux内核启动揭秘:实模式到保护模式转变与启动流程
需积分: 15 134 浏览量
更新于2024-08-23
收藏 1.37MB PPT 举报
本篇文章是陈香兰教授对中国科学技术大学计算机系学生讲解Linux内核源代码的入门教程,特别聚焦于基于x86架构的Linux 2.6.26版本的启动过程。文章首先回顾了编译得到的bzImage的结构,它由Setup.bin、vmlinux.bin(具有自解压功能)、head_32.o、misc.o、piggy.o等部分组成。vmlinux是核心内核代码,而Head-y、init-y和main则是启动过程中关键的部分。
在深入理解Linux内核启动流程时,文章提到了BIOS(基本输入输出系统)在计算机启动过程中的作用,包括软盘和硬盘启动方式,以及引导装载程序如GRUB和LILO的选择。此外,作者强调了启动协议的重要性,特别提到了BIOS中第一个扇区的特殊地位,它是0x07C0地址,其中包含设置启动环境的关键代码。
文章指出,实模式是早期CPU兼容性的体现,i386系统初始运行在此模式下,特点是地址总线只有20位,内存范围限于0-1MB,逻辑地址由段地址和段内偏移构成。段寄存器cs、ds、es、fs、gs在实模式下使用,并且长度为16位。进入保护模式后,地址总线扩展到32位,支持更大的内存空间,段寄存器转变为段选择子,与全局描述符表(GDT)和中断描述符表(IDT)一起工作。
为了访问保护模式下的内存,需要设置全局描述符表和中断描述符表,这通常在装载GDT和IDT后进行。控制寄存器(如CS)通常通过长跳转指令加载,而其他数据段寄存器则直接设置。阅读documentation/i386/boot.txt有助于更深入地理解这些概念。
本文通过详细的讲解,帮助读者理解Linux内核启动过程中的基础原理,特别是处理器模式转换、内存管理和中断处理机制,对于学习和研究Linux内核源码具有重要的参考价值。
2020-12-01 上传
2021-09-03 上传
2021-09-15 上传
2010-12-23 上传
2022-09-21 上传
2020-04-09 上传
2022-02-27 上传
2022-08-10 上传
2021-05-27 上传
鲁严波
- 粉丝: 25
- 资源: 2万+
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载