Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Linux IA-32 memory model

I'm looking at the Linux IA-32 memory model of a process and I have a simple question to it. What do the grey areas in the picture contain? Are they only included to show the beginning and end of the memory? So, do text start at 0x0 and stack start at 0xFFFFFFFF?

Reopened: Hi, in an OS course I'm attending this question becomes relevant again. Specifically, I need to know what the grey areas contain. Based on the answers so far, I can see it contains kernel code in the top and a null-pointer dereference page in the bottom. But what is the kernel code? I don't assume it is the whole operating system itself, but could it be embedded scheduler, kernel library calls or?

Best regards, Lasse Espeholt

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

like image 833
Lasse Espeholt Avatar asked Jan 12 '10 09:01

Lasse Espeholt


2 Answers

I think this is more accurate: alt text

like image 108
Sedat Kapanoglu Avatar answered Oct 21 '22 00:10

Sedat Kapanoglu


I think the grey areas simply represent regions of undefined size. Program text certainly wouldn't start at 0x0, because most OSes use them as invalid pages so null dereferences can be caught easily. Thread stacks also wouldn't go right up to 0xffffffff because usually the top quarter (or half) has kernel memory mapped into it.

like image 20
wj32 Avatar answered Oct 20 '22 23:10

wj32