Linuxカーネルのドキュメントによると、カーネルのカーネルhttps://www.kernel.org/doc/Documentation/x86/boot.txt
モードコードがあります。 2つの質問があります。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
ベストアンサー1
(最新バージョンを参考にします。プロトコル文書の開始、見ている文書は古いです。 )
リアルモードカーネルブートセクタと設定コードはカーネルの一部です。セクション1.2。彼らは生きているXそしてX+0x08000。
保護モードのカーネルは、上の表の最初のエントリ0x100000にロードされます。