Skip to content
Hadi Moshayedi edited this page Jun 4, 2015 · 2 revisions

Virtual Memory Layout

Each process has the following virtual memory layout:

  • User Mode Memory:

  • 0x00000000..0x7fffcfff: Process text and data

  • 0x7fffd000..0x7fffdfff: User mode stack (4096 bytes)

  • 0x7fffe000..0x7fffefff: Kernel mode stack (4096 bytes)

  • 0x7ffff000..0x7fffffff: Unused

  • Kernel Mode Memory:

  • 0x80000000..0x801fffff: Kernel text and data

  • 0x80200000..0x80200000+TOTAL_MEMORY_SIZE: Allocatable memory (max: 1022MB)

  • 0xc0000000..0xc0399999: Memory Mapped IO

  • 0xffff0000..0xffff0fff: Interrupt vector

Every page is mapped to a page in "Allocatable memory" section. If a page is allocated from this section to a process, it's also mapped as a page in "User Mode Memory".

Clone this wiki locally