Мюллер Джон Поль
Шрифт:
Хотя на первый взгляд представленная на рис. 13.1 архитектура выглядит достаточно сложной и требующей детального рассмотрения, на практике она не слишком трудна для понимания, особенно если анализировать ее по частям. В приводящихся ниже разделах дается подробное описание компонентов архитектуры, показанных на рис. 13.1. Подсистема Win32
Windows XP использует подход клиент/сервер для управления различными приложениями (см. главу 21). Подобное управление осуществляется с помощью подсистемы Win32, образующей уровень буферизации, который преобразует запросы внешних операционных систем в запросы, распознаваемые Windows XP. В данном случае Windows XP поддерживает операционную систему MS DOS и 16-разрядные приложения Windows. Такая конвертация предусматривает переход от 16-разрядных кодовых последовательностей к 32-разрядным.
Виртуальная машина MS DOSWindows XP размещает каждое приложение операционной системы MS DOS на так называемой виртуальной машине MS DOS (Virtual DOS Machine – VDM). Для обеспечения хороших показателей надежности, активно востребованных пользователями Windows XP, специалистам Microsoft пришлось создать для каждого программного приложения оптимальную для его исполнения рабочую среду, как правило, независимую от рабочих сред других приложений. Для улучшения использования адресного пространства потребовалось добавить два дополнительных уровня: для виртуальной машины MS DOS (VDM) и для подсистемы Win32. Как и во всех прочих случаях, эти уровни прозрачны для пользователей, а программное приложение применяет прежний интерфейс.
Диспетчер настраиваемой файловой системыПрограмма Диспетчер настраиваемой файловой системы (Installable File System Manager – IFS Manager) принадлежит к верхнему уровню файловой системы, при этом Диспетчер IFS состоит из совокупности библиотек DLL, образующих интерфейс для приложений. При этом не важно, что программное приложение использует интерфейс с прерыванием 21h операционной системы MS DOS, предусматривающий инициализацию прерываний, или интерфейс операционной системы Windows, ориентированный на 16– или 32-разрядные приложения, поскольку Диспетчер IFS является именно тем компонентом, который воспринимает запросы на работу приложений. Задача этой программы состоит в контроле настраиваемой файловой системы (IFS) при передаче управления драйверу файловой системы (FSD). Windows XP поддерживает четыре различных драйвера файловой системы (вопросы сетевой поддержки более подробно рассматриваются в главе 21).
Драйвер файловой системы Наиболее типичным компонентом на уровне слоя драйвера файловой системы (File System Driver, FSD) является драйвер файловой системы NTFS (NTFS File System Driver). Тем не менее пользователи могут задействовать и другие компоненты FSD, поставляемые в Windows XP, в том числе компоненты VFAT, CDFS (Compact Disk File System) и Network FSD. За исключением Network FSD, эти файлы виртуальных драйверов устройств VxD отвечают за обслуживание запросов, связанных с обращением к локальному жесткому диску. В дополнение к потребностям самой файловой системы каждый компонент FSD обеспечивает поддержку длинных имен файлов и стабильную работу системы, что, собственно, и дает операционной системе Windows XP ощутимые преимущества над предшествующими версиями. Компьютер может использовать также ряд других компонентов FSD – в зависимости от инсталлированного оборудования.Примечание
Обычно я использую компакт-диск и диск DVD для типичных задач, поскольку число подобных драйверов уже достаточно велико. В особых случаях я предпочитаю работать с дисками CD-ROM, CD-RW, DVD-ROM и DVD-RAM: эти диски также могут применяться в компьютерной системе. Я не буду подробно рассматривать достоинства и недостатки указанных дисков: они пока еще не поддерживаются международными стандартами, демонстрируют определенную нестабильность характеристик и не нашли широкого распространения среди пользователей.
Блок-схема, показанная на рис. 13.1, содержит драйвер CDFS (CDFS Driver), который предназначен для организации доступа к компакт-дискам и дискам DVD. Набор файлов DLL этой программы заметно возрастает по объему в Windows XP, поскольку применяется для одновременной поддержки дисков CD-RW и DVD-RAM, в частности для организации записи на компакт-диске и реализации других не менее важных функций. Драйвер CDFS состоит из нескольких файлов, в том числе CDAUDIO.SYS, CDFS.SYS, CDROM.SYS, REDBOOK.SYS и STORPROP.DLL. Но это только верхняя часть айсберга, поскольку указанные файлы связаны с большим числом других файлов, привлекаемых для выполнения различных операций. Windows XP предусматривает инсталляцию драйвера CDFS только после того, как она распознает присутствие компакт-диска или диска DVD. В Windows XP основное различие (для пользователя) при поддержке компакт-диска и диска DVD состоит в использовании в последнем случае дополнительных драйверов для декодера DVD, которые позволяют воспроизводить данные с дисков DVD и компакт-дисков с помощью одних и тех же дисководов. В этом случае все компоненты FSD взаимодействуют с Диспетчером IFS и обеспечивают выдачу запросов на те уровни файловой системы, которые непосредственно связаны с соответствующими устройствами.
Примечание
Драйвер CDFS операционной системы Windows XP отвечает требованиям стандарта ISO 13346 и, в меньшей степени, требованиям стандарта ISO 9660. Подобный уровень нужен в данном случае для того, чтобы обеспечить одновременную поддержку дисков DVD и CD.
Драйвер декодера DVD
Как и в случае с компакт-дисками, управление для дисков DVD всех трех типов (со статическими данными, стираемыми данными и мультимедиа, включая фильмы) обеспечивается с помощью соответствующих драйверов, в том числе драйверов декодера. Подобные драйверы обычно состоят из нескольких файлов, причем конкретное число файлов зависит от типа декодера DVD. Так, для дисков DVD мультимедийного типа Windows XP обычно использует как минимум файл DVDPLAY.EXE. Эти программы опираются на такие новые функции Windows XP, как API-интерфейс DirectShow (для высококачественного воспроизведения и записи мультимедиа), а также ряд старых функций, например интерфейс управления рабочей средой (Media Control Interface – MSI). Драйвер декодера DVD предусматривает применение нового расширения файла: АХ. Файлы АХ активно взаимодействуют с информационными потоками рабочей среды, например с потоками среды диска DVD, и обеспечивают связь с новыми технологиями ActiveX, предложенными корпорацией Microsoft, скажем с программным приложением ActiveMovie.
Рекомендация
Обеспечиваемый уровень поддержки драйвера для декодера DVD (DVD Decorder Driver) зависит от настройки компьютерной системы. Декодер позволяет быстрее считывать и записывать данные на DVD и уменьшить отвлекаемые на это объемы памяти. Тем не менее в данном случае для поддержки декодера требуются драйверы третьей стороны, поскольку специалисты Microsoft не предусмотрели подобных программ в самой операционной системе Windows XP. В результате многие пользователи жалуются на то, что поставщики их дисков DVD обеспечивают им весьма слабую поддержку, особенно в том, что выходит за рамки Windows 9х. Существует, правда, такая фирма-поставщик, которая стремится обеспечить адекватную поддержку своих пользователей (сайт Sigma Designs Hollywood Plus MPEG Decorder. Я весьма успешно использовал программные продукты этой фирмы совместно с диском Creative PC-DVD и декодером Dxr3. Однако рекомендую сначала убедиться, что ваш плейер фирмы Sigma Designs Hollywood с декодером (той же фирмы), поскольку только в этом случае могут быть обеспечены оптимальные характеристики.
Подсистема ввода-вывода данных
Подсистема ввода-вывода данных (IO Subsystem – IOS) образует самый верхний уровень – уровень блочного устройства (Block Device Layer). В данном случае под блочным устройством (Block Device) системы я подразумеваю любое устройство, которое передает данные в виде упорядоченных по размерам групп или информационных блоков (например, жесткий диск).
Жесткий диск обычно использует информационные блоки совершенно конкретного размера (например, 512 байт). Размер блока определяет число байтов в рамках одной упорядоченной группы сохраненных данных. Другие устройства могут использовать информационные блоки иных размеров. При этом сетевые устройства, накопители на магнитной ленте, дисководы CD/DVD и подобные подпадают под определение блочных устройств системы. Подсистема IOS обеспечивает обслуживание основных устройств системы и их связь с соответствующими компонентами FSD. Так, например, эта подсистема отвечает на передачу запросов от компонентов FSD к различным драйверам устройств, а также за пересылку информации о состоянии этих программ компонентам FSD.
Драйвер для контроля объемов памяти
Драйвер для контроля объемов памяти (Volume Tracking Driver – VTD) управляет всеми съемными устройствами, связанными с компьютерной системой. Если в системе предусматривается использование дискеты, компакт-диска или диска DVD, Windows XP предполагает установить этот драйвер. В то же время Windows XP не требует выполнения инсталляции для рабочей станции, где не применяются съемные диски, или может использовать локальные и сетевые драйверы. Драйвер VTD предназначен для выполнения всего одной базовой функции: контроля за состоянием съемного устройства памяти (диска) и информирования относительно имеющих место изменений. Именно этот драйвер формирует сообщение при изъятии дискеты из дисковода (например, до завершения процесса записи данных).
Уровень абстрагирования от оборудования
Уровень абстрагирования от оборудования (Hardware Abstraction Layer – HAL) является еще одним базовым компонентом Windows XP. Специалисты Microsoft подготовили драйверы и программные средства таким образом, чтобы имелась возможность легко переносить операционную систему Windows XP на другие платформы. Базовая архитектура Windows XP в этом случае остается той же, однако драйверы низкого уровня оказываются уже другими. На рис. 13.1 показаны компоненты, предназначенные для использования совместно с 32-разрядным процессором фирмы Intel. При переходе к 64-разрядному процессору указанные драйверы должны претерпеть изменения.