Understanding the VM split
In this chapter, we will broadly look at how the Linux kernel manages memory in two ways:
- The virtual memory-based approach, where memory is virtualized (the usual case)
- A view of how the kernel organizes physical memory (RAM pages)
First, let’s begin with the virtual memory view and then discuss physical memory organization later in the chapter.
As we saw in Chapter 6, Kernel Internals Essentials – Processes and Threads, in the Understanding the basics of the process Virtual Address Space (VAS) section, a key property of the process VAS is that it is completely self-contained, a sandbox. You cannot look outside the box. In that chapter, in Figure 6.2, we saw that the process VAS ranges from virtual address 0x0
to what we simply termed as the “high address.” What is the actual value of this “high” address? It’s the highest extent of the VAS and thus depends on the number of bits...