Понять совместимость приложения

  1. Повышение надежности
  2. Улучшение безопасности
  3. Улучшение производительности и возможностей
  4. Замена устаревших решений

Последнее десятилетие изобиловало новыми и более совершенными версиями систем Windows, как в серверных версиях, так и для домашних пользователей. Их разнообразие приносит не только ощутимые выгоды, но и может вызвать значительные проблемы. Одной из них является проблема несовместимости с приложениями, которые обычно работали в предыдущих выпусках Windows. Вероятно, многие пользователи встречали сообщение о том, что данная программа не предназначена для используемой в настоящее время операционной системы, что делает невозможным ее запуск.

Можно было бы сказать, что 2006 год, когда состоялась премьера Windows Vista, стал самой большой проблемой для домашних пользователей. Эта система была своего рода горлом с точки зрения совместимости с приложениями, написанными во времена триумфа Windows XP. Три года спустя он появился на рынке Windows 7, принеся с собой множество улучшений, связанных с m.in. просто с совместимостью. Шансы на запуск приложения или игры без дополнительного вмешательства пользователя были несравнимо выше, чем несколько лет назад.

Возникает вопрос: откуда возникают эти проблемы совместимости при переходе с операционной системы на более новую? Причин может быть много: от применения недокументированного API разработчиком до неожиданного поведения системы. Также бывает, что некоторые устаревшие функции и функции системы постепенно прекращаются, в основном из-за проблем безопасности. Однако наиболее расстраивающей причиной несовместимости является тот факт, что приложения часто проверяют версию установленной системы. Если оно окажется несовместимым с приложением, оно откажет пользователю в запуске.

Возникновение несовместимости между системой Windows и приложениями может быть косвенно вызвано одним из следующих мотивов, которыми Microsoft руководствуется при создании своих последующих выпусков: стремление повысить надежность, повысить безопасность, повысить производительность и возможности системы, а также желание отозвать или заменить устаревшие решения. Мы кратко обсудим каждую из этих тем, приведя примеры изменений, внесенных в последующих выпусках Windows, которые могут помешать пользователю запускать существующие приложения.

Повышение надежности

С появлением операционной системы Windows Vista на рынке ее премьерой стала новая функция - Контроль учетных записей (UAC). Для компаний и корпораций это имело большое значение в связи с сокращением расходов, связанных с операциями, выполняемыми администраторами. Действие UAC заключается в использовании автоматизированных решений для решения различных проблем, связанных с совместимостью, таких как сохранение файлов и регистров в защищенных расположениях или сбои установки программного обеспечения в глобальных расположениях, требующих прав администратора. Например, для стандартных пользователей UAC вы можете установить программное обеспечение от независимых поставщиков или изменить часовой пояс во время поездки, увеличив их права в выбранной области до уровня локальных администраторов. Следует отметить, что хотя отключение UAC в Windows Vista или Windows 7 не оказывает существенного влияния на работу самой операционной системы, в Windows 8 это приведет к невозможности запуска Магазина Windows.

Vista и последующие версии систем Windows, в дополнение к UAC, являются Windows Resource Protection ( Windows Resource Protection ), основной задачей которой является защита доступа к выбранным файлам и службам, которые в значительной степени отвечают за стабильность системы. Например, разрешения на замену библиотеки shell32.dll предоставляются исключительно системной службой установщика модулей Windows (компонент Центра обновления Windows), что означает, что приложение не может заменить упомянутую библиотеку shell32.dll, например аналогичную библиотеку из Windows NT 4.0.

Улучшение безопасности

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

Появление пакета обновления 2 (SP2) для Windows XP привело к внедрению Data Execution Prevention (DEP), основной задачей которого является защита памяти. Эта функция поддерживается как аппаратным, так и программным обеспечением, что значительно снижает возможность запуска вредоносного программного обеспечения, часто используемого при атаке на операционную систему с использованием метода переполнения буфера. Продолжая тему элементов управления ActiveX, следует также упомянуть, что Internet Explorer, начиная с версии 7, оптимизирован для DEP. Это означает, что если элементы управления генерируют и запускают код динамически, но им не удалось пометить свою оперативную память как исполняемую, то при попытке запуска они выдают исключение. Если это не обработано, приложение вылетит.

