Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эмуляция делает богатую экосистему приложений Windows доступной в Arm, поэтому вы можете запускать приложения без каких-либо изменений в приложении. Эмуляция является прозрачной для вас и является частью Windows; Он не требует установки дополнительных компонентов.
Windows 11 в Arm поддерживает эмуляцию приложений x86 и x64. Производительность улучшена благодаря внедрению нового эмулятора Prism в Windows 11 24H2. Windows 10 в Arm также поддерживает эмуляцию, но только для приложений x86.
Prism;
Prism — это новый эмулятор, включенный в Windows 11 24H2. По сравнению с предыдущими технологиями эмуляции, включенными в Windows, она включает значительные оптимизации, которые повышают производительность и снижение использования ЦП приложений при эмуляции.
Prism оптимизирован и настроен специально для процессоров Qualcomm Snapdl. Для некоторых функций производительности в Prism требуются аппаратные функции, доступные только в серии Snapscsi X, но Prism доступен для всех поддерживаемых устройств Windows 11 на устройствах Arm с Windows 11 24H2.
Как работает эмуляция
Эмуляция работает в качестве программного симулятора, jit-компиляции блоков инструкций x86 в инструкции Arm64 с оптимизацией для повышения производительности сформированного кода Arm64.
Служба кэширует эти переведенные блоки кода, чтобы сократить затраты на перевод инструкций и разрешить оптимизацию при повторном запуске кода. Кэши создаются для каждого модуля, чтобы другие приложения могли использовать их при первом запуске.
Для приложений x86 уровень WOW64 в Windows позволяет запускать код x86 в Windows версии Arm64 так же, как и код x86 для работы в x64 версии Windows. Это означает, что приложения x86 в Arm защищены с помощью файловой системы и перенаправления реестра.
Для приложений x64 нет уровня WOW64 и нет отдельного реестра или папки системных двоичных файлов Windows. Вместо этого системные двоичные файлы компилируются как файлы PE Arm64X, которые можно загрузить в процессы x64 и Arm64 из одного расположения без необходимости перенаправления файловой системы. Это означает, что приложения x64 могут получить доступ ко всей ОПЕРАЦИОННОй системе, файловой системе и реестру без необходимости в специальном коде.
Обратите внимание, что эмуляция поддерживает только код пользовательского режима и не поддерживает драйверы. Все компоненты режима ядра должны быть скомпилированы как Arm64.
Обнаружение эмуляции
Приложение x86 или x64 не знает, что оно работает на компьютере с Windows на Arm, если оно не вызывает определенные API, предназначенные для передачи информации о хосте Arm64, таких как IsWoW64Process2. Приложения под эмуляцией, запрашивающие сведения о обработчике, включая метаданные или возможности функций, получают сведения, соответствующие эмулированному виртуальному процессору. По соображениям совместимости API GetNativeSystemInfo также возвращает эмулированные сведения о процессоре при выполнении из приложения под эмуляцией.
Для приложений, желающих обнаружить возможности эмуляции операционной системы, используйте API GetMachineTypeAttributes.
Обновление для поддержки версии Arm приложения
Хотя запуск приложения в режиме эмуляции на устройствах Arm — хороший способ начать, ваше приложение получит прирост производительности и уникальные качества устройств на базе Arm, если его модифицировать для поддержки Arm.
Инструкции по созданию версии Arm приложений и о преимуществах, проблемах и вариантах инструментов см. в статье "Добавление поддержки Arm" в приложение Windows. В этой статье также рассматривается доступная поддержка разработки версии приложения для Arm, а также связанных с этим зависимостей.
Windows on Arm