Kernel space memory layout
Kernel memory is managed in a fairly straightforward way. It is not demand-paged, which means that for every allocation using kmalloc()
or similar function, there is real physical memory. Kernel memory is never discarded or paged out.
Some architectures show a summary of the memory mapping at boot time in the kernel log messages. This trace is taken from a 32-bit Arm device (a BeagleBone Black):
Memory: 511MB = 511MB total Memory: 505980k/505980k available, 18308k reserved, 0K highmem Virtual kernel memory layout:     vector  : 0xffff0000 - 0xffff1000  (   4 kB)     fixmap  : 0xfff00000 - 0xfffe0000  ( 896 kB)     vmalloc : 0xe0800000 - 0xff000000  ( 488 MB)     lowmem  : 0xc0000000 - 0xe0000000  ( 512 MB)     pkmap   : 0xbfe00000 - 0xc0000000  ...