Встроенные средства защиты
Большинство операционных систем организует свои функции в виде набора процедур, которые могут быть вызваны из различных программ. В незащищенной системе прикладные программы могут вызывать процедуры ОС обычными командами CALL и INT, как это и делается в MS DOS. Такой подход является быстрым, но требует от пользовательских программ, чтобы в них не было ошибок, которые могли бы повлиять на работу системы. В большинстве случаев по такому принципу построены встроенные системы различного назначения. В незащищенной системе ничто не запрещает “некорректной” задаче вызвать процедуру ОС и как-нибудь видоизменить (испортить) ее.
Строго говоря, операционная система MS DOS, использующая реальный режим, не защищена от прикладных программ. MS DOS не имеет сколько-нибудь надежного механизма защиты памяти. в MS DOS все основано на выполнении программами “джентльменского соглашения” о не разрушении операционной системы. Если программа не изменяет содержимого сегментных регистров, она работает с теми сегментами памяти, которые ей выделены операционной системой. Однако ничто не мешает любой программе загрузить в сегментные регистры любое значение, в том числе адреса сегментов операционной системы, и это - существенный недостаток MS DOS.
Чтобы исключить подобные действия “злонамеренных” пользовательских программ, современные компьютеры содержат встроенные средства защиты. Многие большие и мини ЭВМ реализуют схему “супервизор - пользователь”. ОС работает в привилегированном режиме “супервизор”, и ей доступны все ресурсы компьютера: вся память, все команды процессора и т.п. Пользовательские программы работают в режиме “ пользователь” и имеют доступ только к тем участкам памяти, которые выделены им ОС. Защита накладывает на обычные программы, не входящие в ОС, три типа ограничений:
- обычным программам запрещается выполнять некоторые команды;
- обычным программам должны быть недоступны определенные области памяти;
- в программы ОС можно войти только в разрешенных точках входа. В защищенной системе пользовательские программы не могут читать и записывать данные в более привилегированные программы ОС. Кроме того, из пользовательских программ нельзя непосредственно вызывать процедуры ОС. Используя механизм защиты, процессор автоматически предотвращает выполнение в пользовательской программе тех операций, которые должны выполняться программами ОС.
Использование защиты актуально в однопользовательских системах и совершенно необходимо и обязательно в многопользовательских и многозадачных системах.
Для операционных систем, обслуживающих совокупность пользователей, выделяют ряд базовых принципов, важнейшими из которых являются: модульность, перемещаемость, защита.
Модульность означает, что система состоит из модулей, для которых разработан стандарт на межмодульные связи.
Перемещаемость предполагает построение модулей безотносительно к месту их загрузки и исполнения.
Принципы модульности и перемещаемости обеспечили возможность организовать эффективную работу коллективов программистов при создании сложных программных систем, в том числе, операционных систем.
Принцип защиты позволяет оградить программы пользователей и программы операционной системы от взаимного влияния. Защита исключает возможность для пользователя преднамеренно или ошибочно модифицировать программу или данные другого пользователя; прочесть данные другого пользователя без разрешения; снизить возможности другого пользователя по использованию процессора, памяти или других ресурсов.
В то же время у различных пользователей могут быть и общие интересы (совместное использование общих массивов, процедур и т.п.). Поэтому в защищенной системе необходимо разрешить пользовательской программе доступ к некоторым операциям (процедурам) ОС, которые ей нужны от ОС. Для этого ОС определяет одну или несколько разрешенных точек входа в программы ОС. Благодаря этому пользовательские программы могут получить от ОС только те обслуживания, которые этим программам разрешено оказывать.
Проблема защиты является многогранной и включает в себя такие аспекты как привилегии, защита областей памяти, защита файлов, защита от зацикливаний и т. п. Для обнаружения и идентификации ошибок процессоры 80х86 фирмы Intel сконструированы со встроенным механизмом защиты. Этой же цели способствует организация памяти, предусматривающая сегментацию и взаимное разделение адресных пространств различных задач с помощью дескрипторных таблиц. В защищенном режиме обычным пользовательским программам запрещены модификация областей памяти, принадлежащих операционной системе, и доступ к областям памяти, выделенным задаче, со стороны других задач (пользователей). Другими словами, в защищенном режиме реализован принцип разделения адресного пространства пользовательских программ от адресного пространства операционной системы и адресных пространств отдельных пользователей друг от друга. Для эффективного управления всей системой программам ОС разрешен доступ к памяти всех программ, а пользовательским программам для получения необходимого обслуживания от ОС обеспечен доступ к программам ОС в разрешенных точках входа. Для поддержки указанных функций защиты в систему команд процессора введены некоторые привилегированные команды, которые доступны только операционной системе и не могут выполняться в прикладных программах и, кроме того, в структуре процессора имеется ряд регистров, к которым закрыт доступ со стороны пользовательских программ.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.