русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Целостность указателя и RPL


Дата добавления: 2015-06-12; просмотров: 433; Нарушение авторских прав


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

Распространенным примером может служить файловая системная процедура FREAD (идентификатор_файла, n_байтов, указатель_буфера). Эта гипотетическая процедура считывает данные из дискового файла в буфер, затирая любое ранее записаное содержимое этого буфера. Она обслуживает запросы программ, работающих на прикладном уровне, но сама должна работать на привилегированном уровне, чтобы всегда иметь возможность обслуживать ввод/вывод операционной системы. Если прикладная программа передаст этой процедуре неверный указатель буфера, который указывает на важные участки кода или данных в привилегированном адресном пространстве, процедура может выполнить действия, ведущие к разрушению системы.

Избежать подобной проблемы позволяет использование RPL. RPL позволяет назначить селектору переопределенную привилегированность. Такая переопределенная привилегированность представляет собой уровень привилегированности кодового сегмента, сгенерировавшего данный селектор сегмента. В вышеприведенном примере RPL должен представлять собой CPL прикладной программы, вызвавшей процедуру системного уровня. Процессор i486 автоматически проверяет любой загруженный в сегментный регистр селектор, определяя, допускает ли его RPL выполнить запрошенный доступ.

Для того, чтобы воспользоваться преимуществами, даваемыми такой проверкой процессором RPL, вызываемая процедура должна только проверять, чтобы все передаваемые ей селекторы сегмента имели RPL с тем же или меньшим уровнем привилегированности, что и CPL исходного источника запроса. Если селектор используется для доступа к сегменту, к которому источник запроса не может обратиться напрямую, т.е. RPL которого имеет меньшую привилегированность, чем DPL запрошенного сегмента, то при загрузке селектора в сегментный регистр генерируется исключение общей защиты.



ARPL (Настроить запрошенный уровень привилегированности) настраивает поле RPL селектора сегмента в большее из значений (меньший уровень привилегированности), выбирая из его исходного значения и значения поля RPL для селектора сегмента, записанного в регистр общего назначения. Поля RPL находятся в двух младших битах селектора сегмента и регистра. Последний обычно представляет собой копию регистра CS вызывающей процедуры в стеке. Если при такой настройке RPL селектора изменяется, то происходит установка флага ZF; в противном случае флаг ZF очищается.



<== предыдущая лекция | следующая лекция ==>
Проверка достоверности дескриптора | Проверка типа


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.172 сек.