Linux IA-32内存模型

Las*_*olt 5 linux memory x86 model

我正在研究一个进程的Linux IA-32内存模型,我有一个简单的问题.图片中的灰色区域包含什么?它们仅用于显示记忆的开头和结尾吗?那么,文本是从0x0开始,堆栈是从0xFFFFFFFF开始的吗?

重新开放: 嗨,在操作系统课程中,我正在参加这个问题再次变得相关.具体来说,我需要知道灰色区域包含什么.基于到目前为止的答案,我可以看到它在顶部包含内核代码,在底部包含空指针解除引用页面.但是内核代码是什么?我不认为它是整个操作系统本身,但它可能是嵌入式调度程序,内核库调用还是?

最诚挚的问候,Lasse Espeholt

alt text http://img403.imageshack.us/img403/3156/capturecj.png

Sed*_*glu 9

我认为这更准确: 替代文字


wj3*_*j32 5

我认为灰色区域只代表未定义大小的区域.程序文本肯定不会从0x0开始,因为大多数操作系统将它们用作无效页面,因此可以轻松捕获空引用.线程堆栈也不会直到0xffffffff,因为通常前四分之一(或一半)内核内存映射到它.


jan*_*neb 5

另请注意,由于地址空间布局随机化,某些部分的起始地址会随图中的值随机偏移.