Мюллер Джон Поль
Шрифт:
Специальные драйверы, предназначенные для работы с видеоданными, также могут присутствовать в указанном перечне. Например, для определенного набора микросхем материнской платы может загружаться видеодрайвер AGP (Accelerated Graphics Port – порт ускоренной передачи графических данных). В этот момент Windows XP также загружает средства поддержки порта MPEG (Motion Pictures Experts Group – международный графический стандарт, созданный группой MPEG для сжатия и воспроизведения). При наличии необходимых сетевых средств поддержки Windows XP, скорее всего, будет инициировать загрузку программ поддержки интерфейса NDIS (Network Driver Interface Specification – интерфейс сетевого управления).
После завершения описанных этапов система готова к работе, поскольку к этому моменту Windows XP уже загрузила и проверила все необходимые средства поддержки устройств. Однако пока операционная система не в состоянии применять разнообразные функции, поскольку не инсталлированы соответствующие службы, например служба RAS (Remote Access Service – служба удаленного доступа). Предстоит также загрузить вспомогательные драйверы для аппаратных средств, в частности драйвер для формирования соединений с телевизионным электронным тюнером видеоадаптера.
На определенном этапе Windows XP завершает процедуру загрузки драйверов и приступает к загрузке служб. На экране появляется экран для регистрации пользователя при входе в систему, характерный при инициализации операционной системой функций графического пользовательского интерфейса (Graphical User Interface – GUI), в частности программы Проводник. Вы можете зарегистрироваться в системе и продолжить работу.
Компоненты Windows XP
Как отмечалось выше, Windows XP относится к числу модульных операционных систем. В предшествующих разделах уже обсуждалось несколько файлов (в том числе те, которые обычно помещаются на жесткий диск), которые, в общем случае, подразделяются на несколько типов и подсистем. Ниже приводится описание различных подсистем Windows XP в объеме, достаточном для понимания их роли и взаимосвязей. Однако такое описание не более чем обзор и не претендует на анализ различных нюансов архитектуры Windows XP.
Новое ядро системы
Архитектура Windows XP состоит из нескольких основных компонентов (рис. 11.4), причем каждый компонент отвечает за определенный раздел среды операционной системы. Например, уровень API создает возможность для взаимодействия приложений с Windows XP, в частности с системой управления файлами. На практике подготовка приложения Windows XP невозможна без привлечения уровня API.
Рисунок 11.4. Операционная система Windows XP состоит из нескольких основных компонентов
Другими словами, специалисты Microsoft создали Windows XP в виде многоуровневой структуры, уровни которой представлены системными службами. Каждый уровень обеспечивает собственный тип поддержки и добавляет свои функции и возможности к общей совокупности функций. Организация взаимодействия между уровнями оказывается весьма важным вопросом, поскольку она определяет возможности системы в целом. Работа с уровнями в определенном смысле напоминает систему заказа по фирменному каталогу, когда человек заказывает из дома (пользовательский режим системы) те или иные продукты. Для заказа ему приходится направлять запрос по телефону, а центр поддержки каталога (обслуживание в базовом режиме ядра) отвечает на этот запрос. Пользователь должен подготавливать свой запрос весьма тщательно, поскольку в противном случае он рискует получить не тот продукт или не получить ничего. Каталог представляет собой набор инструкций для заказа и содержит коды, цвета, размеры и другие атрибуты продуктов, которые следует точно указать. Центр поддержки каталога также должен обеспечить правильные прием и передачу данных компаниям, осуществляющим выпуск и доставку продуктов, чтобы выполнить заказ пользователя. Именно на этом принципе основано взаимодействие между различными системными уровнями. Каталог, используемый Windows XP, обычно называют каталогом API (Win32 API). В приводящихся ниже разделах дается описание основных компонентов операционной системы (см. рис. 11.4).
Системная виртуальная машина
Системная виртуальная машина (System Virtual Machine – System VM) – компонент Windows XP, состоящий из трех основных элементов: 32-разрядных приложений Windows, оболочки и 16-разрядных приложений Windows. На практике компонент System VM обеспечивает исполнение большей части функций, инициируемых пользователями Windows XP. В его отсутствие приложения просто не будут работать. (Я в данном случае не имею в виду приложения MS DOS.) Причина состоит в том, что Windows XP использует совершенно иной набор функций для исполнения этих приложений. Более того, они обычно запускаются в другом режиме работы процессора.
Когда речь заходит о поддержке 16-разрядных приложений, различия между Windows XP и Windows 9х становятся весьма заметными. Так, Windows 9х все еще предусматривает применение большого числа 16-разрядных приложений, а Windows XP предпочитает работу с 32-разрядными кодовыми последовательностями. Если Windows 9х допускает совместное использование области памяти 16-разрядными приложениями, то Windows XP исполняет каждое 16-разрядное приложение в виде независимого процесса. Следовательно, в случае отказа одного из приложений другие приложения, активизированные той же компьютерной системой, скорее всего, не пострадают.
Подобные предосторожности приводят к тому, что Windows XP обеспечивает более эффективный режим защиты для 16-разрядных приложений. На практике нечасто приходится сталкиваться с отказами приложений, но даже при возникновении подобных отказов весьма маловероятно, что они окажут катастрофическое воздействие на систему. Один из негативных моментов, являющихся следствием такого рода защиты, связан с ограничением возможностей применения 16-разрядных приложений в Windows XP. Особенно это касается тех программ, которые не стопроцентно совместимы с другими приложениями операционной системы.
Теоретически компонент System VM призван поддерживать другие компоненты уровня Windows API. Однако, поскольку они связаны с использованием иных служб, я расскажу о них в другом разделе. (Нет необходимости повторять, что различия между клиентом или системной виртуальной машиной и сервером или компонентами на уровне Windows API архитектуры Windows XP в данном случае более заметны, чем в Windows 9х.) Даже если приложения используют интерфейс API, а вы взаимодействуете с ними, вам не нужно задумываться об интерфейсе API до тех пор, пока не потребуется создать приложение. Я всегда рассматриваю интерфейс API в качестве специальной программной службы, а не в качестве объекта, о котором приходится постоянно волноваться. Ниже приводится более детальный перечень составляющих компонента System VM:
• 32-разрядные приложения операционной системы Windows. Windows XP имеет возможность использовать разнообразные 32-разрядные программные приложения, часть из которых не работает в Windows 9х, поскольку они опираются на применение каталога Win32 (являющегося разделом интерфейса Windows API). 32-разрядные приложения обычно характеризуются более гибким поведением в многозадачной среде, чем их 16-разрядные аналоги. Кроме того, 32-разрядные приложения поддерживают новые функции Windows XP, например длинные имена файлов, чего 16-разрядные приложения в большинстве случаев не допускают. 32-разрядные приложения также обеспечивают поддержку двух весьма важных функций. Первая использует режим вытесняющей многозадачности. В частности, она позволяет переключаться между задачами более естественно и использовать интервалы ожидания для корректной инициализации. Вторая функция предполагает активное применение плоского адресного пространства памяти, что позволяет более гибко выделять приложениям необходимые объемы памяти, улучшая результаты выполнения приложений. Кроме того, те приложения, которые ориентируются на работу с подобным адресным пространством, характеризуются более высокими показателями быстродействия, поскольку они практически не тратят время на взаимодействие с сегментированным адресным пространством, использовавшимся ранее специалистами фирмы Intel;
• оболочка (Shell). В отличие от предшествующих версий ОС Windows, Windows XP поставляется только с одной пользовательской оболочкой, роль которой играет программа Проводник. Эта программа обеспечивает возможность работы с 32-разрядными кодовыми последовательностями и взаимодействие с новым интерфейсом (конечно, при необходимости легко перейти к применению интерфейса Windows 2000);
• 16-разрядные приложения операционной системы Windows. Специалисты Microsoft провели в рамках Windows XP многочисленные изменения 16-разрядных приложений и средств их поддержки. В результате эти приложения теперь почти не создают проблем, поскольку исполняются независимым образом (фактически в ходе отдельного сеанса работы). Кроме того, режим совместимости обеспечивает эффективную поддержку каждого сеанса и выделяет необходимые приложению ресурсы. Таким образом, для приложения формируется рабочая среда, позволяющая задействовать его наиболее эффективно.Примечание
Одной из важнейших черт Windows XP является возможность использования режима совместимости (см. раздел «Режим совместимости» главы 10). Разделение сеансов работы для 16-разрядных приложений означает, что Windows XP способна изменять вид рабочей среды с целью повышения ее эффективности. Например, если приложение не поддерживает 16-разрядную палитру цветов, режим совместимости позволит перейти к применению 256 цветов. Это придает Windows XP существенно большую функциональную гибкость по сравнению с Windows 2000, но сопровождается изменением самих режимов управления приложениями.
Уровень Windows API
Windows XP располагает двумя интерфейсами Windows API, причем первый интерфейс API практически полностью соответствует тому интерфейсу API, который имелся в Windows 3.1. Первый интерфейс API обеспечивает взаимодействие с 16-разрядными кодовыми последовательностями, на основе которых раньше создавались 16-разрядные приложения Windows. Другой интерфейс представляет собой 32-разрядный интерфейс Windows API и предназначен для взаимодействия с новыми, 32-разрядными, приложениями Windows XP. Он обладает целым рядом новых возможностей и, в частности, характеризуется лучшими показателями надежности.
Если обратиться к нужному разделу Windows XP, можно поближе познакомиться с обоими интерфейсами API. Они опираются на использование независимых файлов, располагающихся соответственно в папках SYSTEM (16-разрядный вариант) и SYSTEM32 (32-разрядный вариант). В частности, эти интерфейсы применяют целый ряд однотипных диалоговых окон, предназначенных для открытия файлов и поиска текстовой информации в документах, – эти окна поддерживаются с помощью двух файлов: COMMDLG.DLL (16-разрядный вариант) и COMDLG32.DLL (32-разрядный вариант). Число 32, присутствующее в именах файлов, обычно указывает на 32-разрядный вариант программы. Совместная работа диалоговых окон придает приложениям более систематизированный вид, чего, собственно, и ожидают пользователи. Познакомиться с другими разделами интерфейса API можно в папке SYSTEM. Специалисты Microsoft собрали различные запросы API и поместили их в независимые файлы этой папки, что, по их мнению, упростит модификацию операционной системы в будущем. Применение независимых файлов также облегчает инсталляцию модифицированных программных продуктов и уменьшает объемы памяти жесткого диска, отвлекаемые на хранение невостребованных функций.