
Understanding Linux Boot Memory Management
When the Linux kernel begins executing on ARM64 hardware, the CPU starts in a minimal environment. The Memory Management Unit (MMU) is disabled and the processor executes instructions using physical addresses directly. Before Linux can use its normal virtual address space, the kernel must construct the page tables required for address translation. This work happens very early in the boot process head.S During this phase the kernel performs three important tasks: Construct minimal page tables Create both identity and kernel virtual mappings Enable the MMU and switch execution to the kernel's high virtual address space This article explains how that process works, using concrete memory layouts and examples. 1. Boot Environment Assumptions To make the discussion concrete, assume the following system configuration: RAM start : 0x80000000 Kernel load addr : 0x80800000 Kernel size : 30 MB Kernel end : 0x82600000 Other relevant parameters: Page size : 4 KB L2 block size : 2 MB Virtual address
Continue reading on Dev.to Tutorial
Opens in a new tab




