0000:0000 - 0000:0FFF: 中断向量表和BIOS数据
0000:1000 - 0000:6FFF: 实模式的栈内存
0000:7000 - 0000:7FFF: 命令行 (multiboot)
0000:8000 - xxxx:xxxx: FreeLoader程序和数据
xxxx:xxxx - 7000:7FFF: 随机分配的堆内存
7000:8000 - 7000:FFFF: 保护模式的栈内存
8000:0000 - 8000:FFFF: 文件系统读取的内存缓冲区
9000:0000 - 9000:FFFF: BIOS 中断13h读取数据缓冲区
A000:0000 - FFFF:FFFF: 保留
l ntoskrnl.exe和hal.dll内存布局
Freeldr.sys会把ntoskrnl.exe加载到内存物理地址
当然在加载ntoskrnl.exe之前,已经进入保护模式状态,否则是访问不了大于1M的内存空间的。加载ntoskrnl.exe和它所依赖的dll文件之后,就把很多参数传送给ntoskrnl.exe,跳转到ntoskrnl.exe里面运行,这样就进入操作系统内核运行了。
ntoskrnl.exe所依赖的DLL如下图所示: