Открыть сервис

MorphX

MorphX — это кодовое название технологии, разработанной корпорацией Microsoft для эмуляции приложений, написанных для процессоров с архитектурой x86/x64, на устройствах под управлением операционных систем Windows RT, работающих на процессорах с архитектурой ARM. Технология представляла собой один из ключевых элементов стратегии Microsoft по выходу на рынок планшетных компьютеров и мобильных устройств, позволяя пользователям запускать существующие программы для настольных ПК на новой платформе без необходимости их перекомпиляции.

История создания

Предпосылки и разработка

В начале 2010-х годов рынок мобильных устройств (планшетов и смартфонов) стремительно рос, доминируя на нём платформы на базе ARM-процессоров (Apple iOS, Google Android). Microsoft, стремясь закрепиться в этом сегменте, разработала операционную систему Windows RT — версию Windows 8, оптимизированную для ARM-архитектуры. Однако ключевой проблемой новой платформы была несовместимость с огромным библиотекой классических приложений Windows (x86), от которой отказываться было нельзя, так как это лишало устройство значительной части функциональности.

Для решения этой проблемы была создана технология динамической двоичной трансляции (Dynamic Binary Translation, DBT), получившая кодовое имя MorphX. Разработка велась под руководством подразделения Windows и, по некоторым данным, опиралась на исследования и наработки, полученные Microsoft в ходе создания эмуляторов для Xbox и более ранних проектов. Первые упоминания о проекте появились в утёкших документах и блогах разработчиков в 2011-2012 годах.

Релиз и использование

Технология MorphX была впервые представлена публике вместе с выходом планшета Microsoft Surface RT в октябре 2012 года. Она была встроена непосредственно в ядро операционной системы Windows RT и работала на уровне, невидимом для пользователя. При запуске приложения, скомпилированного для x86, система автоматически определяла его архитектуру и, при необходимости, запускала процесс динамической трансляции.

Принцип работы

MorphX не является эмулятором в классическом понимании (который имитирует целый компьютер). Это система динамической двоичной трансляции (Dynamic Binary Translation). Её работа основана на следующих этапах:

  1. Анализ кода: При запуске x86-приложения MorphX загружает его машинный код (набор инструкций для процессора x86).
  2. Трансляция «на лету»: Специализированный компилятор анализирует блоки инструкций x86 и преобразует их в эквивалентные инструкции для ARM-процессора. Трансляция происходит не сразу для всей программы, а небольшими фрагментами (блоками), которые выполняются в данный момент.
  3. Оптимизация и кэширование: Транслированные блоки кода кэшируются в оперативной памяти. Если программа повторно обращается к тому же участку кода, MorphX использует уже готовый, оптимизированный ARM-код, что значительно ускоряет работу.
  4. Обработка системных вызовов: Приложения x86 обращаются к функциям операционной системы (API Windows). MorphX перенаправляет эти вызовы на соответствующие функции в Windows RT, обеспечивая корректную работу.

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

Ограничения и производительность

Несмотря на инновационность, MorphX имел ряд существенных ограничений, которые в конечном итоге повлияли на успех всей платформы Windows RT:

  • Производительность: Динамическая трансляция всегда приводит к снижению производительности. По оценкам экспертов, приложения, запущенные через MorphX, работали на 30-50% медленнее, чем их нативные версии на аналогичном по мощности x86-процессоре. Особенно это было заметно в ресурсоёмких задачах (обработка видео, сложные игры).
  • Совместимость: MorphX поддерживал только 32-битные (x86) приложения. 64-битные (x64) программы, драйверы устройств и приложения, требующие прямого доступа к аппаратному обеспечению (например, антивирусы, утилиты для работы с виртуальными машинами), не работали. Также были проблемы с приложениями, использующими сложные графические технологии (DirectX 9/10/11 без оптимизации).
  • Энергопотребление и нагрев: Процесс трансляции требовал значительных вычислительных ресурсов, что приводило к повышенному энергопотреблению и нагреву устройства, особенно при длительной работе с «тяжёлыми» x86-программами.
  • Отсутствие поддержки «тяжёлых» приложений: Microsoft официально рекомендовала разработчикам создавать нативные ARM-версии своих приложений. Однако для многих популярных программ (например, Adobe Photoshop, Google Chrome) таких версий не вышло, и их работа через MorphX была либо невозможна, либо крайне неэффективна.

Критика и судьба технологии

Технология MorphX подверглась критике со стороны пользователей и экспертов. Основные претензии сводились к тому, что она создавала ложное впечатление о полноценной совместимости Windows RT с классическим ПО. Пользователи, купившие устройства на Windows RT (Surface RT, Nokia Lumia 2520, ASUS VivoTab RT), сталкивались с тем, что многие привычные программы либо не запускались, либо работали слишком медленно для комфортного использования.

Microsoft не раскрывала детальных технических характеристик MorphX, и её работа оставалась «чёрным ящиком» для сторонних разработчиков. Это затрудняло оптимизацию ПО.

В 2013 году, с выходом Windows 8.1 RT, технология была доработана: улучшилась производительность и совместимость с некоторыми категориями приложений. Однако кардинально ситуацию это не изменило.

В конечном итоге, коммерческий провал Windows RT привёл к отказу от платформы. В 2015 году Microsoft анонсировала, что Windows RT не будет получать обновление до Windows 10. Технология MorphX, как неотъемлемая часть этой ОС, также была прекращена. Опыт, полученный при её разработке, был частично использован в более поздних проектах Microsoft, связанных с эмуляцией и виртуализацией, в частности, в подсистеме Windows для Linux (WSL) и эмуляторе для Windows 10 на ARM (64-bit x86 emulation), который появился в 2017-2018 годах.

Значение и наследие

Несмотря на неудачу, MorphX стала важным технологическим экспериментом. Она продемонстрировала принципиальную возможность запуска x86-приложений на ARM-устройствах с приемлемой производительностью для офисных и простых задач. Опыт Microsoft показал, что для успеха такой платформы необходима не только мощная технология эмуляции, но и активная работа с разработчиками по созданию нативных приложений, а также прозрачная политика совместимости.

Идеи, заложенные в MorphX, нашли своё развитие в современных решениях:

  • Windows 10/11 на ARM: В 2017 году Microsoft выпустила версию Windows 10 для ARM-процессоров (Qualcomm Snapdragon), которая включает в себя встроенный эмулятор x86 (сначала 32-битных, а затем и 64-битных приложений). Этот эмулятор, по сути, является наследником MorphX, но значительно более производительный и оптимизированный.
  • Apple Rosetta 2: При переходе Apple на собственные ARM-процессоры (Apple Silicon) в 2020 году, компания представила технологию Rosetta 2, которая также использует динамическую двоичную трансляцию для запуска приложений Intel x86. Хотя это независимая разработка, она решает ту же задачу, что и MorphX, но с гораздо большим успехом благодаря более современной архитектуре и лучшей оптимизации.

Таким образом, MorphX, будучи коммерчески неудачным продуктом, стала важным этапом в эволюции технологий эмуляции и трансляции, подготовив почву для современных решений, позволяющих работать с x86-программами на ARM-устройствах.

Источники

  • Paul Thurrott. Windows 8 Secrets. Wiley, 2012.
  • Блог разработчиков Microsoft (Windows Blog, 2012-2013).
  • Документация к Windows RT SDK.
  • Аналитические статьи на сайтах AnandTech, Ars Technica, Tom's Hardware (2012-2013).
  • Презентации Microsoft на конференциях Build (2011, 2012).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →