What does this address specify? Address of where these are loaded in memory?
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
The kernel starts at a fixed location in the virtual address space of a process. The linux kernel usually [depending on your system architecture] is located in the top 1 GB of the 4GB virtual address space. So the kernel for a system architecture with 3G/1G split, starts at the address 0xC0000000. Depending on the platform’s memory map, this will be mapped to a physical address in the physical memory.
The system.map file is the kernel symbol table. It has the symbols listed along with their virtual addresses. To find out where these symbols are loaded in the main memory, subtract PAGE_OFFSET [for 3G/1G systems this is 0xC00000000] from the symbol address to get the offset and add this offset to the starting physical address of the kernel in the physical memory as determined from the system memory map.