Следующим шагом в улучшении безопасности стало введение защиты от отслеживания в Internet Explorer, начиная с версии 9 этого браузера. Есть несколько причин для его реализации, и наиболее важным является тот факт, что этот браузер - как неотъемлемая часть Windows - подвержен вредоносным программам, исходящим из Интернета. Основная цель функции Tracking Protection - защитить конфиденциальность пользователя путем блокировки агентов отслеживания. Однако следует помнить, что многие из этих веб-сайтов отслеживания также предоставляют функциональные возможности веб-приложениям, что означает, что некоторые сценарии в домене, заблокированном защитой от отслеживания , не смогут работать.

Последней функцией, описанной в этой статье для повышения уровня безопасности, является функция SmartScreen , которая дебютировала с Internet Explorer 8. Его основная задача - предотвратить загрузку вредоносного программного обеспечения. В браузере IE 9 он был расширен за счет добавления мнений пользователей о загруженных программах. Это позволяет создать репутацию отдельных приложений, прежде чем они будут помечены как хорошие, но если файл новый, при попытке загрузить его на локальный диск вы получите предупреждение о потенциальных угрозах. SmartScreen также был принят в Windows 8. Его работа позволяет избежать неприятных последствий, связанных с работой неподписанных файлов или плохой репутацией.

Улучшение производительности и возможностей

Одной из наиболее важных и наиболее комментируемых функций системы при переходе на последние версии Windows является возможность использования потенциала 64-разрядной архитектуры. Это позволяет в первую очередь запускать приложения, требующие большого объема оперативной памяти. Тем не менее, у него есть свои минусы, которые включают невозможно запустить 16-битные приложения и проблемы с драйверами устройств - особенно для старых, написанных для 32-битных операционных систем.

Имея 64-битную архитектуру, также стоит упомянуть приложения .NET, которые компилятор компилирует по умолчанию для любой архитектуры (любой параметр ЦП). Это означает, что если мы запустим такое приложение на 64-битной платформе, оно автоматически будет 64-битным. То же относится и к 32-битным системам. Это связано с тем, что .NET-приложения взаимодействуют с собственным кодом через совместимую службу COM или P / Invoke. Если 64-разрядное приложение ссылается на собственный код и пользователь пытается запустить его в 32-разрядной системе, процесс завершится сбоем, поскольку он не сможет загрузить соответствующие библиотеки. К счастью, эту проблему можно решить, просто изменив настройки компилятора или изменив исполняемый файл с помощью инструмента CorFlags.

Премьера Windows Vista - это не только введение контроля учетных записей, но и реализация диспетчера окон рабочего стола ( Desktop Window Manager , DWM). Это новый режим отображения приложений, в котором приложения отображаются в неэкранные растровые изображения вместо экранной памяти, а затем собираются DWM в готовый дисплей изображений. Это очень важно для компаний и людей, которые используют приложения удаленного рабочего стола, которые передают изображения с помощью зеркальных драйверов. Начиная с выпуска Windows 8, невозможно отключить DWM - теперь это неотъемлемая часть операционной системы.

Для мобильных устройств ключевым аспектом производительности является время автономной работы. Новая модель приложения в Windows 8 приводит к тому, что приложения, работающие в режиме ModernUI, которые в настоящее время не используются, переходят в режим ожидания, и в результате их использование ресурсов резко сокращается, что, в свою очередь, снижает потребление энергии аккумулятора. Случай с приложениями, работающими на традиционном рабочем столе, выглядит немного иначе. Их работа включает использование вычислительной мощности процессора и, следовательно, более быстрое потребление батареи. Поэтому, чтобы удовлетворить требования пользователей, Microsoft представила в Windows 8 функцию, которая позволяет приостанавливать приложения, которые в данный момент не используются. В случае программ, создатели которых не ожидали такой функции, некоторые сложности могут возникнуть во время их работы.

Замена устаревших решений

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

В настоящее время файлы справки WinHelp постепенно сокращаются, которые были представлены вместе с Internet Explorer 3. На их месте появился новый формат файлов справки - HTML Help. Причиной такого шага стал тот факт, что, хотя эти файлы были сопоставимы с исполняемыми файлами, они значительно снизили уровень безопасности, который был введен в результате внедрения Windows Vista. Учитывая более двух десятилетий разработки контента, WinHelp по-прежнему будет доступен пользователям Windows Vista, Windows 7 или последней версии Windows 8, но только в виде загружаемых файлов.

Учитывая более двух десятилетий разработки контента, WinHelp по-прежнему будет доступен пользователям Windows Vista, Windows 7 или последней версии Windows 8, но только в виде загружаемых файлов

Возникает вопрос: откуда возникают эти проблемы совместимости при переходе с операционной системы на более новую?