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