根据Linux内核文档https://www.kernel.org/doc/Documentation/x86/boot.txt,有一个从X+10000到X+08000的内核真正模式代码。我有两个问题;
For a modern bzImage kernel with boot protocol version >= 2.02, a
memory layout like the following is suggested:
~ ~
| Protected-mode kernel |
100000 +------------------------+
| I/O memory hole |
0A0000 +------------------------+
| Reserved for BIOS | Leave as much as possible unused
~ ~
| Command line | (Can also be below the X+10000 mark)
X+10000 +------------------------+
| Stack/heap | For use by the kernel real-mode code.
X+08000 +------------------------+
| Kernel setup | The kernel real-mode code.
| Kernel boot sector | The kernel legacy boot sector.
X +------------------------+
| Boot loader | <- Boot sector entry point 0000:7C00
001000 +------------------------+
| Reserved for MBR/BIOS |
000800 +------------------------+
| Typically used by MBR |
000600 +------------------------+
| BIOS use only |
000000 +------------------------+1.真正的模式代码是GRUB的一部分还是bzImage的一部分。2.如果真正的模式代码位于X+10000到X+08000之间,那么long mode/64 bit模式内核代码的物理位置在哪里?
https://unix.stackexchange.com/questions/599697
复制相似问题