функция remap_pfn_range
(используется в вызове mmap
в драйвере) может быть использована для отображения памяти ядра в пространство пользователя. Как это делается? Может ли кто-нибудь объяснить точные шаги? Режим ядра - это привилегированный режим (PM), а пространство пользователя - непривилегированный (NPM). В PM CPU может получить доступ ко всей памяти, в то время как в NPM некоторая память ограничена - к ней CPU не может получить доступ. Когда вызывается remap_pfn_range
, как тот диапазон памяти, который был ограничен только в PM, теперь доступен в пространстве пользователя?
Если посмотреть на код remap_pfn_range
, то там есть pgprot_t struct
. Это структура, связанная с отображением защиты. Что такое отображение защиты? Это ответ на вопрос выше?