Microsoft утверждает, что новая ОС совместима почти со всеми приложениями, входящими в первую тысячу самых популярных программ для Windows 95, Windows 98 и Windows Me, а также почти с любыми приложениями, работающими в Windows NT/2000; исключение составляют антивирусные программы, системные утилиты и приложения архивирования. Как удалось добиться такой беспрецедентной совместимости, как это работает, какие подводные камни ждут пользователей?

Не исключено, что приложения, которые исправно работали в более ранних версиях Windows, по разным причинам не смогут нормально функционировать в Windows XP. Возможно, приложение использует данные Windows в старом формате или ему необходимы сведения о пользователе, например, те, что находятся во временных или личных папках, представленные в определенном формате и расположенные в определенном месте. В основном такие проблемы возникают с приложениями для Windows 95/98/Me, но иногда и с приложениями для Windows NT/2000. Так, приложения могут вызывать старые версии функций Win32 API, которые возвращают неожиданные значения на компьютерах с большим количеством ресурсов (например, с большим объемом свободного места на диске).

Пользователи, обновившие ОС своих компьютеров с Windows 95/98/Me до Windows XP, вероятнее всего, столкнутся с проблемами. Дело в том, что приложения, написанные исключительно для платформы Windows 95, могут использовать недопустимые в Windows XP программные методы доступа к оборудованию. Некорректный прямой доступ к оборудованию может существенно дестабилизировать систему, а Windows XP в силу особенностей, унаследованных от Windows NT, требует, чтобы доступ к оборудованию обрабатывался через корректные каналы.

Однако приложения, исходно написанные для Windows NT/2000, вряд ли вызовут серьезные проблемы с совместимостью, так как базовый код этих ОС весьма похож. И все же некоторые приложения могли быть предназначены для работы только в одной-единственной версии Windows NT. Поэтому для их нормальной работы в Windows XP могут потребоваться исправления.

Чтобы решить эту проблему и облегчить пользователям работу со "старыми" приложениями, Microsoft интегрировала в Windows XP технологии совместимости с приложениями (application compatibility technologies). Они вступают в дело каждый раз, когда выполняется установка приложения, как в ходе обновления системы, так и при обычной работе.

База данных приложений

Необходимая информация о том, что нужно для совместимости того или иного приложения с Windows XP, находится в базе данных приложений. ОС использует эту базу данных при установке или загрузке приложения и вызывает средства обеспечения совместимости, если выясняется, что это необходимо.

База данных приложений состоит из следующих файлов.

  • MigDB.inf - служит для поддержки обновления ПО, созданного для платформ Windows 95/98/Me. В этом файле также отмечены приложения, несовместимые или требующие вмешательства пользователя до обновления системы.
  • NTCompat.inf - содержит информацию того же вида, что и MigDB, но служит для поддержки обновления ПО, созданного для платформ Windows NT 4.0 и Windows 2000.
  • SysMain.sdb - содержит исправления, обеспечивающие совместимость. Находится в подкаталоге AppPatch каталога Windows XP.
  • AppHelp.sdb - содержит только справочные сообщения, извещающие пользователя о необходимости установки обновлений c указанием Web-ссылок или других сведений, по которым можно отыскать эти обновления. Файл также хранится в подкаталоге AppPatch каталога Windows XP.

Таким образом, файлы MigDB и NTCompat содержат сведения, необходимые для обеспечения совместимости при переносе (migration), а SysMain и AppHelp - сведения и нужные средства для обеспечения совместимости при установке и работе приложений в Windows XP.

Обеспечение совместимости при переносе

Процедура проверки совместимости, выполняемая в ходе установки Windows XP, должна предупредить пользователя о любых серьезных проблемах совместимости до завершения процесса. Наряду со сведениями об аппаратной совместимости проблемные приложения указываются в отчете об обновлении (upgrade report), создаваемом программой Setup.

Исправления

Как отмечено выше, сопоставляя информацию, ОС определяет, как ей взаимодействовать с приложениями и, в частности, какие исправления или какую информацию предоставить пользователю. Исправления позволяют легко разрешить частые проблемы совместимости, возникающие при установке приложений, исходно написанных для Windows 95/98/NT 4.0/2000. Например, чтобы приложение работало должным образом, исправление может предоставить ему идентификационные данные предыдущей ОС. Эти исправления также устраняют ошибки, которые, как известно, неожиданно возникают при работе некоторых приложений. Такие исправления могут позволить ОС игнорировать некоторые предупреждения или задержать освобождение памяти.

К моменту выпуска Windows XP в базе данных SysMain будет около 200 исправлений, обеспечивающих совместимость. Они позволят решить большую часть проблем с совместимостью, с которыми пришлось столкнуться при разработке Windows XP. Хотя производители ПО, ИТ-менеджеры и разработчики могут использовать существующие исправления, им не разрешается создавать новые. Это ограничение, заложенное в самой структуре ОС, нужно для безопасности системы, которой может угрожать чужеродный, потенциально вредный код, если разрешить вводить его при загрузке.

