For anybody who's interested I also wrote up a whole bunch of notes on this at <a href="https://github.com/lorenzo-stoakes/linux-vm-notes" rel="nofollow">https://github.com/lorenzo-stoakes/linux-vm-notes</a> and superceded by far more recent <a href="https://github.com/lorenzo-stoakes/linux-mm-notes" rel="nofollow">https://github.com/lorenzo-stoakes/linux-mm-notes</a><p>I have made a few patches into the mm subsystem some simply inspired by researching for the articles.
"Virtual addresses are the size of a CPU register. On 32 bit systems each process has 4 gigabytes of virtual address space all to itself, which is often more memory than the system actually has."<p>I guess this is not the most up-to-date document?