- принцип модульности. Модуль – функционально законченный элемент, выполняемый в соответствии с принятым межмодульным интерфейсом. Модуль выделяется по функциональному признаку. Модульная организация позволяет легко (из)заменять неправильно работающие модули в ОС. Чаще всего используются реентерабельные и привилегированные модули.
- принцип функциональной избирательности. Для организации эффективной работы ОС, необходимо выделить некоторые модули и хранить их в ОЗУ. Эти модули составляют ядро ОС. Ядро:
- Модули по управлению системы прерываний;
- Средство управления выполнения программ (загрузка, приостановка, остановка);
- Модули по управлению процессом (распределение процессорного времени), т.е. диспетчеры программ;
- Модули по управлению выделения памяти. В зависимости от ОС в ядро могут ещё входить другие модули;
- Транзитные модули (загружаются в ОЗУ по мере необходимости, при нехватке ОЗУ могут быть выгружены из памяти).
- принцип генерируемости ОС. Подразумевает собой возможность генерации ОС в зависимости от аппаратного обеспечения. Процесс генерации обычно производится один раз, перед достаточно долгим режимом эксплуатации. Для генерации необходимо наличие нескольких компонентов:
- Исходный код ОС;
- Компилятор с языка программирования на котором система написана;
- Специальная программа и входной язык для неё, который позволяет управлять процессом генерации.
ОС с открытым системным кодом – Linux (UNIX), есть возможность тонкой настройки ядра для конкретного процессора.
- принцип функциональной избыточности. В состав ОС должно входит несколько типов ПО для выполнения одинаковых функций (поддержка разных файловых систем).
- принцип виртуализации. Позволяет представить ресурсы ОС в виде определённого набора планировщиков и мониторов и использует единую схему распределения ресурсов. Наибольшее проявление – концепция виртуальной машины (воспроизводит архитектуру реальной машины, но может обладать произвольными характеристиками).
- принцип независимости программ от внешних устройств. Связь программ с конкретным внешним устройством производится не на этапе трансляции, а на этапе выполнения программы. Получается выгода: не нужна лишняя «перекомпиляция».
- принцип совместимости. Способность выполнять программы для другой ОС или даже для другой аппаратной платформы.
2 уровня совместимости:
- по выполняемому коду (бинарная). Условия совместимости:
- На уровне команд процессора (одна и та же платформа);
- Совместимость на уровне системных вызовов;
- Совместимость на уровне библиотечных вызовов, если являются динамично связываемыми.
- 2. по исходному коду. Требуется выполнение следующих условий:
- Наличие компилятора платформы, на котором написана программа;
- Совместимость на уровне системных вызовов;
- Совместимость на уровне библиотечных вызовов.
- принцип открытой наращиваемой ОС (открыт исходный код). Целостность ОС сохраняется (UNIX).
- принцип мобильности (переносимости). ОС должна легко переноситься на другую аппаратную платформу. Правила создания переносимых ОС:
- ОС должна быть написана на языке высокого уровня, для которой существует компилятор на аппаратной платформе. В основном, современные ОС пишут на Си.
- Необходимо избегать кода, который непосредственно работает с аппаратным обеспечением.
- принцип обеспечения безопасности и защиты:
- Защита системы от пользователя;
- Защита от несанкционированного доступа.
В 1983 г. придуманы критерии оценки надёжности ОС. Существуют 4 класса безопасности:
Класс D. Относятся системы, не удовлетворяющие системам предыдущих классов (небезопасный);
Класс C. Обеспечение защиты данных от ошибок пользователя. ОС должна иметь следующие средства:
- Средства секретного входа;
- Обязательно наличие избирательного контроля доступа;
- Средства учёта и наблюдения (аудит);
- Необходима инициализация памяти при её освобождении. Современные ОС относятся к этому классу.
Класс B. Основаны на помеченных данных и есть наличие распределения пользователей по категориям, любой пользователь имеет рейтинг доступа к данным.
Класс A. Самый высокий уровень безопасности. Необходимо, чтобы имелось формальное (математическое) доказательство безопасности ОС. Примерно 90% процессорного времени тратится на систему безопасности. В наше время используются классы B и C.
|