Kernel virtual address translation

Given Linux and the x86 32-bit architecture, there is a 3: 1 split of the available 4 GB address space. 0-3 GB is allocated to user space, and 3-4 GB for the kernel. How does a virtual address that is larger than 3Gb and therefore falls into the kernel address space translate into a physical address? Will page tables be displayed?

+7
source share
1 answer

Mel Gorman's book has some insights Understanding Linux Virtual Memory Manager .

Short answer: Yes, the kernel sets up page tables to translate physical address 0 to virtual 3 GiB address. (Section 3.7.1). This includes the physical location where the kernel is loaded (usually 1 MB on x86).

+5
source

All Articles