- •С. Ф. Храпский операционные системы, среды и оболочки основные теоретические сведения
- •Оглавление
- •Предисловие
- •Введение
- •1. Управление процессами в автономных однопроцессорных вычислительных машинах
- •1.1. Понятия вычислительного процесса и ресурса
- •1.2. Планирование процессов
- •1.3. Межпроцессное взаимодействие
- •1.4. Понятия потока («нити») и многопоточности
- •Контрольные вопросы и задания
- •2. Управление ресурсами в автономных однопроцессорных компьютерах
- •2.1. Управление памятью
- •Управление вводом-выводом
- •2.3. Управление файлами и файловая система
- •Контрольные вопросы и задания
- •3. Управление процессами и ресурсами в автономных многопроцессорных вычислительных машинах
- •3.1. Реализация операционных систем многопроцессорных вычислительных машин
- •Планирование и синхронизация в многопроцессорных вычислительных машинах
- •Контрольные вопросы и задания
- •4. Управление процессами и ресурсами в многомашинных вычислительных системах
- •4.1. Способы организации управления процессами
- •И ресурсами в многомашинных вычислительных системах
- •4.2. Понятия сетевой и распределенной операционных систем
- •4.3. Варианты реализации распределенных операционных систем
- •Контрольные вопросы и задания
- •5. Общие концепции разработки операционных систем
- •5.1. Основные принципы построения операционных систем
- •5.2. Архитектурные особенности проектирования операционных систем
- •5.3. Принципы построения системных и прикладных программных интерфейсов
- •Контрольные вопросы и задания
- •6. История развития операционных систем и эволюция их функциональных характеристик
- •6.1. Операционные системы разных этапов разработки вычислительных машин
- •6.2. История развития и характеристики операционных систем unix
- •6.3. История развития и характеристики операционных систем семейства Windows
- •Контрольные вопросы и задания
- •7. Пример практической реализации операционной системы: unix
- •7.1. Обзор системы unix
- •7.1.1. Общие представления
- •7.1.2. Интерфейсы системы unix
- •7.1.3. Оболочка и утилиты системы unix
- •7.1.4. Структура ядра системы unix
- •7.2. Процессы в unix
- •7.2.1. Основные понятия
- •7.2.2. Реализация процессов в unix
- •7.2.3. Планирование в системе unix
- •7.3. Управление памятью в unix
- •7.3.1. Основные понятия
- •7.3.2. Реализация управления памятью в unix
- •7.4. Ввод-вывод в системе unix
- •7.4.1. Основные понятия
- •7.4.2. Реализация ввода-вывода в системе unix
- •7.4.3. Потоки данных в unix
- •7.5. Файловые системы unix
- •7.5.1. Основные понятия
- •7.5.2. Реализация классической файловой системы unix
- •7.5.3. Реализация файловой системы Berkeley Fast
- •7.5.4. Реализация файловой системы Linux
- •7.5.5. Реализация файловой системы nfs
- •7.6. Безопасность в unix
- •7.6.1. Основные понятия
- •7.6.2. Реализация безопасности в unix
- •Контрольные вопросы и задания
- •8. Пример практической реализации операционной системы: Windows 2000
- •8.1. Обзор структуры операционной систем Windows 2000
- •8.1.1. Структура системы
- •8.1.2. Реализация объектов
- •8.1.3. Подсистемы окружения
- •8.2. Процессы и потоки в Windows 2000
- •8.2.1. Основные понятия
- •8.2.2. Межпроцессное взаимодействие
- •8.2.3. Реализация процессов и потоков
- •8.2.4. Загрузка Windows 2000
- •8.3. Управление памятью в Windows 2000
- •8.3.1. Основные понятия
- •8.3.2. Реализация управления памятью
- •8.4. Ввод-вывод в системе Windows 2000
- •8.4.1. Основные понятия
- •8.4.2. Реализация ввода-вывода в Windows 2000
- •8.5. Файловые системы Windows 2000
- •8.5.1. Файловые системы типа fat
- •8.5.2. Файловая система типа ntfs
- •8.6. Безопасность в Windows 2000
- •8.6.1. Основные понятия
- •8.6.2. Реализация защиты в Windows 2000
- •Контрольные вопросы и задания
- •Заключение
- •Библиографический список
- •Словарь терминов и определений
- •Алфавитно-предметный указатель
- •Храпский Сергей Филиппович операционные системы, среды и оболочки основные теоретические сведения
- •644099, Омск, ул. Красногвардейская, 9
8.6.2. Реализация защиты в Windows 2000
Защита в автономной системе Windows 2000 реализуется при помощи нескольких компонентов. Регистрацией в системе управляет программа winlogon, а аутентификацией занимаются Isass и msgina.dll. Результатом успешной регистрации в системе является новая оболочка с ассоциированным с ней маркером доступа. Этот процесс использует в реестре ключи SECURITY и SAM. Первый ключ определяет общую политику безопасности, а второй ключ содержит информацию о защите для индивидуальных пользователей.
Как только пользователь регистрируется в системе, выполняется операция защиты при открытии объекта. Для каждого вызова ОрепХХХ требуется имя открываемого объекта и набор прав доступа к нему. Во время обработки процедуры открытия объекта менеджер безопасности проверяет наличие у вызывающего процесса соответствующих прав доступа. Для этого он просматривает все маркеры доступа вызывающего процесса, а также список DACL, ассоциированный с объектом. Он просматривает по очереди элементы списка ACL. Как только он находит запись, соответствующую идентификатору SID вызывающего процесса или одной из его групп, поиск прав доступа считается законченным. Если вызывающий процесс обладает необходимыми правами, объект открывается, в противном случае в открытии объекта отказывается.
Помимо разрешающих записей, списки DACL могут также содержать запрещающие записи. Поскольку менеджер безопасности прекращает поиск, наткнувшись на первую запись с указанным идентификатором, запрещающие записи помещаются в начало списка DACL, чтобы пользователь, которому строго запрещен доступ к какому-либо объекту, не смог получить его как член какой-либо группы, которой этот доступ предоставлен.
После того как объект открыт, дескриптор объекта возвращается вызывающему процессу. При последующих обращениях проверяется, входит ли данная операция в число операций, разрешенных в момент открытия объекта, чтобы, например, не допустить записи в файл, открытый для чтения.
Резюме
Структура операционной системы Windows 2000 включает в себя уровень аппаратных абстракций HAL, ядро, исполняющую систему и тонкий уровень системных служб, перехватывающий входящие системные вызовы. Кроме того, операционная система содержит множество драйверов устройств, включая файловую систему и интерфейс графических устройств GDI. Уровень HAL скрывает от верхних уровней определенные различия в аппаратуре. Ядро пытается скрыть от исполняющей системы остальные различия, чтобы сделать ее почти полностью машинно-независимой.
В основе исполняющей системы лежат объекты памяти. Пользовательские процессы создают их и получают дескрипторы, позволяющие управлять этими объектами. Компоненты исполняющей системы также могут создавать объекты. Менеджер объектов управляет пространством имен, в которое могут добавляться объекты для возможности их поиска по имени.
Операционная система Windows 2000 поддерживает процессы, задания, потоки и волокна. У процессов есть виртуальные адресные пространства, кроме того, процессы являются контейнерами ресурсов. Потоки представляют собой единицы исполнения и планируются операционной системой. Волокна являются упрощенными потоками, планируемыми полностью в пространстве пользователя. Задания представляют собой наборы процессов и используются для выделения квот ресурсов. При планировании используется приоритетный алгоритм, в котором управление получает готовый поток с максимальным приоритетом.
Операционной системой Windows 2000 поддерживается виртуальная память с подкачкой по требованию. Алгоритм подкачки основан на понятии рабочего набора. Система управляет несколькими списками свободных страниц, так что когда происходит страничное прерывание, как правило, у системы уже есть доступная страница. Списки свободных страниц получают страницы, отнимаемые у рабочих наборов при помощи сложных алгоритмов, пытающихся изымать в первую очередь давно не использовавшиеся страницы.
Ввод-вывод осуществляется драйверами устройств, согласующимися с моделью Windows Driver Model. При запуске каждого драйвера инициализируется объект драйвера, содержащий адреса процедур, к которым может обращаться операционная система, чтобы добавить новое устройство или выполнить операцию ввода-вывода. Драйверы могут собираться в стеки или действовать как фильтры.
В основе файловой системы NTFS лежит главная файловая таблица MFT, в которой содержится по одной записи для каждого файла или каталога. У каждого файла есть множество атрибутов, которые могут храниться в записи таблицы MFT или вне таблицы – на диске. Среди прочих возможностей файловая система NTFS поддерживает сжатие и шифрование.
Защита основывается на списках управления доступом ACL. У каждого процесса есть маркер управления доступом, идентифицирующий процесс, а также указывающий, какими особыми привилегиями он обладает. С каждым объектом ассоциирован дескриптор защиты. Дескриптор защиты указывает на список разграничительного управления доступом DACL, содержащий записи списка ACL, разрешающие или запрещающие доступ к этому объекту отдельным пользователям или группам.