Архитектура Windows 2000
Большинство операционных систем (ОС) представляют собой хорошо структурированные модульные системы. Обычно модули делятся на две группы:
ядро – модули, выполняющие основные функции ОС,
модули, выполняющие вспомогательные функции.
Для надежного и безопасного управления ходом выполнения приложений ОС должна иметь по отношению к приложениям определенные привилегии. Средства аппаратной поддержки (архитектура процессора) позволяют поддерживать два режима работы – пользовательскийипривилегированный, который также называетсярежимом ядра.
Наиболее важные части ОС выполняются в режиме ядра. Программы, работающие в режиме ядра имеют доступ к системным данным и к аппаратному обеспечению. Программы пользовательского режима имеют ограниченный доступ к системным данным.
На рис. 1 представлена общая структура ОС Windows 2000.
API (Application Programming Interface) – стандартизованная библиотека программных средств, используемая разработчиками прикладных программ для создания приложений, совместимых с определенной ОС и принятым графическим интерфейсом и для доступа к сервисам ОС.
NTDLL.DLLРежим пользователя
Режим ядра api исполнительной системы
Исполни-тельная
система
Win2000
Диспетчер объектов,
библиотека этапа
исполнения
Аппаратура
Рис. 1. Архитектура операционной системы Windows 2000
Для обеспечения аппаратной независимости (возможности работы ОС на разных аппаратных платформах) большая часть модулей ОС общается с аппаратурой как с абстрактными данными, которые связывают с конкретными аппаратными модулями через такие программные модули, как HAL (Hardware Abstraction Layer), микроядро и драйверы устройств.
Назначение и имена системных файлов представлены в таблицах 1 и 2.
Таблица 2. Системные модули режима пользователя
Режим пользователя | ||
Модуль |
Файл |
Назначение |
Приложения пользователя |
|
Могут быть одного из пяти типов: Win32, Win16 (для Windows 3.1), POSIX, OS/2, MS-DOS |
Подсистемы среды |
|
Предоставляют приложениям пользователя сервисы в виде функций, реализованных как программы динамически подключаемых библиотек (DLL) |
Системные процессы и сервисы |
|
Служебные программы, обслуживающие ОС (диспетчер сессий, процесс входа в систему WINLOGON) и предоставляющие сервисы (регистрация событий, обработка извещений и т. д.) |
WIN32API |
|
Интерфейс между пользовательскими приложениями и исполнительной системой Windows. Реализован в виде динамически подключаемых библиотек DDL). В пользовательском режиме работают три главных библиотеки, содержащие большую часть функций API: Kernel32.dll, User32.dll , GDI.dll |
Kernel32.dll |
%\windows\system32\ Kernel32.dll |
Библиотека DLL. Содержит около 700 функций управления памятью, процессами и потоками |
User32.dll |
%\windows\system32\ User32.dll |
Библиотека DLL. Содержит около 600 функций для управления пользовательским интерфейсом, например, созданием окон и передачей сообщений |
GDI.dll |
|
Библиотека DLL. Содержит около 400 функций для рисования графических объектов, отображения текста и работы со шрифтами |
NTDLL |
%\windows\system32\Nt.dll |
Библиотека функций, позволяющая выполнить переход от пользовательского режима в режим ядра при необходимости использования функций низкоуровневого сервиса (сервиса режима ядра) |
Таблица 1. Системные модули режима ядра
Режим ядра | ||
Модуль |
Файл |
Назначение |
HAL |
%\windows\system32\ HAL.dll |
Уровень аппаратных абстракций. Реализует низкоуровневый интерфейс с аппаратурой. Модули Windows и драйверы от других разработчиков взаимодействуют с аппаратурой посредством HAL. Отделяет ОС от особенностей используемой аппаратной платформы. Аппаратура: шина, таймеры, контроллер прерываний, контроллер прямого доступа к памяти, устройства ввода/вывода, контроллер кэша, контроллеры памяти и т. д. |
Микроядро |
%\windows\system32\ NTOSKRNL.exe |
Единственная часть системы, которая всегда находится в оперативной памяти. Выполняет функции:
|
Драйверы устройств |
*.exe |
Преобразуют поступившие от пользователя вызовы функций ввода/вывода в запросы для конкретных устройств |
Диспетчер ввода/вывода |
|
|
Диспетчер кэша |
|
Управляет кэшированием дисковой памяти: хранит в оперативной памяти данные, к которым недавно обращались |
Диспетчер файловой системы |
|
Поддерживает работу с файлами и папками |
Диспетчер процессов и потоков |
|
Создает и завершает процессы и потоки |
Диспетчер объектов |
|
Создает объекты и абстрактные типы данных исполнительной системы Windows и управляет ими. Объекты используются для предоставления таких ресурсов, как процессы, потоки, объекты синхронизации |
Диспетчер виртуальной памяти |
|
Отображает виртуальные адреса адресного пространства процессов на физические страницы памяти компьютера |
Библиотеки этапа исполнения |
|
Реализация арифметических функций и функций обработки строк |
Диспетчер окон WIN32K |
WIN32K.sys |
Создает оконный экранный интерфейс, управляет графическими устройствами (вывод на экран, ввод с клавиатуры или при помощи мыши) |
Средства локального вызова процедур |
|
Связь между приложениями и исполняющимися подсистемами по модели клиент/сервер. Похож на средства удаленного вызова процедур в распределенных системах |
Монитор безопасности обращений |
|
Обеспечивает выполнение правил доступа и аудита |
API исполнительной системы |
|
Функции исполнительной системы (сервисы режима ядра), используемые подсистемой Win32API |