34 深入浅出 x86 中断机制(下)

参考

https://blog.51cto.com/13475106/category6.html及狄泰软件相关课程

Q:实模式下的中断向量表和中断服务程序需要程序内核来建立吗?
在之前的屏幕打印的的结构是int中断是由程序的来实现的,与现在所说的程序中断是由内核来建立的不符,为什么会出现这样的情况/
在这里进行解答,在计算机通电时,X86处理器直接在实模式执行
硬件做的工作--将主板ROM的代码(BIOS)拷贝到内存;将CS:IP寄存器的值进行设置,接下来时BIOS所做的工作
BIOS工作--硬件检测并且进行简单的厨初始化,并在内存建立中断向量表,建立中断服务程序。接下来BIOS从启动盘扇区载入程序(操作系统引导程序),载入0X7C00起始地址处。通过这两个处理,BIOS交出了控制权。
操作系统-x86中断机制

 

保护模式下的中断处理

1.使用中断描述符映射不同中断与中断服务程序
2.中断描述符表--可以包括中断门,陷阱门,任务门,门描述表(包含中断程序的入口-选择子:偏移;包含各种用于合法性检查的属性:特权级)
操作系统-x86中断机制操作系统-x86中断机制
在使用是用到了Gate宏,参数固定为0

C.保护模式下的中断处理

1.每个中断产生一个中断向量
2.通过中断向量在IDT中查找对应的中断描述符
3.通过中断描述符中的选择子和偏移可找到ISR的入口地址
操作系统-x86中断机制
注意事项
1.IDT处理提供ISR入口地址,还提供特权级等属性
2.中端发生后,转移执行ISR代码前需要金特权级检查
3.实模式与保护模式的中断向量完全一致
4.IDT中必须提供每种中断所对应的ISR入口地址

原文地址:https://www.cnblogs.com/lh03061238/p/14497822.html