Разработчик запустил 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.


    28 ноября в базе синтетического теста производительности Geekbench 5 появились результаты тестирования Mac с чипом Apple M1, на котором была запущена с помощью виртуальной машины QEMU ОС Windows 10 на ARM. Тестирование показало, что в такой конфигурации система на ARM работает быстрее, чем устройство Microsoft Surface Pro X с нативной Windows 10 на ARM. Так, в одноядерном тесте чип M1 с Windows 10 ARM и 4 ГБ ОЗУ получил 1390 баллов, а в многоядерном — 4769. Для сравнения, Surface Pro X на базе процессора Microsoft SQ2 с 16 ГБ ОЗУ получил всего 802 балла в одноядерном тесте и 3104 балла в многоядерном.

    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 в своем облаке, но их ноутбуки — нет».
    Реклама
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее

    Комментарии 15

      0
      А производительность какая получается? Схожая с каким-нибудь современным i5?
      • НЛО прилетело и опубликовало эту надпись здесь
          +1
          А может не фантазировать, а дождаться тестов? Народ уже делает.
          –4

          При всем уважении к Торвальдсу и Linux


          «Apple может запускать Linux в своем облаке, но их ноутбуки — нет» — такое чувство, что кто-то опять выеживается и при должном желании вполне все возможно

            +7
            И у меня нет времени возиться с ним, или склонности бороться с компаниями, которые не хотят мне с этим помогать.

            не будет иметь поддержки Linux, если Apple не сделает шаг в этом направлении

            При всем уважении то, что Вы написали, называется "передёргивание" (== цитата с вырыванием слов из контекста).
            Пишу с МакБука, на котором установлен Linux (в том числе). Но назвать эти танцы с бубном production ready не могу. И да — у меня тоже нет времени и желания с этим возиться. Особенно при полном отсутствии документации на этот самый макбук.

              0
              Только вот он говорил про использование линукса в качестве хост системы. Так то дебиан еще летом показывали в виртуалке, но это виртуалка, а не система с единоличным доступом к ресурсам. Так же как и здесь — винда находится в виртуалке (причем с кучей костылей), а не работает хостом.
              0

              А смысл? В винде кроме специализированного софта и игр ничего не держит, а ни того, ни другого нормального нет под арм винду

                +11

                Могу вам пожелать всю жизнь работать в офисе под мак. Я лично не выдержал, продал MacBook Pro и iMac и счастливо вернулся на форточки, где можно удобно работать. Это мой личный и узкий кейс, но тем не менее. Пользователей офиса очень много, но офисные приложения даже на айпаде удобнее. А есть ещё всякие средства проектирования, Visual Studio и т.п. Не каждая сова натягивается на яблочный глобус.

                  +2

                  А чем не устроил ms office под мак? vs тоже есть под мак

                    +5

                    Кратко — всем. Например, нет части функционала в Outlook, нельзя прикрепить календарь справа третьей колонкой, медленный рендеринг и очень тормозной скролл в Excel. Вообще он крайне медленно работает на более менее крупных таблицах. В Power Point куча мелочей сделана плохо, местами нет галочек в списках, если галка не выбрана, попробуй догадаться, что они вообще есть и т.п. Это, кстати, по всем приложениям. Нет аппаратного ускорения рендеринга. Это прямо видно. Ощущение, что работаешь в версии 97 года с натянутой шкуркой 365. Всего не вспомнишь. Плюс нет Visio, Project (Боже упаси от него, правда) и прочих более редких программ.

                      0

                      А еще драйвера печати под мак делают какие-то кастрированные (если вообще). На карантине отлично оценил отличия...

                    0
                    Специально зарегистрировался, чтобы спросить: а зачем продавать-то? Даже если неудобно работать с данными приложениями в MacOS, у Вас же было несколько способов запустить родные, полноценные программы Windows. Либо через Parallels, либо просто загружать самый обычный, полноценный Windows через Bootcamp встроенный в мак. Можно даже настроить, чтобы при включении автоматически выбирался именно Windows.
                      0
                      Тогда комментарий получился бы скучным и не собрал так много плюсов
                    +1
                    Windows ARM — не Windows RT. Она умеет эмулировать x86, также как Rosetta 2:
                    Win32 apps
                    In addition to UWP apps, Windows 10 on ARM can also run your x86 Win32 apps unmodified, with good performance and a seamless user experience, just like any PC. These x86 Win32 apps don’t have to recompiled for ARM and don’t even realize they are running on an ARM processor. Note that 64-bit x64 Win32 apps are not supported, but the vast majority of apps have x86 versions available. When given the choice of app architecture, just choose the 32-bit x86 version to run the app on a Windows 10 on ARM PC.

                    Insider Preview также поддерживает эмуляцию x64:
                    We will also expand support for running x64 apps, with x64 emulation starting to roll out to the Windows Insider Program in November

                    Насчет игр соглсаен, а обычные не системные программы должны нормально работать.
                    +1
                    попробовал и собрал QEMU с патчами от Александра, убунта запускается.
                    Больше всего напрягает этот момент:
                    — XHCI ломается в OVMF, работает в Linux + Windows.
                    при загрузке в uefi нельзя подключить клавиатуру к VM, в результате нет никакого контроля над вм-кой, либо все взлетит само в бутлодере, либо ничего не взлетает(99%) случаев

                    В итоге линукс можно запустить только указав qemu ядро, initrd и append сттроку, а затем оперировать с ним через serial console

                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                    Самое читаемое