What does the Kernel Virtual Memory of each process contain?

Posted by claws on Stack Overflow See other posts from Stack Overflow or by claws
Published on 2010-03-15T05:17:15Z Indexed on 2010/03/15 5:19 UTC
Read the original article Hit count: 213

Filed under:
|
|

When say 3 programs (executables) are loaded into memory the layout might look something like this:

alt text

I've following questions:

  1. Is the concept of Virtual Memory limited to user processes? Because, I am wondering where does the Operating System Kernel, Drivers live? How is its memory layout? I know its operating system specific make your choice (windows/linux).

  2. They say, on a 32 bit machine in a 4GB address space. Half of it (or more recently 1GB) is occupied by kernel. I can see in this diagram that "Kernel Virtual memory" is occupying 0xc0000000 - 0xffffffff (= 1 GB). Are they talking about this? or is it something else? Just want to confirm.

  3. What exactly does the Kernel Virtual Memory of each of these processes contain? What is its layout?

  4. When we do IPC we talk about shared memory. I don't see any memory shared between these processes. Where does it live?

  5. Resources (files, registries in windows) are global to all processes. So, the resource/file handle table must be in some global space. Which area would that be in?

  6. Where can I know more about this kernel side stuff.

© Stack Overflow or respective owner

Related posts about linker

Related posts about loader