We discuss the design of the virtual memory subsystem on the x86 32-bit and 64-bit architectures, and how this is used to implement the process abstraction in xv6.
We discuss the third homework, an overview of the structure of the ~4000 lines of code that make up xv6, and start looking into virtual memory and page tables.
We discuss the hardware foundation of most modern operating system: dual-mode operation, and its implementation in the x86 architecture. This is followed by a deep-dive into a first system call: write().