Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция2.о.с..docx
Скачиваний:
2
Добавлен:
19.11.2019
Размер:
21.38 Кб
Скачать

Новая роль ос

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

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

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

Много пользователей

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

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

Процессоры Intel (начиная с i386) предоставляют возможность дополнительно устанавливать привилегии процесса на прямое использование каждого отдельного устройства (при помощи так называемой карты ввода-вывода задачи). Использует ли Windows эту возможность, я не знаю.

А какие права на использование устройств у ОС?

Для единообразного поведения оказалось удобным давать системе (или разным частям системы) права псевдопользователей. В UNIX система работает от имени пользователя root (точнее, от имени пользователя с идентификатором 0, если вдруг кому-то захочется этого пользователя переименовать). В Windows разные компоненты работают от имени разных пользователей.

Группы пользователей

Раздавать права на различные объекты большому количеству пользователей требует большого количества работы. Поэтому, права удобнее давать группам пользователей. Например, группа разработчиков что-то делает с одной совокупностью объектов. Удобнее дать права на эти объекты сразу всей группе.

Windows когда-то позволяла давать права на объекты только группам, право на полный доступ владельцу (создателю) задавать было нельзя, оно у него просто было. Позволяют ли Windows давать права отдельным пользователям сейчас, не знаю. Далее, в Windows, можно дать права на объект не одной группе. В UNIX такая возможность отсутствует, кроме того, чтобы избежать случайностей, владелец может некоторые права доступа у себя отнять (чтоб, например, случайно важный файл не перезаписать). Напомню, от имени пользователя root работает система, поэтому у него есть автоматически права на все. Значит, пользоваться его учетной записью следует максимально редко и максимально осторожно.

Знаия о пользователях UNIX хранит в файлах /etc/passwd (логины и др.) и /etc/shadow (пароли), о группах и их составе -- в файле /etc/group. Где все это хранит Windows -- мне неизвестно. Они, вообще, мало о себе рассказывают.

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