The kernel runs in a fixed location in the virtual address space of the process. The linux kernel is usually [depending on your system architecture] located in the top 1 GB of the 4 GB virtual address space. Thus, the kernel for system architecture with a 3G / 1G partition starts at 0xC0000000. Depending on the platform’s memory card, this will be mapped to a physical address in physical memory.
The system.map file is a kernel symbol table. It contains the listed characters along with their virtual addresses. To find out where these characters are loaded into main memory, subtract PAGE_OFFSET [for 3G / 1G systems this is 0xC00000000] from the address of the character to get the offset, and add this offset to the original physical address of the kernel in physical memory as determined from the system’s memory card.
source
share