Учитывая, что в Linux и 32-битной архитектуре x86 существует разделение 3: 1 доступного адресного пространства 4 ГБ. Пользовательскому пространству выделяется 0-3 Гб, а для ядра - 3-4 Гб. Как виртуальный адрес, который больше 3Gb и, следовательно, попадает в адресное пространство ядра, преобразуется в физический адрес? Будут ли отображаться таблицы страниц?преобразование виртуального адреса ядра
7
A
ответ
5
В книге Мела Гормана есть Understanding the Linux Virtual Memory Manager.
Короткий ответ: Да, ядро устанавливает таблицы страниц для перевода физического адреса 0 на виртуальный адрес 3 GiB. (Раздел 3.7.1). Это включает физическое местоположение, в которое загружено ядро (обычно 1 МБ на x86).
Смежные вопросы
- 1. Виртуального ядра против физического ядра
- 2. Автоматическое преобразование виртуального адреса в адрес памяти?
- 3. Виртуальный адрес виртуального адреса Linux 3/1
- 4. Преобразование виртуального адреса в запись в таблицу страниц
- 5. Неверное преобразование из HANDLE в HINSTANCE (получение адреса функции ядра)
- 6. Поиск адреса ядра загружаемого модуля ядра
- 7. Карта виртуального адреса назад на физический адрес
- 8. Режим ядра - физические адреса или виртуальные адреса?
- 9. Преобразование данных ядра iOS
- 10. Разделение виртуального адреса пространства в пространстве и пространстве пользователя
- 11. разделение адреса пользователя и ядра
- 12. Перевод логических на физические адреса для виртуального адреса
- 13. Перевод виртуального адреса на физический адрес
- 14. Сопоставление виртуального адреса с физическим адресом
- 15. Получение виртуального адреса PE-заголовка в памяти
- 16. Более быстрый способ получить адреса виртуального размещения
- 17. Поиск виртуального адреса памяти переменной на OSX
- 18. Как получить адрес DRAM вместо виртуального адреса
- 19. Сопоставление виртуального адреса с физическим адресом
- 20. Сохранение удаленного виртуального адреса в DWORD?
- 21. преобразования виртуального адреса в физический адрес
- 22. Преобразование виртуального каталога веб-приложения в WiX
- 23. Преобразование символа в код виртуального ключа
- 24. Преобразование виртуального каталога в приложение на IIS
- 25. Преобразование формата MAC-адреса
- 26. Пытается найти ftp из Виртуального ядра Google VM
- 27. Как именно преобразовать виртуальные адреса ядра в физическую RAM?
- 28. Преобразование старого кода NuSoap в функции ядра ядра PHP
- 29. адреса дампа ядра не байт выровнены
- 30. Устройства виртуального ввода MacOS
Спасибо за ответ. После выполнения некоторых поисковых запросов я обнаружил, что существует #define PAGE_OFFSET, который имеет 3 ГБ (настраивается), и виртуальный адрес ядра имеет один к одному сопоставление с физическим адресом, полученным просто вычитанием PAGE_OFFSET из виртуального адреса ядра и, следовательно, без использования таблиц страниц. пожалуйста, поправьте меня, если я ошибаюсь. – user593575
Это простое сопоставление делает реализацию virt_to_phys() простой: как вы сказали, просто вычтите PAGE_OFFSET. Но пейджинг включен - это позволяет переносить виртуальные адреса на физическое оборудование, так как команды извлекаются и данные доступны. –
У меня есть ваше мнение. Таблицы страниц всегда используются, когда пейджинг включен, независимо от того, какой виртуальный адрес принадлежит ядру или пользовательскому пространству. (Увы, я не могу проголосовать, так как он требует минимум 15 очков) – user593575