哈工大L3操作系统启动流程与main.c探索

需积分: 0 0 下载量 93 浏览量 更新于2024-08-05 收藏 1.05MB PDF 举报
在哈工大操作系统-L3的课程中,关于操作系统启动过程的讲解深入到了汇编语言层面。首先,我们来看开机的第三步,即head.s文件。在这个阶段,操作系统进入了保护模式,这是从实模式向更高级别安全性和性能提升的关键步骤。 1. head.s的初始化:头文件head.s负责在内存中的定位和启动流程。它首先进行32位模式的初始化,使用GNUas汇编语言,因为此时系统已经处在保护模式下,这种32位的AT&T语法与早期的16位as86汇编有所不同。头文件确保操作系统的核心部分能够正确加载并从0地址开始执行。 2. 保护模式的地址翻译:进入保护模式后,地址空间的处理更为复杂。全局描述符表(GDT)用来映射不同段寄存器(如CS、DS、SS等)到物理内存的特定区域。每个GDT表项包含基地址和偏移信息,通过查找GDT来确定实际的内存地址。例如,当遇到指令jmpi0,8时,意味着CS的值为8,IP(指令指针)为0,需要找到GDT的第二个表项来确定具体的地址。 3. 主程序main.c的初步窥探:虽然汇编代码占据了主导,但理解main.c的作用同样重要。它是操作系统的核心入口点,负责管理和调度系统任务。在head.s初始化完成后,控制权会传递给main.c,进行后续的操作系统服务和功能调用。 4. L2+L3总结:L2和L3阶段可能是对操作系统核心模块(如内存管理、中断处理、设备驱动等)的深入学习。这部分内容涉及到了中断管理,可能参考了《x86汇编语言:从实模式到保护模式》一书的159页以后的内容,强调了中断处理在保护模式下如何协调硬件和软件之间的交互。 哈工大的这门操作系统课程详细讲解了从头文件初始化到保护模式的转换,再到主程序的调用,以及中断处理等关键概念。学习者将了解到操作系统如何利用汇编语言进行底层控制,实现内存管理、数据保护和系统响应等功能。通过这些深入的学习,学生能够更好地理解和构建自己的操作系统。