Организация ввода-вывода. Часть 2. Драйверы для WINDOWS NT. Рощин А.В. - 10 стр.

UptoLike

Составители: 

10
каждый элемент таблицы страниц содержит бит, указывающий на
возможность записи в соответствующую страницу памяти.
Не надо забывать, что каждый элемент таблицы страниц содержит
также бит, указывающий, представлена ли данная страница в оперативной
памяти.
Два бита разрешения доступа и записи формируют следующий набор
правил работы со страницами:
страница всегда может
быть прочитана из режима ядра,
на страницу может быть произведена запись из режима ядра,
только если установлен бит разрешения записи,
страница может быть прочитана из пользовательского режима,
только если установлен бит доступа к странице из
пользовательского режима,
на страницу может быть произведена запись из режима
пользователя, только
если установлены оба бита (разрешения
записи и доступ из пользовательского режима),
если страница может быть прочитана, она может быть исполнена.
По умолчанию страницы памяти с исполняемым кодом не имеют
разрешения на запись. Поэтому при попытке использования селектора
данных для модификации кода будет сгенерировано исключение.
Для того, чтобы ядро операционной системы
(Windows NT) –
компоненты самой операционной системы и драйверывсегда
располагались по фиксированным виртуальным адресам, независимо от
текущего контекста памяти, в NT осуществляется одинаковая трансляция
для верхних двух гигабайт диапазона виртуальных адресов.
Для защиты кода операционной системы соответствующие элементы
таблицы трансляции виртуальных адресов в физические помечены как
недоступные из пользовательского режима.
     − каждый элемент таблицы страниц содержит бит, указывающий на
          возможность записи в соответствующую страницу памяти.
     Не надо забывать, что каждый элемент таблицы страниц содержит
также бит, указывающий, представлена ли данная страница в оперативной
памяти.
     Два бита разрешения доступа и записи формируют следующий набор
правил работы со страницами:
     − страница всегда может быть прочитана из режима ядра,
     − на страницу может быть произведена запись из режима ядра,
          только если установлен бит разрешения записи,
     − страница может быть прочитана из пользовательского режима,
          только   если     установлен     бит   доступа   к   странице    из
          пользовательского режима,
     − на страницу может быть произведена запись из режима
          пользователя, только если установлены оба бита (разрешения
          записи и доступ из пользовательского режима),
     − если страница может быть прочитана, она может быть исполнена.
     По умолчанию страницы памяти с исполняемым кодом не имеют
разрешения на запись. Поэтому при попытке использования селектора
данных для модификации кода будет сгенерировано исключение.
     Для того, чтобы ядро операционной системы (Windows NT) –
компоненты     самой      операционной     системы   и   драйверы   –   всегда
располагались по фиксированным виртуальным адресам, независимо от
текущего контекста памяти, в NT осуществляется одинаковая трансляция
для верхних двух гигабайт диапазона виртуальных адресов.
     Для защиты кода операционной системы соответствующие элементы
таблицы трансляции виртуальных адресов в физические помечены как
недоступные из пользовательского режима.



                                      10