Implementing Process-Specific Kernel Page Tables and Optimizing Copy Operations in xv6
Memory Layout and Page Table Management
Hardware Device Mapping
Hardware devices like UART0 (0x10000000L), VIRTIO0, CLINT, and PLIC have fixed physical addresses and interrupt numbers defined by hardware design. The kernel uses these addresses to communicate with devices, initialize registers, and handle interrupts.
Kernel Loading and Execution ...
Posted on Fri, 19 Jun 2026 17:44:33 +0000 by zhahaman2001
Virtual Address Spaces and Memory Layout in Linux
When a program executes, the memory addresses it works with are not physcial hardware locations. This distinction becomes clear through the behavior of fork().
Consider the following demonstration. A global integer is initialized, and then a new process is created:
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
in ...
Posted on Fri, 15 May 2026 01:09:36 +0000 by sandrol76