IT

Windows on Arm: как работает поддержка Arm64EC и эмуляция x64

Windows on Arm умеет запускать нативный Arm-код и эмулированный x64 в рамках одного процесса благодаря технологии Arm64EC, превосходя подход Apple.

·1 мин. чтения
Windows on Arm: как работает поддержка Arm64EC и эмуляция x64

Операционная система Windows on Arm обладает уникальной возможностью, недоступной компьютерам Mac на базе процессоров Apple Silicon: она позволяет запускать нативный Arm-код и эмулированные x64-приложения в рамках одного и того же процесса. Эту задачу решает специальный программный интерфейс Arm64EC.

Qisqacha / Кратко: - Arm64EC позволяет смешивать нативный Arm-код и x64 в одном процессе. - Технология решает главную проблему переноса приложений — поддержку сторонних плагинов и DLL. - Запуск через Arm64EC заставляет приложение идентифицировать себя как x64 для совместимости структуры данных.

Технология Arm64EC (Emulation Compatible) была представлена корпорацией Microsoft одновременно с релизом Windows 11 на архитектуре Arm в 2021 году. Данный интерфейс позволяет разработчикам постепенно переводить свои крупные программные продукты на нативную архитектуру, не дожидаясь обновления всех зависимостей и сторонних плагинов. Например, классический пакет Microsoft Office для Arm активно использует эту возможность, позволяя старым x64-плагинам бесшовно работать внутри нативного приложения.

Главная сложность при создании подобных гибридных систем кроется в различиях между архитектурами процессоров и их регистрами. У Arm их больше, но структура CONTEXT в Windows исторически завязана на x86_64, из-за чего инженерам Microsoft пришлось разработать сложную систему маппинга регистров и специальных мостов-заглушек, известных как "thunks". Для косвенных вызовов встроена специальная проверка вызовов (call checker), определяющая на лету, куда именно направляется запрос — к нативному коду или в эмулятор.

Для рядовых пользователей и разработчиков в регионе СНГ и по всему миру это означает более плавный и безболезненный переход рынка на энергоэффективные процессоры Arm. Проблема неработающих плагинов, из-за которой многие профессиональные программы годами не портировались на новую архитектуру, успешно решена на системном уровне, открывая дорогу массовому распространению ноутбуков на чипах нового поколения.

Источник: XDA

Похожие статьи