Системные службы
Это тонкий слой над исполняющей системой. Его функции заключаются в предоставлении интерфейса к исполняющей системе. Он принимает настоящие системные вызовы и вызывает другие части исполняющей системы для их выполнения.
При загрузке операционная система Windows 2000 загружается в память как набор файлов. Основная часть операционной системы, состоящая из ядра и исполняющей системы, храниться в файле ntoskrnl.exe. Уровень HAL представляет собой библиотеку общего доступа, расположенную в отдельном hal.dll. Интерфейс Win32 и интерфейс графических устройств хранятся вместе в третьем файле, win32k.sys. Наконец, загружается множество драйверов устройств. У большинства из них расширение .sys.
Подсистемы окружения
Существует три типа компонентов, работающих в режиме пользователя: динамические библиотеки DLL, подсистемы окружения и служебные процессы. Эти компоненты работают вместе, предоставляя каждому пользовательскому процессу интерфейс, отличный от интерфейса системных вызовов Windows.
Операционной системой Windows 2000 поддерживаются три различных документированных интерфейса прикладного программирования API: Win32, POSIX и OS/2. У каждого из этих интерфейсов есть список библиотек DLL (Dynamic Link Library – динамически подключаемая библиотека) и подсистем окружения заключается в том, чтобы реализовать функциональные возможности опубликованного интерфейса, тем самым, скрывая истинный интерфейс системных вызовов от прикладных программ.
На рисунке 5.4 представлены некоторые ключевые и наиболее важные файлы динамических библиотек. В каталоге \winnt\system32 содержится более 800 отдельных файлов DLL общим объемом в 130 (Win XP 1260 объектов 260 Мб).
Рисунок 5.4 – Файлы динамических библиотек
Aрхитектура процессора Intel определяет 4 уровня привилегий для защиты кода и данных системы от случайного или намеренного изменения со стороны менее привилегированного кода. Такой метод выполнения кода называется моделью защиты Intel. Рассмотрим уровни привилегий:
Уровень приложения;
Уровень DLL(функция ОС);
Системный;
Аппаратного обеспечения
Уровни 1 и 3 объединяются в кольцо 3, а уровни 2 и 4 в кольцо 0 (ОС семейства Windows используют только кольца 0 и 3):
Кольцо 0 – это режим ядра, он максимальный.
Кольцо 3 – это режим пользователя, он минимальный, т.е. получает меньший доступ к процессору.
Режим ядра – это наиболее привилегированный режим. Программное обеспечение, выполняющееся в режиме ядра имеет:
прямой доступ к аппаратному обеспечению;
доступ ко всей памяти ПК;
не могут быть вытеснены в файл на жестком диске;
выполняется с большим приоритетом, чем процессы режима пользователя.
Режиму пользователя предоставляется меньше привилегий. В процессе режима пользователя характеризуются следующими особенностями:
не имеет прямого доступа к аппаратному обеспечению в целях защиты системы от неисправных приложений, или несанкционированного доступа ;
ограничены выделенным или адресным пространством, таким образом ОС обеспечивает свою целостность, процессу выделяется определенная область и выходить за пределы этой области запрещено;
для вызова системных сервисов используется интерфейс с прикладного программирования -API.
Windows использует 2 класса приоритетов:
класс реального времени (приоритеты от 16 до 31) – используются для выполнения основных функций ОС и обычно не применяется для приложений;
класс переменного приоритета (от 0 до 15) – определяет процессорный приоритет приложений.
Процессам могут быть присвоены следующие базовые уровни приоритетов:
низкий – запускает приложения с уровнем приоритета 4;
обычный – запускает приложения с уровнем приоритета 7;
высокий – 13;
реально во времени – уровень приоритета 24.
Не запускайте приложения с классом приоритета – реально во времени!
