Обзор архитектуры и возможностей систем Windows 2000/XP/2003/Vista/2008/7
Подсистемы окружения в Windows 2000
Над executive надстраиваются процессы пользовательского режима, обеспечивающие исполнение программ, разработанных для других ОС.
Windows 2000 использует подсистему Win32 как основное операционное окружение. Подсистема Win32 используется для запуска всех процессов. Она же обеспечивает средства работы с мышью, клавиатурой и средства графики.
Окружение MS-DOS обеспечивается приложением Win32, называемым Virtual Dos machine (VDM),процессом пользовательского уровня, для которого поддерживается страничная организация и диспетчеризация, как и для всех других потоков.
Окружение для 16-битовых Windows обеспечивается VDM, которая содержит подсистему Windows on Windows. Последняя предоставляет процедуры ядра Windows 3.1 для менеджера окон и функций GDI.
Подсистема POSIX спроектирована для исполнения POSIX-приложений, следующих POSIX.1 – стандарту, который базируется на модели UNIX.
Подсистема OS/2 выполняет OS/2 - приложения.
Подсистема входа и безопасности аутентифицирует пользователей, входящих в систему Windows 2000. Требуется, чтобы пользователи имели учетную запись с логином и пароль. Пакет аутентификации подсистемы безопасности аутентифицирует всех пользователей, которые пытаются осуществить доступ к какому-либо объекту системы. Windows 2000 использует Kerberos как пакет аутентификации по умолчанию.
Ключевые термины
Plug-and-Play (PnP) – механизм автоматического распознавания изменений в конфигурации оборудования и адаптации к ним (установки соответствующих драйверов).
Virtual Dos Machine (VDM) - процесс пользовательского уровня, обеспечивающий совместимость с приложениями MS-DOS.
Блокировщик (spin lock, буквально – вертящийся замок ) – системный механизм синхронизации, используемый для взаимного исключения процессов ядра Windows.
Исполнительная подсистема (executive) – основная часть ядра Windows, исполняемая в защищенном режиме, реализующая базовые системные сервисы.
Локальный вызов процедуры (LPC) – системный механизм вызова процедур Windows, передающий запросы и результаты между клиентским и серверным процессами на локальной машине; используется для запросов к сервисам различных подсистем ОС.
Объект-диспетчер - системный объект в Windows, управляющий диспетчеризацией и синхронизацией.
Объектная ссылка (object handle) - ссылка на системный объект ядра Windows.
Управляющий объект - системный объект Windows, управляющий асинхронным вызовом процедуры, обработкой прерывания, нотификацией об электропитании или профилированием.
Уровень абстрагирования от аппаратуры (hardware abstraction layer, HAL) – динамически линкуемая библиотека Windows, инкапсулирующая код, зависящий от конкретного процессора, - тем самым обеспечивающая независимость от аппаратуры всего остального кода Windows.
Краткие итоги
Windows 2000 / XP / 2003 / 2008 / 7 – новейшая линия в развитии ОС Windows, которой предшествовало более чем 20-летнее развитие Windows от графической оболочки в среде MS DOS до наиболее популярной в мире операционной системы. Windows 2000 – объектно-ориентированная ОС, основными целями разработки которой являются переносимость, безопасность, соответствие POSIX, поддержка многопроцессорности, расширяемость, поддержка интернационализации, совместимость приложений с MS DOS и первыми версиями Windows. Использует архитектуру микроядра.
Первой ОС в новой линии развития Windows стала Windows NT, выпущенная в середине 1990-х гг. Windows NT, 2000 и более новые версии Windows имеют общую кодовую базу – ядро ОС.
Windows 2000 написана на C и C++. Код, зависящий от процессора, выделен в специальный API – hardware abstraction layer (HAL).
Архитектура Windows 2000 - многоуровневая. В защищенном режиме исполняется ядро, исполнительная подсистема ядра – executive, реализующая базовые системные сервисы, и HAL. Над этими компонентами надстраиваются подсистемы пользовательского режима, эмулирующие различные ОС и обеспечивающие реализацию безопасности.
Ядро Windows разработано в объектно-ориентированном стиле и использует два набора системных объектов – объекты-диспетчеры и управляющие объекты.
Ядро поддерживает процессы и потоки. Используется гибкая система приоритетов, включающая поддержку потоков реального времени и разделения времени. Процессы реального времени планируются как soft real-time (без обязательности выдерживания фиксированного интервала времени ответа).
Ядро обеспечивает обработку прерываний и системный механизм исключений. Для синхронизации процессов ядра используются блокировщики типа spin locks.
Менеджер системных объектов обеспечивает генерацию системных объектных ссылок (object handles) и выполнение базовых операций над объектами. Поддерживается именование объектов и объекты – символические ссылки. Каждый объект защищен списком управления доступом.
Для реализации виртуальной памяти используется двухуровневая таблица страниц с размером страницы 4 килобайта. Используются файлы откачки.
Для системных вызовов процедур используется механизм LPC (local procedure call), обеспечивающий передачу сообщений или ссылок на общие области памяти.
Менеджер ввода-вывода поддерживает синхронные и асинхронные операции, тайм-ауты для драйверов, кэширование ввода-вывода, использование файлов, отображаемых в память.
Монитор безопасности использует маркеры безопасности процессов и списки управления доступом к объектам для авторизации.
Менеджер PnP отслеживает изменения в конфигурации и установку соответствующих драйверов новых устройств.
Подсистемы окружения Windows: подсистема Win32; DOS Virtual Machine; подсистема Windows on Windows (исполнение 16-битовых приложений Windows); подсистема POSIX, подсистема OS/2; подсистема входа и безопасности (управляет учетными записями пользователей, используя Kerberos-аутентификацию по умолчанию).
Набор для практики
Вопросы
- В каком качестве была реализована первая версия Windows и в какой среде она работала?
- В чем принципиальная новизна подхода к реализации Windows NT?
- Назовите все операционные системы, являющиеся развитием Windows NT.
- В чем новизна и каковы основные преимущества ОС Windows 95 / 98?
- Каковы основные цели разработки Windows 2000?
- На каких языках написана Windows 2000?
- Как называется исполнительная подсистема ядра Windows 2000 и какие основные сервисы она реализует?
- Каким образом достигнута минимальная зависимость кода Windows от аппаратуры?
- С программами для каких ОС и стандартов обеспечивается совместимость в системе Windows 2000?
- Какие компоненты Windows исполняются в защищенном, а какие – в пользовательском режиме?
- Что такое подсистема в ОС Windows? Назовите все подсистемы ОС Windows.
- Какие виды системных объектов использует ядро Windows?
- В каких состояниях может находиться поток в Windows?
- Какие классы процессов и потоков выделяются при планировании в Windows?
- Какие механизмы используются для обработки ошибок в Windows?
- Какие средства используются для синхронизации системных процессов ядра Windows?
- Какие функции выполняет менеджер объектов исполнительной подсистемы ядра Windows?
- Каким образом защищены системные объекты ядра Windows?
- Как организована система виртуальной памяти и таблицы страниц в Windows?
- Какой процедурный механизм коммуникации используется для системных процессов?
- Какие функции выполняет менеджер ввода-вывода?
- Какие системные структуры используются подсистемой безопасности для авторизации процессов?
- Какие функции выполняет менеджер Plug-and-Play?
- Какие подсистемы окружения для совместимости с другими ОС имеются в Windows?
- Какой вид аутентификации используется в Windows?
Упражнения
- Инсталлируйте новую версию Windows, имеющуюся в Вашем распоряжении (Windows 7, Vista и др.) и проанализируйте ее основные возможности для пользователей.
- Используйте открытое академическое ядро Windows (WRK) и изучите по исходным кодам и опишите основные компоненты ядра Windows (executive и др.).
- Поэкспериментируйте с запуском в новой версии Windows приложений для других ОС – MS DOS, Windows 3.1 и др.
Темы для курсовых работ, рефератов, эссе
- История операционных систем семейства Windows (реферат).
- Архитектура и принципы проектирования Windows 2000 (реферат).
- Исполнительная подсистема (executive) ядра Windows 2000 (реферат).
- Подсистемы окружения Windows 2000 и совместимость с другими ОС (реферат).
- Использование открытого академического ядра Windows (WRK) для изучения по исходным кодам и описания основных компонент ядра Windows (executive и др.). (курсовая работа).
- Эксперименты с запуском в новой версии Windows приложений для других ОС – MS DOS, Windows 3.1 и др. (курсовая работа).