Ядро запускается в фиксированном месте в виртуальном адресном пространстве процесса.Ядро Linux обычно [в зависимости от архитектуры вашей системы] находится в верхних 1 ГБ виртуального адресного пространства 4 ГБ.Таким образом, ядро для системной архитектуры с разделением 3G / 1G начинается с адреса 0xC0000000.В зависимости от карты памяти платформы, она будет отображаться на физический адрес в физической памяти.
Файл system.map является таблицей символов ядра.В нем есть символы, перечисленные вместе с их виртуальными адресами.Чтобы выяснить, где эти символы загружаются в основную память, вычтите PAGE_OFFSET [для систем 3G / 1G это 0xC00000000] из адреса символа, чтобы получить смещение и добавить это смещение к начальному физическому адресу ядра в физической памяти какопределяется из карты системной памяти.