Linux Kernel Architecture

(Jacob Rumans) #1

Chapter3:MemoryManagement


The same information is also available for AMD64 systems. Here the kernel starts 2 MiB after the first
page frame, and physical memory is mapped into the virtual address space from0xffffffff80000000
onward. The relevant entries inSystem.mapare as follows:

wolfgang@meitner>cat System.map
ffffffff80200000 A _text
...
ffffffff8041fc6f A _etext
...
ffffffff8056c060 A _edata
...
ffffffff8077548c A _end

This information is also contained in/proc/iomemfor the running kernel:

root@meitner #cat /proc/iomem
...
00100000-cff7ffff : System RAM
00200000-0041fc6e : Kernel code
0041fc6f-0056c05f : Kernel data
006b6000-0077548b : Kernel bss
...

InitializationSteps


Which system-specific steps must the kernel perform once it has been loaded into memory and the assem-
bler parts of initialization have been completed? Figure 3-12 shows a code flow diagram of the individual
actions.

setup_arch

machine_specific_memory_setup

parse_early_param

setup_memory

paging_init

pagetable_init

zone_sizes_init

add_active_range

free_area_init_nodes

Figure 3-12: Code flow diagram for memory
initialization on IA-32 systems.
Free download pdf