当前位置: 技术问答>linux和unix
linux 0.11内核的章节习题两问
来源: 互联网 发布时间:2015-09-04
本文导语: 1.内核启动程序中,为什么不直接将system模块搬到0x00000处,而是先搬到0x10000处,再搬到0x00000处? 2.setup.s和head.s中都分别设置了一次全局描述符表GDT和中断描述符表IDT,这是为什么?能否只在head.s只设置一次? | ...
1.内核启动程序中,为什么不直接将system模块搬到0x00000处,而是先搬到0x10000处,再搬到0x00000处?
2.setup.s和head.s中都分别设置了一次全局描述符表GDT和中断描述符表IDT,这是为什么?能否只在head.s只设置一次?
2.setup.s和head.s中都分别设置了一次全局描述符表GDT和中断描述符表IDT,这是为什么?能否只在head.s只设置一次?
|
我来答答:
1:因为bios启动时的一些系统检测数据放在0x000000处,如:硬盘的参数地址等等.如你说就破坏啦.
2:设立临时gdt,idt是必要的,因为进入保护模式后,CPU访问的不是直接物理地址,是待转换的逻辑地址.
1:因为bios启动时的一些系统检测数据放在0x000000处,如:硬盘的参数地址等等.如你说就破坏啦.
2:设立临时gdt,idt是必要的,因为进入保护模式后,CPU访问的不是直接物理地址,是待转换的逻辑地址.
|
up