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.