How the Linux kernel handles the memory mapping if the physical memory of say only 512 MB is installed on my system

0

How the Linux kernel handles the memory mapping if the physical memory of say only 512 MB is installed on my system.

Kernel maps 0(or 16) MB-896MB physical RAM into 0xC0000000 linear address and can directly address it. So, what happens when I only have 512 MB of RAM?

How can the kernel map 896 MB from only 512 MB ?, the kernel set things up so that every process's page tables mapped virtual addresses from 0xC0000000 to 0xFFFFFFFF (1GB) directly to physical addresses from 0x00000000 to 0x3FFFFFFF (1GB). But when I have only 512 MB physical RAM, how can I map, virtual addresses from 0xC0000000-0xFFFFFFFF to physical 0x00000000-0x3FFFFFFF ? Point is I have a physical range of only 0x00000000-0x20000000. As kernel pages cannot be swapped out, how user processes are getting chance to use the physical memory?

linux-kernel
asked on Stack Overflow Jul 2, 2019 by Sudharshan

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0