Компания Microsoft всеми силами пытается привнести Windows 10 на ARM-устройства. Это позволит создавать ноутбуки с хорошей автономностью и мобильной связью, при этом сохраняя возможность работать с привычным программным обеспечением. В рамках этого проекта Microsoft объявила о партнерстве с Qualcomm для запуска приложений Win32 на чипсете Snapdragon 835 (также, скорее всего, поддержку получат Snapdragon 845 и 855).

И вот на минувшей неделе компания раскрыла полную техническую документацию для OEM-производителей, в которой описываются, в том числе, все ограничения для новых устройств. И это особенно интересно, ведь ранее маркетологи компании трубили вовсю, что Windows 10 на ARM-устройствах — это в точности та же, что и на x86-х. Но это немного не так.

Что не будет работать

Первое, на что обращаешь внимание — драйверы. Даже для x86 и x86-64 они не взаимозаменяемы, тем более — для ARM. Судя по документам, система поддерживает только драйверы ARM64, что означает отсутствие поддержки для старых периферийных устройств.

Второй момент — отсутствует поддержка приложений x64 (во всяком случае, на текущий момент). Связано ли это с проблемами адресации памяти, недостатками эмулятора или чем-то ещё — неизвестно. И это при том, что на Linux даже 32-битные системы могут работать с расширенным адресным пространством памяти.

Некоторые игры, которые полагаются на OpenGL или собственную систему защиты (DRM), не будут работать. Также могут не работать или функционировать с ошибками приложения, которые расширяют возможности обычной ОС. Это различные программы для новых методов ввода данных, программы-лаунчеры и облачные системы хранения данных.

Также будут проблемы с приложениями для мобильных версий Windows (Windows 10 Mobile и более ранних). Хотя архитектура процессора совпадает, нет соответствия на уровне программ. Кроме этого, в Windows 10 для ARM отсутствует поддержка гипервизора (виртуализация), а значит, скорее всего, не будут работать эмуляторы (частично или все).

Что может работать

В документации компания также описала, что можно сделать для некоторых приложений:

  • Если приложение использует драйвер, который не предназначен для ARM — рекомендуется перекомпилировать драйвер x86 в ARM64. См. тут.
  • Если приложение доступно только для x64 — для разработчиков Microsoft Store рекомендуется собрать ARM-версию своего приложения. См. тут.
  • Если же приложение имеет вид Win32, для него рекомендуется использует версию OpenGL, нужно выше версии 1.1 или аппаратное ускорение OpenGL.x86, которое используется для эмуляции DirectX 9, DirectX 10, DirectX 11 и DirectX 12 при работе на архитектуре ARM. См. тут.
  • Если приложение x86 не работает должным образом, рекомендуется использовать средство устранения неполадок совместимости, следуя инструкциям из средства устранения неполадок совместимости программ в ARM. См. тут.
  • Если приложение x86 не обнаруживает, что оно запущено на ARM, нужно использовать IsWow64Process2, чтобы определить, работает ли приложение на ARM. См. тут.
  • Наконец, если приложение UWP ARM32 работает не так, как ожидалось, его нужно правильно настроить. См. тут.

Вывод

Microsoft позиционировала Windows 10 на ARM как полноценную Windows 10, но с таким большим количеством исключений маловероятно, что разумный покупатель будет выбирать ARM. Microsoft уже стала жертвой Windows RT в прошлом, и если история научила нас чему-либо, то лишь тому, что разработчики не будут писать приложения или прилагать особые усилия для платформы, пока они не получат от этого хорошую прибыль. Это, в конечном счёте, и погубило платформу.

Все эти «если» и существующие ограничения на ARM повлияют на ежедневный рабочий процесс клиентов, так что многие откажутся от новинки из-за отсутствия поддержки старой периферии или виртуализации. В конечном итоге, если объединить все ограничения Windows 10 на ARM, то вы получите попросту Lite-версию Windows. А в это время Intel готовит новые чипсеты и SoC, зачастую с дискретной графикой и неплохим быстродействием.

К слову, ранее мы писали, что компания Dell не доверяет Windows 10 на ARM, и потому пока не будет производить такие устройства. Причиной этого является тот факт, что в своё время Dell активно поддерживала Windows RT и мобильную версию ОС от Microsoft. Сейчас же компания будет выживать, анализируя первые результаты.