Linux操作系统学习-内核运行.pdf 本文主要分析Linux操作系统的内核运行过程,涵盖了从实模式到保护模式的切换、新旧中断的交替、内核初始化、中断描述符表(IDT)和全局描述符表(GDT)的创建等内容。 一、从实模式到保护模式的切换 在Linux操作系统的启动过程中,我们需要从实模式切换到保护模式,这样可以提供更好的硬件支持和内存管理。实模式下的中断机制与保护模式下的中断机制不同,因此我们需要关闭旧的中断(cli)并确立新的中断(sti)。 二、新旧中断的交替 在实模式下的中断机制显然不能和保护模式的中断机制同日而语,因此我们需要关闭旧的中断(cli)并确立新的中断(sti)。main函数能够适应保护模式的中断服务体系被重建完毕才会打开中断,而那时候响应中断的服务程序将不再是BIOS提供的中断服务程序,取而代之的是由系统自身提供的中断服务程序。 cli、sti总是在一个完整操作过程的两头出现,目的是避免中断在此期间的介入。试想,如果没有cli,又恰好发生中断,如用户不小心碰了一下键盘,中断就要切进来,就不得不面对实模式的中断机制已经废除、保护模式的中断机制尚未完成的尴尬局面,结果就是系统崩溃。 三、中断描述符表(IDT)和全局描述符表(GDT) IDT(Interrupt Descriptor Table)保存保护模式下所有中断服务程序的入口地址,类似于实模式下的中断向量表。IDTR(IDT基地址寄存器),保存IDT的起始地址。GDT(Global Descriptor Table),在系统中唯一的存放段寄存器内容(段描述符)的数组,配合程序进行保护模式下的段寻址。 四、A20启用 A20启用是一个标志性的动作,由上文提到的lzma_decompress.img 调用 real_to_prot启动。打开A20,意味着我们已经完成了从实模式到保护模式的切换,并且已经创建了IDT和GDT zwei重要的数据结构。 本文详细分析了Linux操作系统的内核运行过程,涵盖了从实模式到保护模式的切换、新旧中断的交替、中断描述符表(IDT)和全局描述符表(GDT)的创建等内容,为读者提供了深入了解Linux操作系统的内核机制的机会。
- 粉丝: 880
- 资源: 2650
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助