Virtual memory explained as a dialogue between a process and the Linux kernel
blog.codingconfessions.com