|
Объектная модель
ADO в Delphi AJAX Android C++ CakePHP CMS COM CSS Delphi Flash Flex HTML Internet Java JavaScript MySQL PHP RIA SCORM Silverlight SQL UML XML Бази даних Веб-розробка Генетичні алгоритми ГІС Гітара Дизайн Економіка Інтелектуальні СДН Колір Масаж Математика Медицина Музика Нечітка логіка ООП Патерни Подання знань Розкрутка сайту, SEO САПР Сесії в PHP Системне програмування Системний аналіз Тестологія Тестування ПЗ Фреймворки Штучний інтелект
|
Знання
→
Архитектура пк
→
ДИСПЕТЧЕР ОБЪЕКТОВ И КОНТРОЛЬ ДОСТУПА
→
Объекты исполнительной системы NT
→
Использование объектов
Объектная модель
Как и в большинстве ОС, единицей работы в NT является процесс. Каждому процессу выделяется набор ресурсов, позволяющих ему выполнять свою работу: поток, чтобы можно было выполнять программы, и адресное пространство для хранения кода и данных. В процессе работы поток может запросить для своего процесса дополнительные ресурсы путем создания объектов или открытия описателей существующих объектов. Описатели объекта уникальны для процесса и указывают на доступ процесса к системным ресурсам. Они могут быть использованы для вызова базовых сервисов объекта, осуществляющих действия с ресурсами. Подсистема Win32 — это процесс NT, который выступает как сервер для приложений Win32. Когда приложение вызывает функцию API Win32, которая прямо или косвенно создает объект, подсистема Win32 обращается к некоему объектному сервису NT. Здесь в дело вступает диспетчер объектов NT, который выполняет следующие функции:
Все процессы пользовательского режима, включая подсистемы среды, должны получить описатель объекта, прежде чем их потоки смогут использо-вать этот объект. Идея применения описателей для манипулирования систем-ными ресурсами отнюдь не нова. Библиотеки периода выполнения С и Паскаля (а также других языков), например, возвращают описатели при открытии файлов. Аналогично, приложения Win32 используют различные типы описателей для управления окнами, курсором мыши и значками. В обоих случаях описатели служат косвенными указателями на системные ресурсы; эта косвенность предотвращает непосредственный доступ приложений к сис-темным структурам данных. Для исполнительной системы NT описатели объектов создают дополнительные преимущества. Во-первых, нет никаких различий между описателем файла, описателем события и описателем процесса (за исключением того, на что они ссылаются). Не нужно запоминать десять разных механизмов для ра-боты с десятью разными типами объектов. Во-вторых, диспетчеру объектов принадлежит исключительное право создания описателей и поиска объекта по его описателю. Это означает, что любое действие в пользовательском режиме, затрагивающее некоторый объект, может контролироваться диспетчером объектов. Благодаря этому эффекту шлюза диспетчер объектов отвечает трем важным целям проекта Windows NT:
Первая задача, защита объектов, и составляет суть системы защиты Windows NT. Ее реализация многое заимствует из файловой модели и до некоторой степени видима программам, использующим API Win32. Ниже дается краткое введение в тему защиты объектов исполнительной системы NT, к которой мы еще обратимся далее в этой главе. Вернемся к аналогии с файлами; при открытии файла необходимо указать, собираетесь ли Вы использовать его для чтения или для записи. Если Вы попытаетесь записать в файл, который открыт только для чтения, то получите ошибку. Аналогично, в исполнительной системе NT, когда процесс создает объект или открывает описатель существующего объекта, он должен задать набор запрашиваемых прав доступа (desired access rights) — т.е. указать, что он намерен делать с объектом. Можно запросить либо набор стандартных прав доступа (таких как чтение, запись или исполнение), применимых к объектам всех типов, либо специфических прав доступа, состав которых зависит от типа объекта. Например, процесс может запросить доступ для удаления файлового объекта или дописывания к его концу. Аналогично, он может запросить возможность приостанавливать или завершать объект-поток. Когда процесс открывает описатель объекта, диспетчер объектов вызывает справочный монитор защиты (security reference monitor) — часть системы защиты, работающую в режиме ядра — и посылает ей набор запрашиваемых процессом прав доступа. Справочный монитор защиты проверяет, разрешает ли дескриптор защиты объекта (security descriptor) доступ, запрашиваемый процессом 3. Если да, то справочный монитор защиты возвращает набор прав доступа, предоставленных процессу (granted access rights), и диспетчер объектов сохраняет их в создаваемом описателе объекта4. После этого всякий раз, когда потоки процесса используют описатель, диспетчер объектов быстро проверяет, соответствует ли хранящийся в описателе набор предоставленных прав доступа типу использования, который подразумевается объектным сервисом, вызванным потоком. Например, если процесс запрашивал доступ по чтению к объекту-секции, а затем вызвал сервис для записи в эту секцию, то данный вызов завершится с ошибкой. Способ, которым система защиты определяет, кто к каким объектам имеет доступ, рассматривается в разд. 3.3. Вторая и третья задача, решаемые с использованием описателей объектов, — удержание объектов и учет ресурсов — описаны в разд. 3.2.2.1 и 3.2,2.2. 3 Подсистема Win32 позволяет прикладному процессу назначать объектам дескрипторы защиты, но не требует этого. Если дескриптор защиты не назначен приложением, то подсистема Win32 делает это за него. 4 Это упрощенное представление об истинном механизме сохранения, который более подробно описан далее в этой главе. Зверніть увагу на додаткові посиланняЯкщо вас цікавить...Головний розділзагрузка...
|
Сторінки, близькі за змістом
|
|
Copyright © 2008—2026 Портал Знань.
При використанні матеріалів посилання, для інтернет-ресурсів — гіперпосилання, на Znannya.org обов'язкове.
Зв'язок
|
НТУУ "КПІ" Інженерія програмного забезпечення КПІ Лабораторія СЕТ |
|