Разработчик запустил Windows для ARM на Mac с чипом M1

Разработчик из Германии Александ Граф (Alexander Graf) смог запустить с помощью виртуальной машины QEMU ОС Windows ARM64 Insider Preview на Mac с чипом M1. Для этого он использовал кастомные патчи к QEMU и Hypervisor.framework. Согласно информации Apple, этот фреймворк позволяет взаимодействовать с технологиями виртуализации в пользовательском пространстве без необходимости писать расширения ядра (KEXT).

Граф рассказал, что это не эмуляция x86, а полноценная нативная виртуализация, при которой достигается достаточно хорошая производительность путем выполнения гостевого кода непосредственно на хост-процессоре. Он подтвердил, что практически любой разработчик может повторить его успешную попытку, но это стоит делать лишь в качестве пробного тестирования, причем нужно запастись терпением. По словам Графа, пока что запущенная Windows система на M1 не всегда стабильна, а часть функций в ней недоступны.

Вдобавок Граф пояснил, что «Windows ARM64 может очень хорошо запускать приложения x86. Не так быстро, как это делает Rosetta 2, но очень близко к ней».

Граф продолжает усовершенствование набора патчей к QEMU. Он хочет запускать в качестве гостевой системы Linux и Windows на чипе Apple Silicon. Сейчас у него виртуализация выполняется с такими ограничениями:

  • нет эмуляции WFI, vCPU всегда использует 100%;
  • обработка vtimer «немного костыльная»;
  • большинство системных регистров сейчас обрабатываются вслепую, просто возвращая 0;
  • XHCI ломается в OVMF, работает в Linux + Windows.

20 ноября вице-президент Apple Крейг Федериги (Craig Federighi) рассказал, что технически на новых Mac с M1 можно запустить Windows для ARM, которая, в свою очередь, поддерживает x86-приложения. Apple реализовала в M1 все базовые технологии для этого. Теперь очередь за Microsoft, которая должна принять решение о предоставлении лицензии Apple и пользователям на технологию запуска Windows на новых Mac.

В середине ноября стало известно, что 32-битные приложения Windows работают на Apple M1 через эмуляцию в CrossOver, запущенном в эмуляции x86. Пока что это можно сделать в CrossOver версии 20.0.2 и только на macOS Big Sur 11.1 beta.

Примечательно, что недавно Линус Торвальдс заявил, что хотел бы приобрести новый Mac с чипом Apple Silicon M1, но он не будет работать с Linux. Он пояснил, что «Apple может запускать Linux в своем облаке, но их ноутбуки — нет».