Режимы совместимости

Режимы совместимости - это в сущности совокупности исправлений, обеспечивающих совместимость, которые эмулируют для приложения среду определенной ОС. Например, в режиме совместимости Windows 95 содержится около 50 наиболее распространенных исправлений, применяемых к приложениям для Windows 95, чтобы обеспечить их нормальную работу в Windows XP. В них входят идентификационные данные версии Windows 95; точная эмуляция диспетчера кучи Windows 95/98/Me; исправления пути, перенаправляющие рабочий стол и папки меню Пуск Windows 95/98/Me к их эквивалентам в Windows XP (папки Documents и Settings), а также виртуализация реестра, т. е. эмуляция реестра Windows 95/98/Me.

Существует три вида режимов совместимости.

Режимы для пользователя (end-user modes) доступны через различные элементы оболочки Windows XP, например, на вкладке Совместимость (Compatibility) мастера Program Compatibility Wizard. Через единый интерфейс пользователи могут получить доступ к пяти основным режимам: Windows 95, Windows 98/Me, Windows NT 4.0, Windows 2000, 256 цветов и разрешение экрана 640?480.

Системные режимы (system modes) включают перечисленные выше режимы для пользователя плюс несколько функций, позволяющих независимым производителям ПО (independent software vendors, ISV), системным администраторам и ИТ-профессионалам управлять "поведением" своих приложений: это, например, режим безопасности Limited User Account и режим Profiles. Первый используется, когда приложение должно работать в ограниченном контексте безопасности конкретного пользователя. Второй помогает приложению определить, как взаимодействовать с пользовательскими профилями Windows XP. Инструменты QfixApp и CompatAdmin, подробнее описанные ниже, позволяют установить их и получить доступ ко всем этим режимам.

Настраиваемые режимы (custom modes) создает системный администратор или другой ИТ-профессионал для конкретного приложения или набора приложений с помощью инструмента CompatAdmin (см. ниже). Созданные режимы могут применяться только к определенному приложению, которое устанавливает пользователь, но в них можно применять любые исправления.

Даже если Windows XP уже применила отдельные исправления из файла SysMain, обеспечивающие совместимость, пользователь все равно может прибегнуть к одному из режимов совместимости. При этом собираются все исправления для данного приложения (т. е. происходит их конкатенация), после чего они применяются каждый раз при запуске данного приложения. Это может быть полезно для решения тех проблем совместимости, для которых нет исправлений в базе данных SysMain, на Web-узле Microsoft или исправления не предоставлены производителем ПО.

Если при установке нового приложения компьютер подключен к Интернету, Windows XP обратится не только к файлам локальной базы данных (SysMain и AppHelp), но и выполнит с помощью Windows Update оперативный поиск исправлений, обеспечивающих совместимость с этим приложением, и других критически важных для него данных.

Справочная информация

Когда в результате сопоставления информации Windows XP определяет, что пользователь собирается запустить несовместимое приложение, ОС может вызвать обеспечивающее совместимость исправление или генерировать справочное сообщение.

Справочная информация (Application Help) - наиболее строгая из технологий, обеспечивающих совместимость, зарезервирована для тех ситуаций, когда исправление не решает проблему совместимости (или оно недоступно). При запуске сомнительного процесса Application Help генерирует диалоговое окно с кратким сообщением о сути проблемы, на степень серьезности которой указывает вид значка. Если это желтый треугольник с восклицательным знаком, приложение не блокируется. Это значит, что у пользователя все равно будет возможность запустить программу.

Fig.1 Рис. 1. При запуске сомнительного процесса вид значка говорит о степени серьезности проблемы.

Если значок имеет вид красного знака "стоп" (рис. 1), приложение блокируется. Это означает, что пользователь не сможет запустить программу. Щелкнув кнопку Details, пользователь получит более подробную информацию, содержимое которого берется с узла Microsoft.com (если компьютер подключен к Интернету) или из локального справочного HTML-файла (файл Apps.chm из подкаталога Help каталога Windows XP).

Application Help чаще всего используется для блокирования низкоуровневых приложений, например, антивирусов и утилит для доступа к диску, которые не созданы или не предназначены для работы в Windows XP. Блокируя установку таких приложений, эта технология позволяет предотвратить серьезные проблемы, угрожающие целостности системы.

Технологии обеспечения совместимости

Работа встроенных в Windows XP технологий обеспечения совместимости приложений зависит от файлов базы данных, хранящих информацию для сопоставления, исправления и справочную информацию. Хотя эти файлы охватывают более 1000 наиболее популярных приложений, обязательно найдутся и такие, данные о которых отсутствуют, например, заказные или специализированные приложения. Microsoft предоставляет дополнительные службы и инструменты, которые могут помочь в подобных случаях.

Мастер режима совместимости

