Тема: Структура Тема: Структура
операционной системы операционной системы
Цель занятия:Цель занятия:
1. Ядро и вспомогательные модули ОС1. Ядро и вспомогательные модули ОС
2. Ядро и привилегированный режим2. Ядро и привилегированный режим
3. Многослойная структура ОС3. Многослойная структура ОС
4 Концепция микроядерной архитектуры4 Концепция микроядерной архитектуры
5.Стандарты совместимости и 5.Стандарты совместимости и
переносимостипереносимости
П.1. Ядро и вспомогательные П.1. Ядро и вспомогательные
модули ОСмодули ОС
Наиболее общим подходом к Наиболее общим подходом к
структуризации операционной системы структуризации операционной системы
является разделение всех ее модулей является разделение всех ее модулей
на две группы:на две группы:
ядро ядро модули ОС, выполняющие модули ОС, выполняющие
основные функции;основные функции;
модули,модули, выполняющие выполняющие
вспомогательные функции ОС.вспомогательные функции ОС.
Состав ядраСостав ядра
Модули ядра выполняют такие базовые Модули ядра выполняют такие базовые
функции ОС, как управление процессами, функции ОС, как управление процессами,
памятью, устройствами ввода-вывода.памятью, устройствами ввода-вывода.
В состав ядра входят функции, решающие В состав ядра входят функции, решающие
внутрисистемные задачи организации внутрисистемные задачи организации
вычислительного процесса, такие, как вычислительного процесса, такие, как
переключение контекстов, загрузка/выгрузка переключение контекстов, загрузка/выгрузка
страниц, обработка прерываний. Эти функции страниц, обработка прерываний. Эти функции
недоступны для приложений. недоступны для приложений.
Другой класс функций ядра служит для Другой класс функций ядра служит для
поддержки приложений, создавая для них так поддержки приложений, создавая для них так
называемую называемую прикладную программную среду.прикладную программную среду.
Приложения могут обращаться к ядру с Приложения могут обращаться к ядру с
запросами запросами системными вызовамисистемными вызовами для для
выполнения тех или иных действий, выполнения тех или иных действий,
например, для открытия и чтения файла, например, для открытия и чтения файла,
вывода графической информации и т. д вывода графической информации и т. д
Функции ядра, которые могут вызываться Функции ядра, которые могут вызываться
приложениями, образуют интерфейс приложениями, образуют интерфейс
прикладного программирования прикладного программирования APIAPI..
Вспомогательные модули ОС обычно Вспомогательные модули ОС обычно
подразделяются на следующие группы:подразделяются на следующие группы:
утилиты утилиты программы, решающие отдельные программы, решающие отдельные
задачи управления и сопровождения задачи управления и сопровождения
компьютерной системы, такие, как программы компьютерной системы, такие, как программы
архивирования данных;архивирования данных;
системные обрабатывающие программы системные обрабатывающие программы
текстовые или графические редакторы, текстовые или графические редакторы,
компиляторы, отладчики;компиляторы, отладчики;
программы предоставления пользователю программы предоставления пользователю
дополнительных услуг – дополнительных услуг – специальный вариант специальный вариант
пользовательского интерфейса, калькулятор;пользовательского интерфейса, калькулятор;
библиотеки процедур библиотеки процедур различного назначения, различного назначения,
упрощающие разработку приложений, например упрощающие разработку приложений, например
библиотека математических функций и т. д.библиотека математических функций и т. д.
Для обеспечения высокой скорости Для обеспечения высокой скорости
работы ОС все модули ядра или работы ОС все модули ядра или
большая их часть постоянно находятся большая их часть постоянно находятся
в оперативной памяти, то есть являются в оперативной памяти, то есть являются
резидентными.резидентными.
Модули ОС, оформленные в виде Модули ОС, оформленные в виде
утилит, системных обрабатывающих утилит, системных обрабатывающих
программ и библиотек, обычно программ и библиотек, обычно
загружаются в оперативную память загружаются в оперативную память
только на время выполнения своих только на время выполнения своих
функций, то есть являютсяфункций, то есть являются
транзитными.транзитными.
П.2. Ядро и привилегированный П.2. Ядро и привилегированный
режимрежим
Для надежного управления ходом Для надежного управления ходом
выполнения приложений операционная выполнения приложений операционная
система должна иметь по отношению к система должна иметь по отношению к
приложениям определенные привилегии. приложениям определенные привилегии.
Аппаратура компьютера должна Аппаратура компьютера должна
поддерживать как минимум два режима поддерживать как минимум два режима
работы работы пользовательский режим (пользовательский режим (user user
modemode) ) и и привилегированный режим, привилегированный режим, который который
также называют также называют режимом ядра (режимом ядра (kernel modekernel mode) )
или или режимом супервизора (режимом супервизора (supervisor modesupervisor mode).).
Приложения ставятся в подчиненное Приложения ставятся в подчиненное
положение за счет запрета выполнения положение за счет запрета выполнения
в пользовательском режиме некоторых в пользовательском режиме некоторых
критичных команд, связанных с критичных команд, связанных с
переключением процессора с задачи на переключением процессора с задачи на
задачу, управлением устройствами задачу, управлением устройствами
ввода-вывода, доступом к механизмам ввода-вывода, доступом к механизмам
распределения и защиты памяти. распределения и защиты памяти.
Выполнение некоторых инструкций в Выполнение некоторых инструкций в
пользовательском режиме запрещается пользовательском режиме запрещается
безусловно (очевидно, что к таким безусловно (очевидно, что к таким
инструкциям относится инструкция перехода инструкциям относится инструкция перехода
в привилегированный режим), тогда как в привилегированный режим), тогда как
другие запрещается выполнять только при другие запрещается выполнять только при
определенных условиях. определенных условиях.
Полный контроль ОС над доступом к памяти Полный контроль ОС над доступом к памяти
достигается за счет того, что инструкции достигается за счет того, что инструкции
конфигурирования механизмов защиты конфигурирования механизмов защиты
памяти разрешается выполнять только в памяти разрешается выполнять только в
привилегированном режиме.привилегированном режиме.
Системный вызов привилегированного ядра инициирует Системный вызов привилегированного ядра инициирует
переключение процессора из пользовательского режима переключение процессора из пользовательского режима
в привилегированный, а при возврате к приложению в привилегированный, а при возврате к приложению
переключение из привилегированного режима в переключение из привилегированного режима в
пользовательский. пользовательский.
Во всех типах процессоров из-за дополнительной Во всех типах процессоров из-за дополнительной
двукратной задержки переключения переход на двукратной задержки переключения переход на
процедуру со сменой режима выполняется медленнее, процедуру со сменой режима выполняется медленнее,
чем вызов процедуры без смены режима.чем вызов процедуры без смены режима.
Архитектура ОС, основанная на Архитектура ОС, основанная на
привилегированном ядре и приложениях привилегированном ядре и приложениях
пользовательского режима, считается пользовательского режима, считается
классическойклассической
Трехслойная Трехслойная
схема схема
вычислительной вычислительной
системысистемы
УтилитыУтилиты
Ядро ОС
Аппаратура
П.3. Многослойная структура ОСП.3. Многослойная структура ОС
ЯдроЯдро может состоять из следующих может состоять из следующих
слоев:слоев:
Средства аппаратной поддержкиСредства аппаратной поддержки
Машинно-зависимые компоненты ядраМашинно-зависимые компоненты ядра
Базовые механизмы ядраБазовые механизмы ядра
Менеджеры ресурсовМенеджеры ресурсов
Интерфейс системных вызововИнтерфейс системных вызовов
Средства аппаратной поддержки ОССредства аппаратной поддержки ОС
До сих пор об операционной системе До сих пор об операционной системе
говорилось как о комплексе программ, но говорилось как о комплексе программ, но
часть функций ОС может выполняться и часть функций ОС может выполняться и
аппаратными средствами. аппаратными средствами.
Типичный набор средств аппаратной поддержки Типичный набор средств аппаратной поддержки
ОС:ОС:
средства поддержки привилегированного средства поддержки привилегированного
режима;режима;
средства трансляции адресов;средства трансляции адресов;
средства переключения процессов;средства переключения процессов;
система прерываний;система прерываний;
системный таймер;системный таймер;
средства защиты областей памяти.средства защиты областей памяти.
Машинно-зависимые Машинно-зависимые компонентыкомпоненты ОС ОС
Этот слой образуют программные модули, в Этот слой образуют программные модули, в
которых отражается специфика аппаратной которых отражается специфика аппаратной
платформы компьютера. В идеале этот слой платформы компьютера. В идеале этот слой
полностью экранирует вышележащие слои полностью экранирует вышележащие слои
ядра от особенностей аппаратуры. Это ядра от особенностей аппаратуры. Это
позволяет разрабатывать вышележащие слои позволяет разрабатывать вышележащие слои
на основе машинно-независимых модулей, на основе машинно-независимых модулей,
существующих в единственном экземпляре существующих в единственном экземпляре
для всех типов аппаратных платформ, для всех типов аппаратных платформ,
поддерживаемых данной ОС.поддерживаемых данной ОС.
Базовые механизмы ядраБазовые механизмы ядра
Этот слой выполняет наиболее примитивные Этот слой выполняет наиболее примитивные
операции ядра, такие, как программное операции ядра, такие, как программное
переключение контекстов процессов, переключение контекстов процессов,
диспетчеризацию прерываний, перемещение диспетчеризацию прерываний, перемещение
страниц из памяти на диск и обратно и т. п. страниц из памяти на диск и обратно и т. п.
Модули данного слоя не принимают решений Модули данного слоя не принимают решений
о распределении ресурсов о распределении ресурсов они только они только
отрабатывают принятые «наверху» решения, отрабатывают принятые «наверху» решения,
что и дает повод называть их что и дает повод называть их
исполнительными механизмами для модулей исполнительными механизмами для модулей
верхних слоев. верхних слоев.
Менеджеры ресурсовМенеджеры ресурсов
Этот слой состоит из мощных Этот слой состоит из мощных
функциональных модулей, реализующих функциональных модулей, реализующих
стратегические задачи по управлению стратегические задачи по управлению
основными ресурсами вычислительной основными ресурсами вычислительной
системы. Обычно на данном слое работают системы. Обычно на данном слое работают
менеджеры процессов, ввода-вывода, менеджеры процессов, ввода-вывода,
файловой системы и оперативной памяти. файловой системы и оперативной памяти.
Каждый из менеджеров ведет учет свободных Каждый из менеджеров ведет учет свободных
и используемых ресурсов определенного типа и используемых ресурсов определенного типа
и планирует их распределение в соответствии и планирует их распределение в соответствии
с запросами приложений. с запросами приложений.
Интерфейс системных вызововИнтерфейс системных вызовов
Этот слой является самым верхним слоем Этот слой является самым верхним слоем
ядра и взаимодействует непосредственно с ядра и взаимодействует непосредственно с
приложениями и системными утилитами, приложениями и системными утилитами,
образуя прикладной программный интерфейс образуя прикладной программный интерфейс
операционной системы. операционной системы.
Функции Функции APIAPI, обслуживающие системные , обслуживающие системные
вызовы, предоставляют доступ к ресурсам вызовы, предоставляют доступ к ресурсам
системы в удобной и компактной форме, без системы в удобной и компактной форме, без
указания деталей их физического указания деталей их физического
расположения. расположения.
П.4 Концепция микроядерной П.4 Концепция микроядерной
архитектурыархитектуры
В привилегированном режиме остается работать только В привилегированном режиме остается работать только
очень небольшая часть ОС, называемая очень небольшая часть ОС, называемая микроядроммикроядром
Микроядро защищено от остальных частей ОС и Микроядро защищено от остальных частей ОС и
приложений. приложений.
В состав микроядра обычно входят машинно-В состав микроядра обычно входят машинно-
зависимые модули, а также модули, выполняющие зависимые модули, а также модули, выполняющие
базовые функции ядра по управлению процессами, базовые функции ядра по управлению процессами,
обработке прерываний, управлению виртуальной обработке прерываний, управлению виртуальной
памятью, пересылке сообщений и управлению памятью, пересылке сообщений и управлению
устройствами ввода-вывода, связанные с загрузкой или устройствами ввода-вывода, связанные с загрузкой или
чтением регистров устройств. чтением регистров устройств.
Все остальные более высокоуровневые Все остальные более высокоуровневые
функции ядра оформляются в виде функции ядра оформляются в виде
приложений, работающих в приложений, работающих в
пользовательском режимепользовательском режиме
Менеджеры ресурсов, являющиеся Менеджеры ресурсов, являющиеся
неотъемлемыми частями обычного ядра неотъемлемыми частями обычного ядра
файловая система, подсистемы управления файловая система, подсистемы управления
виртуальной памятью и процессами, виртуальной памятью и процессами,
менеджер безопасности, менеджер безопасности, становятся становятся
«периферийными» модулями, «периферийными» модулями,
работающими в пользовательском режиме работающими в пользовательском режиме
и называются и называются серверами серверами ОСОС
Каждое приложение пользовательского режима Каждое приложение пользовательского режима
работает в собственном адресном пространстве работает в собственном адресном пространстве
и защищено тем самым от вмешательства других и защищено тем самым от вмешательства других
приложений. Непосредственная передача приложений. Непосредственная передача
сообщений между приложениями невозможна.сообщений между приложениями невозможна.
Клиент, которым может быть либо прикладная Клиент, которым может быть либо прикладная
программа, либо другой компонент ОС, программа, либо другой компонент ОС,
запрашивает выполнение некоторой функции у запрашивает выполнение некоторой функции у
соответствующего сервера, посылая ему соответствующего сервера, посылая ему
сообщение. сообщение.
Механизм обращения к функциям Механизм обращения к функциям
ОС, оформленным в виде серверовОС, оформленным в виде серверов
Микроядро, имеет доступ к адресным Микроядро, имеет доступ к адресным
пространствам каждого из этих приложений и пространствам каждого из этих приложений и
поэтому может работать в качестве поэтому может работать в качестве
посредника. посредника.
Микроядро сначала передает сообщение, Микроядро сначала передает сообщение,
содержащее имя и параметры вызываемой содержащее имя и параметры вызываемой
процедуры нужному серверу, затем сервер процедуры нужному серверу, затем сервер
выполняет запрошенную операцию, после выполняет запрошенную операцию, после
чего микроядро возвращает результаты чего микроядро возвращает результаты
клиенту с помощью другого сообщения.клиенту с помощью другого сообщения.
Таким образом, работа микроядерной Таким образом, работа микроядерной
операционной системы соответствует операционной системы соответствует
известной модели известной модели клиент-серверклиент-сервер, в которой , в которой
роль транспортных средств выполняет роль транспортных средств выполняет
микроядро. микроядро.
Недостатки микроядерной Недостатки микроядерной
архитектурыархитектуры
При классической организации ОС При классической организации ОС
выполнение системного вызова выполнение системного вызова
сопровождается двумя переключениями сопровождается двумя переключениями
режимов, а при микроядерной режимов, а при микроядерной
организации организации четырьмя. Таким четырьмя. Таким
образом, операционная система на образом, операционная система на
основе микроядра при прочих равных основе микроядра при прочих равных
условиях всегда будет менее условиях всегда будет менее
производительной, чем ОС с производительной, чем ОС с
классическим ядром. классическим ядром.
Монолитные системыМонолитные системы
Для построения монолитной системы необходимо Для построения монолитной системы необходимо
скомпилировать все отдельные процедуры, а затем скомпилировать все отдельные процедуры, а затем
связать их вместе в единый объектный файл с связать их вместе в единый объектный файл с
помощью компоновщика (примерами могут служить помощью компоновщика (примерами могут служить
ранние версии ядра UNIX или Novell NetWare). ранние версии ядра UNIX или Novell NetWare).
Каждая процедура видит любую другую процедуру (в Каждая процедура видит любую другую процедуру (в
отличие от структуры, содержащей модули, в которой отличие от структуры, содержащей модули, в которой
большая часть информации является локальной для большая часть информации является локальной для
модуля, и процедуры модуля можно вызвать только модуля, и процедуры модуля можно вызвать только
через специально определенные точки входа).через специально определенные точки входа).
Однако даже такие монолитные Однако даже такие монолитные
системы могут быть немного системы могут быть немного
структурированнымиструктурированными
Обобщением предыдущего подхода является Обобщением предыдущего подхода является
организация ОС как иерархии уровней. организация ОС как иерархии уровней.
Уровни образуются группами функций Уровни образуются группами функций
операционной системы - файловая система, операционной системы - файловая система,
управление процессами и устройствами и т.п. управление процессами и устройствами и т.п.
Каждый уровень может взаимодействовать Каждый уровень может взаимодействовать
только со своим непосредственным соседом - только со своим непосредственным соседом -
выше- или нижележащим уровнем. выше- или нижележащим уровнем.
Прикладные программы или модули самой Прикладные программы или модули самой
операционной системы передают запросы операционной системы передают запросы
вверх и вниз по этим уровням. вверх и вниз по этим уровням.
Первой системой, построенной таким Первой системой, построенной таким
образом была простая пакетная система образом была простая пакетная система
THE, которую построил Дейкстра и его THE, которую построил Дейкстра и его
студенты в 1968 году.студенты в 1968 году.
Система имела 6 уровней. Система имела 6 уровней.
Уровень 0 занимался распределением времени процессора, Уровень 0 занимался распределением времени процессора,
переключая процессы по прерыванию или по истечении переключая процессы по прерыванию или по истечении
времени. времени.
Уровень 1 управлял памятью - распределял оперативную Уровень 1 управлял памятью - распределял оперативную
память и пространство на магнитном барабане для тех частей память и пространство на магнитном барабане для тех частей
процессов (страниц), для которых не было места в ОП, то есть процессов (страниц), для которых не было места в ОП, то есть
слой 1 выполнял функции виртуальной памяти. слой 1 выполнял функции виртуальной памяти.
Слой 2 управлял связью между консолью оператора и Слой 2 управлял связью между консолью оператора и
процессами. С помощью этого уровня каждый процесс имел процессами. С помощью этого уровня каждый процесс имел
свою собственную консоль оператора. свою собственную консоль оператора.
Уровень 3 управлял устройствами ввода-вывода и буферизовал Уровень 3 управлял устройствами ввода-вывода и буферизовал
потоки информации к ним и от них. С помощью уровня 3 каждый потоки информации к ним и от них. С помощью уровня 3 каждый
процесс вместо того, чтобы работать с конкретными процесс вместо того, чтобы работать с конкретными
устройствами, с их разнообразными особенностями, обращался устройствами, с их разнообразными особенностями, обращался
к абстрактным устройствам ввода-вывода, обладающим к абстрактным устройствам ввода-вывода, обладающим
удобными для пользователя характеристиками. удобными для пользователя характеристиками.
На уровне 4 работали пользовательские программы, которым На уровне 4 работали пользовательские программы, которым
не надо было заботиться ни о процессах, ни о памяти, ни о не надо было заботиться ни о процессах, ни о памяти, ни о
консоли, ни об управлении устройствами ввода-вывода. консоли, ни об управлении устройствами ввода-вывода.
Процесс системного оператора размещался на уровне 5.Процесс системного оператора размещался на уровне 5.
Хотя такой структурный подход на практике Хотя такой структурный подход на практике
обычно работал неплохо, сегодня он все обычно работал неплохо, сегодня он все
больше воспринимается монолитным. В больше воспринимается монолитным. В
системах, имеющих многоуровневую системах, имеющих многоуровневую
структуру было нелегко удалить один слой и структуру было нелегко удалить один слой и
заменить его другим в силу множественности заменить его другим в силу множественности
и размытости интерфейсов между слоями. и размытости интерфейсов между слоями.
Добавление новых функций и изменение Добавление новых функций и изменение
существующих требовало хорошего знания существующих требовало хорошего знания
операционной системы и массы времени. операционной системы и массы времени.
Современные концепции и технологии Современные концепции и технологии
проектирования операционных системпроектирования операционных систем
Кроме функциональных требований к операционным Кроме функциональных требований к операционным
системам предъявляются не менее важные рыночные системам предъявляются не менее важные рыночные
требования:требования:
1. Расширяемость1. Расширяемость
2. Переносимость2. Переносимость
3. Надежность и отказоустойчивость3. Надежность и отказоустойчивость
4. Совместимость4. Совместимость
5. Производительность5. Производительность
6. Безопасность6. Безопасность
РасширяемостьРасширяемость
Код должен быть написан таким образом, Код должен быть написан таким образом,
чтобы можно было легко внести чтобы можно было легко внести
дополнения и изменения, если это дополнения и изменения, если это
потребуется, и не нарушить потребуется, и не нарушить
целостность системы. целостность системы.
ПереносимостьПереносимость
Если Если код ОС код ОС может быть сравнительно легко перенесен с может быть сравнительно легко перенесен с
процессора одного типа на процессор другого типа и с процессора одного типа на процессор другого типа и с
аппаратной платформы одного типа на аппаратную платформу аппаратной платформы одного типа на аппаратную платформу
другого типа, то такую ОС называют другого типа, то такую ОС называют переносимой (переносимой (portableportable) ) или или
мобильной. мобильной. Для того чтобы обеспечить свойство мобильности Для того чтобы обеспечить свойство мобильности
ОС, разработчики должны следовать следующим правилам.ОС, разработчики должны следовать следующим правилам.
1. Большая часть кода должна быть написана на языке, 1. Большая часть кода должна быть написана на языке,
трансляторы которого имеются на всех машинах, куда трансляторы которого имеются на всех машинах, куда
предполагается переносить систему. Такими языками являются предполагается переносить систему. Такими языками являются
стандартизованные языки высокого уровня. Большинство стандартизованные языки высокого уровня. Большинство
переносимых ОС написано на языке Спереносимых ОС написано на языке С
2. Аппаратно-зависимый код должен быть надежно изолирован в
нескольких модулях, а не быть распределен по всей системе.
Изоляции подлежат все части ОС, которые отражают специфику
процессора и аппаратной платформы в целом.
Низкоуровневые компоненты ОС, имеющие доступ к
процессорно-зависимым структурам данных и регистрам,
должны быть оформлены в виде компактных модулей, которые
могут быть заменены аналогичными модулями для других
процессоров.
Надежность и отказоустойчивость.Надежность и отказоустойчивость.
Система должна быть защищена как от внутренних, Система должна быть защищена как от внутренних,
так и от внешних ошибок, сбоев и отказов. Ее так и от внешних ошибок, сбоев и отказов. Ее
действия должны быть всегда предсказуемыми, а действия должны быть всегда предсказуемыми, а
приложения не должны быть в состоянии наносить приложения не должны быть в состоянии наносить
вред ОС. Надежность и отказоустойчивость ОС вред ОС. Надежность и отказоустойчивость ОС
прежде всего определяются архитектурными прежде всего определяются архитектурными
решениями, положенными в ее основу, а также решениями, положенными в ее основу, а также
качеством ее реализации (отлаженностью кода). качеством ее реализации (отлаженностью кода).
Кроме того, важно, включает ли ОС программную Кроме того, важно, включает ли ОС программную
поддержку аппаратных средств обеспечения поддержку аппаратных средств обеспечения
отказоустойчивости, таких, например, как дисковые отказоустойчивости, таких, например, как дисковые
массивы или источники бесперебойного питания.массивы или источники бесперебойного питания.
СовместимостьСовместимость
ОС должна иметь средства для выполнения ОС должна иметь средства для выполнения
прикладных программ, написанных для прикладных программ, написанных для
других операционных систем. Кроме того, других операционных систем. Кроме того,
пользовательский интерфейс должен быть пользовательский интерфейс должен быть
совместим с существующими системами и совместим с существующими системами и
стандартами. Следует различать стандартами. Следует различать
совместимость на уровне двоичных кодов и совместимость на уровне двоичных кодов и
совместимость на уровне исходных текстов. совместимость на уровне исходных текстов.
Понятие совместимости включает также Понятие совместимости включает также
поддержку пользовательских интерфейсов поддержку пользовательских интерфейсов
других ОС.других ОС.
Система должна обладать настолько хорошим Система должна обладать настолько хорошим
быстродействием и временем реакции, быстродействием и временем реакции,
насколько это позволяет аппаратная насколько это позволяет аппаратная
платформа. платформа.
На производительность ОС влияет много На производительность ОС влияет много
факторов, среди которых основными факторов, среди которых основными
являются архитектура ОС, многообразие являются архитектура ОС, многообразие
функций, качество программирования кода, функций, качество программирования кода,
возможность исполнения ОС на возможность исполнения ОС на
высокопроизводительной многопроцессорной высокопроизводительной многопроцессорной
платформе.платформе.
ПроизводительностьПроизводительность
БезопасностьБезопасность
ОС должна защищать данные и другие ресурсы ОС должна защищать данные и другие ресурсы
вычислительной системы от несанкционированного вычислительной системы от несанкционированного
доступа. Чтобы ОС обладала свойством доступа. Чтобы ОС обладала свойством
безопасности, она должна как минимум иметь в безопасности, она должна как минимум иметь в
своем составе средства аутентификации – своем составе средства аутентификации –
определения легальности пользователей, определения легальности пользователей,
авторизации авторизации предоставления легальным предоставления легальным
пользователям дифференцированных прав доступа к пользователям дифференцированных прав доступа к
ресурсам, аудита – фиксации всех «подозрительных» ресурсам, аудита – фиксации всех «подозрительных»
для безопасности системы событий. Свойство для безопасности системы событий. Свойство
безопасности особенно важно для сетевых ОС. В безопасности особенно важно для сетевых ОС. В
таких ОС к задаче контроля доступа добавляется таких ОС к задаче контроля доступа добавляется
задача защиты данных, передаваемых по сети.задача защиты данных, передаваемых по сети.
POSIX (Portable Operation Systems Interface) — это
стандарт, призванный обеспечить переносимость
исходных текстов программ между ОС разных
производителей. За основу стандартов POSIX были
взяты ОС семейства UNIX. Первоначальный вариант
стандарта POSIX появился в 1990 г.
Разработкой стандартов POSIX занимаются рабочие
группы Института инженеров по электротехнике и
радиоэлектронике (Institute of Electrical and Electronics
Engineers — IEEE) США. Поэтому стандарты POSIX
после утверждения имеют маркировку IEEE. Кроме того,
существуют Международная организация по
стандартизации (International Organization for
Standardization — ISO) и Международная
электротехническая комиссия (International
Electrotechnical Commission — IEC). Эти организации
могут утверждать стандарты IEEE в качестве
международных.
П.5.Стандарты совместимости и переносимостиП.5.Стандарты совместимости и переносимости
Спецификации POSIX задают стандартный механизм
взаимодействия приложения и ОС.
К настоящему времени стандарт POSIX рассматривается как
семейство родственных стандартов: IEEE Std 1003.n (где n – это
номер).
Стандарт ISO/IEC 9945-1 ( POSIX.1 или IEEE 1003.1)
определяет интерфейс прикладного
программирования (API) для операционных систем.
Стандарт 1003.1a (OS Definition) содержит базовые
интерфейсы ОС – поддержку единственного
процесса, поддержку многих процессов, управление
заданиями, сигналами, группами пользователей,
файловой системой, файловыми атрибутами,
управление файловыми устройствами, блокировками
файлов, устройствами ввода/вывода, устройствами
специального назначения, системными базами
данных, каналами, очередями FIFO, а также
поддержку языка C.
Стандарт 1003.1b (Realtime Extensions) содержит
расширения реального времени – сигналы реального
времени, планирование выполнения, таймеры,
синхронный и асинхронный ввод/вывод, ввод/вывод с
приоритетами, синхронизация файлов, блокировка
памяти, разделяемая память, передача сообщений,
семафоры.
Чтобы стать POSIX-комплиантной, ОС должна
реализовать не менее 32 уровней приоритетов.
POSIX определяет три политики планирования
обработки процессов:
SCHED_FIFO – процессы обрабатываются в режиме
FIFO и выполняются до завершения,
SCHED_RR – round robin – каждому процессу
выделяется квант времени,
SCHED_OTHER – произвольная реализационно-
зависимая политика, которая не переносима на
другие платформы.
Стандарт 1003.1c (Threads) касается функций
поддержки многопоточной обработки внутри
процесса – управление потоками,
планирование с учетом приоритетов,
мьютексы, приоритетное наследование в
мьютексах, переменные состояния (condition
variables).
Стандарт ISO/IEC 9945-2 (POSIX.2 или IEEE
1003.2) определяет набор утилит и
командных интерпретаторов.
Стандарт ISO/IEC 13210 (POSIX.3 или IEEE
1003.0) определяет набор тестов,
позволяющих определить POSIX-
совместимость операционной системы.
Стандарты безопасности
В связи со стандартами для ОС стоит отметить широко В связи со стандартами для ОС стоит отметить широко
известный стандарт известный стандарт критериев оценки пригодности критериев оценки пригодности
компьютерных системкомпьютерных систем (Trusted Computer System (Trusted Computer System
Evaluation Criteria – TCSEC). Этот стандарт разработан Evaluation Criteria – TCSEC). Этот стандарт разработан
Министерством обороны США и известен также под Министерством обороны США и известен также под
названием "Оранжевая книга". названием "Оранжевая книга".
В ряде других стран были разработаны аналогичные В ряде других стран были разработаны аналогичные
критерии, на основе которых был создан критерии, на основе которых был создан
международный стандарт “Общие критерии оценки международный стандарт “Общие критерии оценки
безопасности информационных технологий” (далее безопасности информационных технологий” (далее
просто – Общие критерии) (Common Criteria for IT просто – Общие критерии) (Common Criteria for IT
Security Evaluation, ISO/IEC 15408).Security Evaluation, ISO/IEC 15408).
В "Оранжевой книге" перечислены семь
уровней защиты
А1 – верифицированная разработка. Этот уровень требует, чтобы защиту
секретной и другой критичной информации средствами управления
безопасностью гарантировали методы формальной верификации.
В3 – домены безопасности. Этот уровень предназначен для защиты систем от
опытных программистов.
В2 – структурированная защита. В систему с этим уровнем защиты нельзя
допустить проникновение хакеров.
В1 – мандатный контроль доступа. Защиту этого уровня, возможно, удастся
преодолеть опытному хакеру, но никак не рядовым пользователям.
С2 – дискреционный контроль доступа. Уровень С2 обеспечивает защиту
процедур входа, позволяет производить контроль за событиями, имеющими
отношение к безопасности, а также изолировать ресурсы.
С1 – избирательная защита. Этот уровень дает пользователям возможность
защитить личные данные или информацию о проекте, установив средства
управления доступом.
D – минимальная защита. Этот нижний уровень защиты оставлен для систем,
которые проходили тестирование, но не смогли удовлетворить требованиям
более высокого класса.
В Общих критериях введены похожие требования обеспечения
безопасности в виде оценочных уровней (Evaluation Assurance
Levels – EAL). Их также семь:
EAL7 – самый высокий уровень предполагает формальную
верификацию модели объекта оценки. Он применим к системам
очень высокого риска.
EAL6 определяется, как полуформально верифицированный и
протестированный. На уровне EAL6 реализация должна быть
представлена в структурированном виде, анализ соответствия
распространяется на проект нижнего уровня, проводится
строгий анализ покрытия, анализ и тестирование небезопасных
состояний.
EAL5 определяется, как полуформально спроектированный и
протестированный. Он предусматривает создание
полуформальной функциональной спецификации и проекта
высокого уровня с демонстрацией соответствия между ними,
формальной модели политики безопасности,
стандартизованной модели жизненного цикла, а также
проведение анализа скрытых каналов.
EAL4 определяется, как методически спроектированный, протестированный
и пересмотренный. Он предполагает наличие автоматизации управления
конфигурацией, полной спецификации интерфейсов, описательного проекта
нижнего уровня, подмножества реализаций функций безопасности,
неформальной модели политики безопасности, модели жизненного цикла,
анализ валидации, независимый анализ уязвимостей. По всей вероятности,
это самый высокий уровень, которого можно достичь на данном этапе
развития технологии программирования с приемлемыми затратами.
EAL3 определяется, как методически протестированный и проверенный. На
уровне EAL3 осуществляется более полное, чем на уровне EAL2,
тестирование покрытия функций безопасности, а также контроль среды
разработки и управление конфигурацией объекта оценки.
EAL2 определяется, как структурно протестированный. Он предусматривает
создание описательного проекта верхнего уровня объекта оценки, описание
процедур инсталляции и поставки, руководств администратора и
пользователя, функциональное и независимое тестирование, оценку
прочности функций безопасности, анализ уязвимостей разработчиками.
EAL1 определяется, как функционально протестированный. Он
обеспечивает анализ функций безопасности с использованием
функциональной спецификации и спецификации интерфейсов,
руководящей документации, а также независимое тестирование. На этом
уровне угрозы не рассматриваются как серьезные.
Следует отметить, что большинство усилий
по оценке продуктов безопасности
сосредоточены на уровне 4 стандарта Общих
критериев и ниже, что говорит об
ограниченном применении формальных
методов в этой области.
С точки зрения программиста Общие
критерии можно рассматривать как набор
библиотек, с помощью которых пишутся
задания по безопасности, типовые профили
защиты и т.п.