Linux内核启动:新中断体系与BIOS数据区重定向

需积分: 1 0 下载量 57 浏览量 更新于2024-08-03 收藏 269KB PDF 举报
"《Linux操作系统学习-内核运行.pdf》深入探讨了Linux内核启动过程中的关键步骤,从BootLoader加载后的进程到内核初始化。文章首先强调了实模式与保护模式中断处理的转换,这是启动过程中的重要环节。在实模式下,中断服务由BIOS提供,而在保护模式下,系统会切换到由内核自身管理的中断服务程序,通过cli(关闭中断)和sti(开启中断)来确保中断服务的正确执行顺序,避免系统在内核初始化期间因意外中断而崩溃。 新旧中断的交替涉及到清理旧的实模式中断向量表(IVT),并将BIOS的中断服务程序替换为内核提供的服务。这一步骤确保了中断处理的平稳过渡,同时回收了BIOS数据区域占用的内存空间,优化了内核的内存布局。代码片段展示了如何将内核程序复制到内存的起始位置,从而覆盖掉BIOS的中断向量表和数据区,达到废除BIOS中断服务和释放内存的目的。 此外,文章还提到了`#boot/setup.s`中的`do_move`函数,该函数通过循环操作将内核程序逐字节复制到指定内存地址,直到达到0x9000位置。这进一步证实了内核启动时对内存管理和中断处理的严谨控制,确保了内核环境的稳定性和高效性。 《Linux操作系统学习-内核运行.pdf》详细介绍了Linux内核启动过程中涉及的中断管理、内存重定位以及关键代码段的执行,这些都是理解Linux内核工作原理和底层机制的重要基础。通过深入学习这些内容,读者可以更好地掌握Linux操作系统的核心运作流程和内核设计原则。"