Мастер Program Compatibility Wizard входит в состав Help and Support Center Windows XP. С его помощью пользователь может сам задать параметры совместимости приложения. Возможны четыре варианта выбора:

  • Microsoft Windows 95;
  • Microsoft Windows NT 4.0 (Service Pack 5);
  • Microsoft Windows 98/Windows Me;
  • Microsoft Windows 2000.

На рис. 2 показаны возможные режимы совместимости в окне мастера Program Compatibility Wizard.

Fig.2 Рис. 2. Выбор режима совместимости в окне мастера Program Compatibility Wizard.

После выбора нужного режима мастер Program Compatibility Wizard позволяет сконфигурировать параметры видеоадаптера, которые будут использованы с этим приложением. Глубина цвета и разрешение экрана часто становятся причинами блокирования старых приложений. Исправления позволяют мастеру, например, принудительно настроить для данного приложения разрешение 640?480 пикселов или глубину цвета в 256 цветов. Кроме того, можно отключить темы оформления (visual themes) Windows XP, которые могут стать причиной сбоев, скажем, для образовательных программ или игр.

На завершающем этапе работы мастера можно проверить выбранные параметры совместимости. Если при проверке параметров приложение работает корректно, их можно сделать постоянными, так что они всегда будут устанавливаться при запуске данного приложения.

Основные параметры совместимости можно регулировать еще проще. Диалоговое окно свойств исполняемого файла проблемного приложения имеет те же возможности, что и Program Compatibility Wizard (рис. 3).

Fig.3 Рис. 3. Параметры совместимости можно настроить и в диалоговом окне свойств исполняемого файла приложения.

Настраиваемые режимы совместимости

Кроме инструментов обеспечения совместимости с приложениями, встроенных в пользовательский интерфейс, есть еще инструменты, созданные для опытных системных администраторов и персонала поддержки: QFixApp и CompatAdmin. Они особенно полезны при поддержке приложений, отсутствующих в локальной или удаленной базе данных совместимости.

QFixApp

Это небольшое приложение предоставляет интерфейс для базы данных исправлений, обеспечивающих совместимость с ОС. Использовать этот инструмент довольно просто: нужно только найти проблемный исполняемый файл и выбрать требуемые исправления или режимы совместимости (рис. 3). Этот процесс выполняется вручную в отличие от наполовину автоматизированного мастера Program Compatibility Wizard. Однако он позволяет точно контролировать применяемые к приложению исправления, обеспечивающие совместимость. Кроме того, QfixApp не требует, чтобы приложение было занесено в список приложений с известными проблемами совместимости. Инструмент будет весьма полезен тем, кто хочет определить, какие исправления требуются их приложениям.

QfixApp позволяет выбрать любой исполняемый файл и применить к нему одно или несколько доступных исправлений из базы данных SysMain (из которых около 200 будет поставляться с продуктом). Кроме того, QfixApp позволяет определить комбинации исправлений, которые дадут приложению возможность работать в Windows XP.

Прежде чем запустить QFixApp, надо решить, что именно применить: режим совместимости или исправление. Вкладка Layers позволяет выбирать режимы совместимости, а вкладка Fixes -- задавать отдельные исправления, поодиночке или группами. Если известно, что приложение успешно работало в другой версии Windows, лучше начинать с режима совместимости. Выбрав нужный режим, щелкните кнопку Run, после чего QfixApp проверит выбранную комбинацию исправлений.

CompatAdmin

В более масштабной сетевой среде может найтись больше приложений, требующих применения технологий, которые обеспечивают совместимость. Compatibility Administration Tool (CompatAdmin) позволяет администраторам легко собирать и распространять пакеты исправлений, обеспечивающих совместимость.

CompatAdmin предоставляет интерфейс для просмотра и редактирования базы данных исправлений. Этот инструмент позволяет выбрать исполняемый файл и применить к нему одно или несколько исправлений, доступных в ОС. Определив, какие исправления нужны для работы приложения, с помощью CompatAdmin можно создать пакет для развертывания этих исправлений на других компьютерах под управлением Windows XP.

В CompatAdmin имеется возможность искать в системе или на сетевых дисках "исправленные" приложения и анализировать их на предмет использованных групп исправлений. Это упрощает процесс создания пакета исправлений для развертывания. CompatAdmin содержит список приложений, которые определены Microsoft как нуждающиеся в исправлениях для корректной работы в Windows XP.

CompatAdmin поддерживает создание пользовательских баз данных совместимости и управления ими - это одна из полезнейших функций данного инструмента. Текущая пользовательская база данных выводится в нижнем левом углу главного окна CompatAdmin. При запуске CompatAdmin в области пользовательской базы данных открыта новая пустая БД. Команды меню Database позволяют добавить к БД или удалить из нее любые исправления или режимы совместимости.

Команды этого меню активны, только когда выбрано окно пользовательской БД и/или ее действительный элемент. Добавив в нее необходимые исправления, обеспечивающие совместимость, базу можно сохранить и передать на любые компьютеры под управлением Windows XP, нуждающиеся в этих исправлениях.