一、ELF文件结构如下图:
之所以要用ELF文件格式,是因为这样可以用C语言和汇编语言混合写内核代码。
二、ELF header及Program header详细介绍
nasm -f elf -o kernel.o kernle.asm
ld -s -Ttext 0x30400 -o kernel.bin kernel.o
此时,程序的入口地址就变成了0x30400,ELF header等信息会位于0x30400之前,此时ELF header和Program header table的情况如下图:
ELF header占52(34h)个字节,Program header每个占32个字节。
读者一定已经明白了,Program header描述的是一个段在文件中的位置(0H)、大小(40DH),以及它被放进内存后所在的位置(30000H)和大小(40DH)。