Обзор архитектуры и возможностей систем Windows 2000/XP/2003/Vista/2008/7
Презентацию к данной лекции Вы можете скачать здесь.
Введение
Windows – наиболее распространенное семейство операционных систем для настольных и портативных компьютеров. Имеются также версии Windows для мобильных устройств (Windows Mobile) и для компьютерных кластеров. Можно без преувеличения сказать, что Windows – это тот мир, в котором живут и работают миллионы программистов. Windows в своем развитии бурно прогрессирует. Значительно повысилась надежность системы, значительно возросли ее возможности. В данной и следующей лекциях рассмотрены история, архитектура и возможности Windows. В "Обзор архитектуры и возможностей систем Windows 2000/XP/2003/Vista/2008/7" и "Системные механизмы Windows" рассмотрены следующие вопросы:
- История
- Принципы проектирования
- Компоненты системы
- Подсистемы окружения
- Файловая система
- Работа в сети
- Программный интерфейс.
Система Windows 2000
Windows 2000 – это 32-битовая многозадачная операционная система для микропроцессоров типа Intel. Windows 2000 продолжает линию развития, начатую в середине 1990-х гг. системой Windows NT.
Основные цели разработки Windows 2000 и последующих новых версий Windows (2003/2008/7):
- переносимость
- безопасность
- соответствие POSIX
- поддержка многопроцессорности
- расширяемость
- поддержка интернационализации
- совместимость приложений с MS-DOS и ранними версиями Microsoft Windows.
Новые версии Windows используют архитектуру микроядра.
Windows 2000 доступна в нескольких версиях - Professional, Server, Advanced Server, National Server.
История Windows
Для большинства отечественных пользователей, включая автора, Windows стала доступной впервые в конце 1980-х гг. как графическая оболочка, запускаемая в среде операционной системы MS DOS командой win. Уже тогда были ощутимы основные характерные черты Windows, хотя она еще не была операционной системой, - удобный многооконный (как тогда называли) графический пользовательский интерфейс.
Затем появились наиболее известные в те годы версии - Windows 3.0, Windows 3.11, Windows for Workgroups (Windows для рабочих групп). Все они поддерживали исполнение приложений под управлением графической многооконной оболочки.
В 1988 Microsoft приняла решение о разработке переносимой ОС "new technology" (NT), которая поддерживала бы и OS/2, и POSIX API.
Первоначально Windows NT должна была использовать OS/2 API как свое естественное окружение, однако в процессе разработки NT была изменена и стала использовать Win32 API, что отражает популярность Windows 3.0.
Именно Windows NT, появившаяся к середине 1990-х гг., сыграла решающую роль в изменении отношения пользователей к Windows. До ее появления на рынке существовала точка зрения о недостаточной надежности Windows и невозможности ее использования как серверной ОС, вследствие чего в качестве серверных ОС многие предпочитали использовать Solaris или другие версии UNIX. Однако Windows NT Server, с ее передовой надежной архитектурой, расширенной поддержкой сети, поддержкой совместимости снизу вверх для приложений, разработанных для предшествующих ОС, изменила ситуацию на рынке до такой степени, что к середине 1990-х гг. лицензий на Windows NT было продано больше, чем на UNIX.
Весьма важной линией развития Windows стало семейство клиентских ОС - Windows 9x – Windows 95 и Windows 98, затем – Windows Millennium. В этих операционных системах были реализованы расширенные мультимедийные возможности, поддержка драйверов самых разнообразных устройств (в том числе – механизм Plug-and-Play автоматического распознавания новых устройств и установки их драйверов), а также кодеки для обработки мультимедийной информации. Пользовательский интерфейс Windows 95 (с его "летающими листками" и характерным дизайном окон) стал эталоном для разработчиков GUI. Не случайно Microsoft значительно продлила срок поддержки Windows 98 для пользователей. Автору, так же как и миллионам других разработчиков, не хотелось "расставаться" с комфортным интерфейсом Windows 95 / 98.
Значительным рубежом в развитии ОС стал выпуск в 2001 г. ОС Windows XP, которая и в настоящее время, почти через 10 лет (дополненная Service Packs 1, 2 и 3), является одной из наиболее широко используемых ОС в мире. Кодовое название Windows XP – whistler (свистулька),по-видимому, из-за характерной мелодии, сопровождающей вход в системы и выход их системы. Windows XP популярна среди пользователей, благодаря удобному инсталлятору, повышенной надежности, удобному и эстетичному пользовательскому интерфейсу, расширенной поддержке драйверов устройств (начиная с Windows XP, практически никаких проблем с драйверами при установке новых устройств пользователи Windows не испытывают).
ОС Windows 2003 Server характерна прежде всего своей повышенной безопасностью – например, браузер в этой системе явным образом запрашивает у пользователя подтверждение надежности каждого конкретного нового сайта.
ОС Windows 2008 – серверная ОС с удобными средствами конфигурирования, удобной поддержкой сети, поддержкой параллельного программирования. Выпущена также ее специальная версия Windows 2008 HPC – High Performance Computing, с расширенной поддержкой параллелизма.
Недавно на рынке ОС появилась Windows 7 – клиентская ОС, по отзывам пользователей, весьма надежная и удобная.
Таков лишь очень краткий перечень уникальных результатов фирмы Microsoft в области операционных систем – за небольшой отрезок времени разработано более десятка клиентских и серверных ОС семейства Windows, значительно повышена их надежность и безопасность, расширены пользовательские возможности.
Наиболее значительной представляется линия развития ОС Windows NT – Windows 2000 – Windows XP – Windows 2003 – Windows Vista - Windows 2008 – Windows 7. Это семейство ОС использует общие принципы архитектуры и общую кодовую базу (код ядра). Поэтому в дальнейшем в данной и следующей лекциях, рассматривая принципы организации Windows 2000, мы фактически рассматриваем архитектуру всех новых ОС семейства Windows.
Принципы проектирования Windows 2000 – расширяемость, переносимость, надежность, безопасность, совместимость, производительность, поддержка интернационализации и локализации.
Расширяемость. Windows 2000 имеет многоуровневую архитектуру. Ядро и его исполнительная подсистема (executive),исполняемое в защищенном режиме, обеспечивает базовые системные сервисы. Поверх ядра реализованы несколько серверных подсистем, работающих в пользовательском режиме. Модульная структура позволяет добавлять новые подсистемы окружения без модификации ядра.
Переносимость.Благодаря своим принципам проектирования и архитектуры, Windows 2000 может быть перенесена с одной аппаратной платформы на другую со сравнительно небольшими изменениями. Система написана на языках высокого уровня - C и C++. Код, зависящий от процессора, изолирован в динамически линкуемую библиотеку (DLL), называемую уровень абстрагирования от аппаратуры - hardware abstraction layer (HAL).Идея HAL была реализована фирмой Microsoft, по признанию ее менеджеров, гораздо раньше – при разработке в 1980-х гг. пакета Microsoft Office для различных аппаратных платформ, включая Macintosh / MacOS (ОС Windows тогда еще не было). Эта же идея была использована и в Windows 2000, и еще позднее – при реализации академической версии .NET – SSCLI (Rotor), работающей на трех различных платформах.
Надежность. Windows 2000 использует аппаратную защиту для виртуальной памяти и программные защитные механизмы для ресурсов ОС.
Безопасность. Как уже было сказано в предыдущих лекциях, именно с улучшения безопасности Windows 2000 была начата инициатива trustworthy computing, и с тех пор в каждой новой ОС Microsoft уделяет особое внимание безопасности.
Совместимость. Приложения, которые разработаны с учетом требований стандарта IEEE 1003.1 (POSIX), могут компилироваться для Windows 2000 без изменений в исходном коде и исполняться в среде Windows 2000.
Производительность. Подсистемы Windows 2000 могут взаимодействовать друг с другом с помощью высокопроизводительной передачи сообщений. Прерывание низкоприоритетных потоков позволяет системе быстро реагировать на внешние события. Windows 2000 спроектирована для поддержки симметричного мультипроцессирования.
Поддержка интернационализации (i18n) и локализации (l10n).Windows 2000 поддерживает различные языки и культурные среды (locales) с помощью специализированных библиотек - NLS API.
Архитектура Windows 2000
ОС Windows 2000 с точки зрения архитектуры организована как многоуровневая система модулей. Система поддерживает защищенный (системный) режим, в котором выполняются HAL, ядро и исполнительная подсистема (executive). В пользовательском режиме исполняется набор подсистем, среди которых - подсистемы окружения, эмулирующие различные ОС, с целью совместимости приложений. Подсистемы защиты реализуют различные функции безопасности.
Схема архитектуры Windows 2000 приведена на рис. 27.1.
В последующей части лекции рассмотрим подробнее основные компоненты архитектуры Windows 2000.
Ядро Windows 2000
Ядро в системе является основой функционирования исполнительной подсистемы (executive) и подсистем, выполняемых в пользовательском режиме. Отказы страниц в ядре исключены. Его исполнение никогда не прерывается.
Ядро выполняет следующие основные функции:
- Планирование потоков
- Обработка прерываний и исключений
- Низкоуровневую синхронизацию процессов
- Восстановление после отказов электропитания.
Особенно важной и принципиально новой в операционных системах особенностью является то, что ядро системы Windows - объектно-ориентированное. Ядро использует два набора объектов:
- Объекты-диспетчеры - - объекты, управляющие диспетчеризацией и синхронизацией (события, мьютексы, семафоры, потоки, таймеры).
- Управляющие объекты - асинхронные вызовы процедур, обработчики прерываний, объекты нотификации об электропитании, объекты состояния электропитания, объекты профилирования.
Поддержка потоков и процессов в ядре.Процесс имеет адресное пространство в виртуальной памяти, информацию (например, базовый приоритет) и тесную связь с одним или несколькими процессами. Потоки – единицы исполнения, планируемые диспетчером ядра. Каждый поток имеет свое собственное состояние, включая приоритет, связь с процессором и статистическую информацию. Поток может быть в следующих состояниях: ready, standby, running, waiting, transition и terminated.
Планирование в ядре.Диспетчер использует 32-уровневую схему приоритетов для определения порядка выполнения потоков. Приоритеты разбиты на два класса:
- Класс real-time содержит потоки с приоритетами от 16 до 31.
- Класс variable содержит потоки с приоритетами от 0 до 15.
Характерными чертами стратегии приоритетов Windows 2000 являются следующие:
- Хорошее время ответа для потоков, использующих мышь и окна.
- Предоставление возможности потокам, связанным с вводом-выводом, обеспечивать занятость устройств ввода-вывода.
Планирование выполняется, когда поток переходит в состояние ready или wait, когда поток завершается, либо когда приложение изменяет приоритет потока или связь с процессором.
Потокам реального времени отдается предпочтение при выделении процессора; но ОС не гарантирует, что поток начнет выполняться в течение какого-либо определенного интервала времени (такой подход известен как soft real-time ).