当前位置: 技术问答>linux和unix
linux在setup.s里将system代码从10000处移到地址0后,原来驻留在地址0的BIOS中断程序去哪了?
来源: 互联网 发布时间:2016-12-22
本文导语: CMOS自举程序把BIOS中断程序的入口(中断向量表)地址表放在了地址0起始的1K内存里, 但linux在setup.s里将system代码从10000处移到地址0后,原来驻留在地址0的BIOS中断向量表去哪了? 虽然之后重新加载了IDT,在asm.s里重新...
CMOS自举程序把BIOS中断程序的入口(中断向量表)地址表放在了地址0起始的1K内存里,
但linux在setup.s里将system代码从10000处移到地址0后,原来驻留在地址0的BIOS中断向量表去哪了?
虽然之后重新加载了IDT,在asm.s里重新实现了一部分中断(int0~int15),但一些关键的中断,如显示服务int 10h、直接磁盘服务int 13h这些BIOS中断程序去哪了,驻留在哪?向量入口在哪?
但linux在setup.s里将system代码从10000处移到地址0后,原来驻留在地址0的BIOS中断向量表去哪了?
虽然之后重新加载了IDT,在asm.s里重新实现了一部分中断(int0~int15),但一些关键的中断,如显示服务int 10h、直接磁盘服务int 13h这些BIOS中断程序去哪了,驻留在哪?向量入口在哪?
|
看看drivers/video。Linux后面应该是直接操作VGA寄存器来显示文字了。
|
我觉得这些中断完全不需要了。linux访问磁盘是通过自己的磁盘驱动,没有经过bios了
|
BIOS初始化的中断是提供给内核加载之前的程序使用的,比如debug用,bootloader用,当内核接管控制权后,需要重新初始化中断向量表,原来BIOS的那一套已经没有意义了,还需要保留吗?不知我理解的对不对
|
对,现代化的操作系统,启动之后和bois已经无关了
|
我是来学习的