реклама на сайте
подробности

 
 
> Адресация в Linux Kernel
doom13
сообщение Oct 2 2015, 10:59
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Приветствую.
Функцией kmalloc выделяю блок памяти.
Фкнкция virt_to_phys возвращает физический адрес блока памяти.
В системе 16 ГБ памяти - адресное пространство 0x00000000_00000000 - 0x00000003_FFFFFFFF.
Иногда функция virt_to_phys возвращает значение 0х00000004_0c012000 (0x00000004_09911000 и др).
Как такое получилось?

Из "Linux Device Drivers":
Цитата
Physical addresses
The addresses used between the processor and the system’s memory. Physical
addresses are 32- or 64-bit quantities; even 32-bit systems can use larger physical addresses in some situations.

Из "Understanding the Linux Kernel":
Цитата
Physical address
Used to address memory cells in memory chips. They correspond to the electrical signals sent along the address pins of the microprocessor to the memory bus. Physical addresses are represented as 32-bit or 36-bit unsigned integers.

Как получается, что физический адрес блока памяти вышел за пределы диапазона памяти системы?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 17:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.0133 секунд с 7
ELECTRONIX ©2004-2016