Справочник Novell Netware 4

Доменная защита



Используя для реализации доменной защиты страничную архитектуру,
NetWare и NLM-модули NetWare могут адресоваться к 4-килобайтовым
блокам памяти или страницам оперативной памяти (ОЗУ). Каждая страница
памяти может быть помечена как присутствующая или отсутствующая,
защищенная от чтения, от записи, доступная для чтения или доступная
для записи.

NLM-модули или процессы получают доступ к памяти, используя двухуровневую
таблицу страниц, показанную на следующем рисунке. Первый уровень
- это таблица каталога страниц Page Directory Table, которую имеет
каждый домен. Page Directory Table каждого домена содержит адреса
таблиц страниц домена, которые составляют второй уровень. Таблицы


страниц содержат адреса 4-килобайтовых блоков или страниц памяти,
используемых NLM.

На основе адреса таблицы в таблице страниц аппаратное обеспечение
Intel транслирует линейный адрес в соответствующий физический
адрес. Использование двухуровневой таблицы страниц позволяет процессу
адресоваться к памяти, которая физически не является непрерывной,
как к логически непрерывному диапазону памяти.

Двухуровневая таблица страниц
2-ой уровень: таблица
1-ый уровень: таблицы страниц Page Table,
Page Directory Table содержащая блоки 4-килобайтовые
(одна на каждый домен) памяти по 4К. страницы памяти,
+---------------+ +--------------+ используемые NLM
¦Запись каталога¦--+ ¦ ¦ или процессом.
¦ страниц ¦ ¦ ¦ ¦ +--------------+
+---------------+ ¦ +--------------+ +-->¦ ¦
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
¦ ¦ ¦ ¦ ¦ ¦ +--------------+
+---------------+ ¦ +--------------+ ¦ +--------------+
¦ ¦ ¦ ¦Запись таблицы¦-+ +>¦ ¦
¦ ¦ ¦ ¦ страниц ¦ ¦ ¦ ¦
+---------------+ ¦ +--------------+ ¦ +--------------+
¦Запись каталога¦-+¦ ¦Запись таблицы¦---+ +--------------+
¦ страниц ¦ ¦¦ ¦ страниц ¦ +->¦ ¦
+---------------+ ¦¦ +--------------+ ¦ ¦ ¦
¦ ¦ ¦¦ ¦Запись таблицы¦--+ +--------------+
¦ ¦ ¦¦ ¦ страниц ¦ +--------------+
+---------------+ ¦¦ +--------------+ +>¦ ¦
¦ ¦ ¦+-->¦Запись таблицы¦---+ ¦ ¦

¦ ¦ ¦ ¦ страниц ¦ +--------------+
+---------------+ ¦ +--------------+ +--------------+
¦ ¦ ¦ +--------------+ +-->¦ ¦
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
+---------------+ ¦ ¦ ¦ ¦ +--------------+
¦ ¦ ¦ +--------------+ ¦ +--------------+
¦ ¦ ¦ ¦ ¦ ¦+->¦ ¦
+---------------+ ¦ ¦ ¦ ¦¦ ¦ ¦
¦ ¦ ¦ +--------------+ ¦¦ +--------------+
¦ ¦ ¦ ¦Запись таблицы¦-+¦ +--------------+
+---------------+ ¦ ¦ страниц ¦ ¦+>¦ ¦
¦ +--------------+ ¦¦ ¦ ¦
¦ ¦Запись таблицы¦--+¦ +--------------+
¦ ¦ страниц ¦ +-+ +--------------+
¦ +--------------+ ¦ +>¦ ¦
¦ ¦Запись таблицы¦-+ ¦ ¦ ¦
¦ ¦ страниц ¦ ¦ +--------------+
¦ +--------------+ ¦
+--->¦Запись таблицы¦---+
¦ страниц ¦
+--------------+

Каждый диапазон памяти или домен в NetWare 4.0 отображается с
помощью своей таблицы. Таким образом, эта таблица страниц определяет
адреса физической памяти, доступные для этого домена. Работающий
в домене процесс не может видеть адреса памяти, не отображенные
явно на этот домен. Следовательно, для одного домена пространство
памяти (адресов) других доменов логически не существует.

Как уже упоминалось, NetWare поддерживает в данный момент только
домены OS и OS_Protected, однако в будущих версиях NetWare, где
домены будут реализованы полностью, коммуникации между доменами
будут осуществляться с помощью механизма копирования, который
называется междоменным обращением XDC (Cross-Domain-Call). Средство
копирования XDC моделируют технологию вызова удаленной процедуры
RPC (Remote Procedure Call).

Хранимая в каждом домене информация включает в себя схему точек
входа домена для механизма копирования XDC. Когда процесс вызывает
одну из этих точек входа, механизм XDC будет получать управление
и копировать стек и другую информацию вызывающей процедуры в специальную
область памяти, образующую шлюз вызова.

Шлюз вызова позволяет механизму копирования XDC передавать выполнение
(от вызывающего процесса в вызываемый и обратно) без возможного
нарушения границ защиты памяти сервера.Оба процесса, вызываемый
и вызывающий, при операциях механизма XDC, который является в
итоге источником параметров стека и конечным назначением возвращаемых
значений, игнорируются.

В итоге селекторы сегмента с их уровнями привилегий используются
для предотвращения непреднамеренного или намеренного обращения
к памяти вне диапазона адресов домена. Они предотвращают также
увеличение структур данных за определенные ранее границы.

Каждый домен в Page Directory Table и таблицы страниц, на которые
он указывает, используются для отображения различных диапазонов
памяти в различные домены. Эти таблицы и флаги, обеспечивающие
защиту по чтению и записи для отдельных страниц, предотвращают
доступ любого домена к страницам памяти другого домена.

Содержание раздела