0:00
/
Preview

Understanding a Process’s Address Space Layout

In this video, we look at how a process’s virtual address space is laid out: code, data, heap, stack, shared libraries, mmap regions, and more.

This is the third video in the virtual memory series based on the virtual memory article/book that I wrote. In the first two videos, we talked about what is virtual memory, and the size of virtual memory address space of a process. In this installment, we understand how this address space is laid out by the operating system and why does it have this specific layout.

The video covers the following topics:

  • The address space layout of a process

  • The key segments of this address space: text, data, bss, heap, memory-mapped region, stack

  • How the stack grows

  • Performance and security implications of this layout

In the next video, we will talk about how the kernel maintains the virtual-to-physical address mapping and how the translation works. In the meantime, if you haven’t read the virtual memory article, I recommend checking it out. It is also available in an aesthetically pleasing and screen- friendly PDF/EPUB format at the link below.

Check out Ebook

User's avatar

Continue reading this post for free, courtesy of Abhinav Upadhyay.