- Windows 10 на архитектуре ARM Windows 10 on ARM
- Приложения и взаимодействия в ARM Apps and experiences on ARM
- Встроенные возможности, приложения и драйверы Windows 10 Built-in Windows 10 experiences, apps and drivers
- Приложения универсальной платформы Windows (UWP) Universal Windows Platform (UWP) apps
- приложения Win32; Win32 apps
- приложения для x86-64 x86-64 apps
- Файлы для загрузки Downloads
- Распространяемый компонент Visual C++ Visual C++ Redistributable
- Удаленные средства Remote Tools
- Windows на ARM: почему это плохая идея
- Почему не?
- Свет в конце тоннеля.
- . оказался лампочкой в тупике
- Корень проблемы
Windows 10 на архитектуре ARM Windows 10 on ARM
Изначально Windows 10 (в отличие от Windows 10 Mobile) могла выполняться только на ПК с процессорами x86 или x64. Originally Windows 10 (as distinguished from Windows 10 Mobile) could run only on PCs that were powered by x86 and x64 processors. Теперь Windows 10 Desktop может работать на компьютерах, работающих под управлением процессоров ARM64 с обновлениями или более поздними версиями. Now, Windows 10 desktop can run on machines that are powered by ARM64 processors with the Fall Creators Update or newer. Архитектура ЦП ARM обладает энергосберегающими свойствами, что позволяет этим компьютерам работать от аккумулятора весь день и поддерживать мобильные сети передачи данных. The power-saving nature of the ARM CPU architecture allows these PCs to have all-day battery life and support for mobile data networks. Эти ПК обеспечивают высокую совместимость приложений и позволяют выполнять существующие приложения win32 x86 без изменений. These PCs will provide great application compatibility and allow you to run your existing x86 win32 applications unmodified. Дополнительные сведения или демонстрация см. на видеоролике Channel 9 для постоянного подключенного ПК. For more information or a demo, look at the Channel 9 video for the Always Connected PC.
Мы используем здесь термин ARM в качестве сокращения для ПК с настольной версией Windows 10 на процессорах ARM64 (которую также называют AArch64). We use the term ARM here as a shorthand for PCs that run the desktop version of Windows 10 on ARM64 (also commonly called AArch64) processors. Мы используем здесь термин ARM32 в качестве сокращения для 32-разрядной архитектуры ARM (которую в другой документации обычно называют ARM). We use the term ARM32 here as a shorthand for the 32-bit ARM architecture (commonly called ARM in other documentation).
Приложения и взаимодействия в ARM Apps and experiences on ARM
Встроенные возможности, приложения и драйверы Windows 10 Built-in Windows 10 experiences, apps and drivers
Встроенные возможности Windows 10, такие как «ребро», «Кортана», «главное меню» и «Проводник», являются собственными и выполняются как ARM64. The built-in Windows 10 experiences such as Edge, Cortana, Start menu, and Explorer are all native and run as ARM64. Сюда также входят все драйверы устройств, такие как графика, сеть или жесткий диск. This also includes all the device drivers such as graphics, networking, or the hard disk. Это гарантирует лучшее взаимодействие с пользователем и сроком службы аккумулятора устройства, работающего на полной скорости процессора Qualcomm Снапдрагон. This ensures that you get the best user experience and battery life out of your device running at the full native speed of the Qualcomm Snapdragon processor.
Приложения универсальной платформы Windows (UWP) Universal Windows Platform (UWP) apps
Windows 10 на ARM запускает все приложения UWP для x86, ARM32 и ARM64 из Microsoft Store. Windows 10 on ARM runs all x86, ARM32, and ARM64 UWP apps from the Microsoft Store. Приложения ARM32 и ARM64 работают изначально без эмуляции, тогда как приложения x86 работают в режиме эмуляции. ARM32 and ARM64 apps run natively without any emulation, while x86 apps run under emulation. Разработчикам UWP необходимо отправить пакет ARM для своего приложения, поскольку это обеспечит максимальное удобство использования приложения на устройстве. If you are a UWP developer, please ensure that you submit an ARM package for your app as this will provide the best user experience for the device. Дополнительные сведения см. в статье Архитектуры пакета приложения. For more information see App package architectures.
Чтобы создать приложение UWP для платформы ARM64, необходимо иметь Visual Studio 2017 версии 15,9 или более поздней или Visual Studio 2019. To build your UWP application to natively target the ARM64 platform, you must have Visual Studio 2017 version 15.9 or later, or Visual Studio 2019. Дополнительные сведения см. в этой записи блога. For more information, see this blog post.
Windows 10 на ARM поддерживает приложения UWP x86, ARM32 и ARM64 из Store на устройствах ARM64. Windows 10 on ARM supports x86, ARM32, and ARM64 UWP apps from Store on ARM64 devices. Когда пользователь скачивает приложение UWP на устройстве ARM64, ОС автоматически устанавливает оптимальную версию доступного приложения. When a user downloads your UWP app on an ARM64 device, the OS will automatically install the optimal version of your app that is available. Если вы отправляете в магазин версии x86, ARM32 и ARM64, ОС автоматически установит версию ARM64 приложения. If you submit x86, ARM32, and ARM64 versions of your app to the Store, the OS will automatically install the ARM64 version of your app. Если вы отправляете только версии x86 и ARM32 для приложения, ОС установит версию ARM32. If you only submit x86 and ARM32 versions of your app, the OS will install the ARM32 version. Если вы отправляете только версию x86 приложения, ОС установит эту версию и запустит ее в процессе эмуляции. If you only submit the x86 version of your app, the OS will install that version and run it under emulation. Дополнительные сведения об архитектурах см. в статье Архитектуры пакета приложения. For more information about architectures, see App package architectures.
приложения Win32; Win32 apps
Помимо приложений UWP, Windows 10 на ARM также может работать с неизмененными приложениями Win32 x86 без изменений, что обеспечивает хорошую производительность и удобство работы пользователей, как и любой компьютер. 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. Эти приложения Win32 x86 не должны перекомпилироваться для ARM и даже не осознают, что они работают на процессоре ARM. These x86 Win32 apps don’t have to recompiled for ARM and don’t even realize they are running on an ARM processor.
приложения для x86-64 x86-64 apps
Начальная поддержка приложений x86-64 была добавлена в сборку 21277, и сейчас она разрабатывается. Initial support for x86-64 applications was added in build 21277, and is currently being developed further. Если 64-разрядная версия приложения Win32 не работает, в подавляющем большинстве приложений также доступны версии x86. If an app’s x64 Win32 version doesn’t work, the vast majority of apps do also have x86 versions available. При выборе архитектуры приложения просто выберите 32-разрядную версию x86 для запуска 32-разрядной версии приложения на компьютере с Windows 10 на ARM. When given the choice of app architecture, just choose the 32-bit x86 version to run the app’s 32-bit version on a Windows 10 on ARM PC.
Файлы для загрузки Downloads
Visual Studio 2019 предоставляет несколько загружаемых средств для Windows 10 на ARM. Visual Studio 2019 provides several tools downloads for Windows 10 on ARM. Пользователи, по-прежнему использующие Visual Studio 2017, могут использовать установщик для поиска и установки сопоставимых средств и пакетов. Users still using Visual Studio 2017 can use the installer to find and install comparable tools and packages. Обратите внимание, что для выполнения этих действий необходимо использовать Visual Studio 2019. Note that to follow these steps, you must be using Visual Studio 2019.
Распространяемый компонент Visual C++ Visual C++ Redistributable
Распространяемый пакет Visual C++ доступен для приложений ARM. The Visual C++ Redist package is available for ARM apps. Перейдите на страницу загрузки Visual Studio , прокрутите вниз до раздела все загрузки, откройте другие средства и платформы, а затем перейдите к записи Microsoft Visual C++ распространяемый пакет для Visual Studio 2019 . Visit the Visual Studio downloads page scroll down to All downloads, open Other tools and Frameworks, then navigate to the Microsoft Visual C++ Redistributable for Visual Studio 2019 entry. Выберите переключатель ARM64 , а затем Скачайте. Select the ARM64 radio button, then Download.
Удаленные средства Remote Tools
Инструменты удаленной отладки для Visual Studio доступны для приложений ARM. Remote Tools for Visual Studio are available for ARM apps. Перейдите на страницу загрузки Visual Studio , прокрутите вниз до пункта загрузки, откройте инструменты для Visual Studio 2019, а затем перейдите к записи инструменты удаленной отладки для Visual Studio 2019 . Visit the Visual Studio downloads page scroll down to All downloads, open Tools for Visual Studio 2019, then navigate to the Remote Tools for Visual Studio 2019 entry. Выберите переключатель *ARM64 , а затем Скачайте. Select the *ARM64 radio button, then Download.
Windows на ARM: почему это плохая идея
Тихо и незаметно процессоры архитектуры ARM захватили весь мир. Они мелькают картинки телевизорами, жужжат соковыжималками, говорят смарт-динамиками, раздают интернет роутерами. Это не считая смартфонов, ограниченно способных заменить все перечисленные устройства, кроме соковыжималки (хотя. ).
Как ни считай, ARM многократно популярнее гораздо более старой архитектуры x86 , широко распространённой ныне лишь в «настоящих» персональных компьютерах и ноутбуках. Причин тому много, но достаточно и того, что ARM потребляют меньше электроэнергии и выделяют меньше тепла, чем аналогичные по производительности x86. Это важно для смартфонов и встраиваемых систем (пресловутая соковыжималка с «мозгами»). Однако есть как минимум один рынка, которые им так и не удалось захватить. Конечно же, это персональные компьютеры и ноутбуки .
Почему не?
ARM’ы, конечно, многим хороши. Но производительность, скорость выполнения любых задач — их слабое место. Причина низкой производительности та же, что и у низкого энергопотребления/тепловыделения. ARM — типичный представитель семейства RISC -архитектур, ориентированных на небольшое разнообразие простых машинных команд одинаковой (и очень маленькой) длины. В отличие от них, x86 является CISC -архитектурой, использующей большое количество сложных команд разной (обычно большой) длины. Поэтому RISC-процессоры, как правило, содержат куда меньше транзисторов, чем аналогичные CISC, отсюда и меньшее потребление/выделение.
Есть немало задач, в которых RISC более производительны, чем CISC, но и в них ARM не имеет преимуществ: x86 уже давно является CISC лишь «снаружи», принимая на вход CISC-команды. «Внутри» же они преобразовываются в более короткие и простые, напоминающие RISC, и после этого выполняются. При этом CISC может дополняться новыми инструкциями, использование которых позволит программе увеличить скорость выполнения многих операций. RISC не может быть так легко расширен, это следствие малой и жёстко фиксированной длины инструкций. В довершение — x86 изначально не предназначены для экономии электроэнергии и охлаждение у них обычно серьёзное.
Впрочем, на производительность можно бы и болт забить, благо современные ARM достаточно быстры для выполнения потребительских задач: кинцо там, книжки, музычка, скайпы разные, веб-приложения, игры-времяубивалки. На основе этих процессоров вполне реально сделать, например, ноутбук. Недавно было заявлено о планах на производство ноутбуков с процессорами Quallcom Snapragon и операционной системой Windows. Только будет ли прок от такого устройства? Давайте разбираться.
Так уж сложилось, что Windows изначально написана для x86. Разработчики Windows, конечно, могут переписать своё детище для ARM, больше того, они уже это сделали, и даже не в первый раз. Но никому не нужна «голая» Windows, всем нужны программы, которые могут в её среде работать. И аппаратура, к которой прилагаются драйверы для Windows. Программ для Windows очень много, гораздо больше, чем для любой другой ОС, будь то Android, MacOS или какой-нибудь Linux. Аппаратуры это касается в не меньшей степени.
Но всё это богатство предназначено только для x86. И никто не кинется вот так переписывать его под какой-то там ARM, потому что работа эта нелёгкая, зачастую превращающаяся в повторную разработку. Ну, перепишут конечно, когда устройств на новой архитектуре будут не десятки штук, а десятки процентов. Но лишь те программы, на развитие которых ещё не забили. Да и откуда взяться этим десяткам процентов ноутбуков с Windows на ARM, если нужный софт не работает? Неоткуда.
Свет в конце тоннеля.
Есть такая вещь, как эмуляция. Когда одна среда выполнения имитирует другую среду выполнения. Например, Windows 64 bit в некотором смысле частично эмулирует Windows 32 bit, поэтому в ней работают 32-битные программы. А Windows ARM может эмулировать Windows x86. Казалось бы — вот оно, решение всех проблем!
. оказался лампочкой в тупике
Дело в том, что эмуляция — довольно ресурсозатратный процесс. Особенно когда эмулируется кардинально другая среда, например, иная архитектура процессора. История знает лишь один пример, когда миграция операционной системы на новую архитектуру прошла успешно: это переход Apple Macintosh с PowerPC на x86 в 2005 году. Тогда вопрос совместимости был решён именно эмуляцией. Но тут важно понимать, что PowerPC производительностью тогда уступал x86 не в разы, а на порядки. Лишь благодаря этому скорость работы старых приложений ничуть не упала, даже подросла местами. Пользовательский опыт от перехода был сугубо положителен.
В случае с эмуляцией x86 на ARM ситуация прямо противоположная. И пользовательский опыт почти наверняка будет отрицательным.
Корень проблемы
Нужно понимать, что Windows создавалась в ту эпоху, когда ни ARM, ни другие архитектуры всерьёз никем не воспринимались. И поэтому с кроссплатформенностью приложений у неё беда. Скажем, в Android такой проблемы не существует — все приложения там работают в виртуальной машине ART (ранее Dalvik ), созданной на основе Java . Достаточно переписать её под новую архитектуру и забыть о проблемах совместимости. В Windows же всё работает не в виртуальной, а на вполне реальной машине.
Конечно, теперь есть UWP , но много ли на нём реально полезных программ, тех самых, из-за которых люди и используют Windows? Нет, чего-то полезного там мало. Ещё меньше чего-то уникального, чего нет на том же Android. А Windows-специфичного ПО, ради которого и используют именно эту ОС, кажется, нет совсем (буду рад ошибиться). Почему? Потому что, во-первых, API для UWP предоставляет приложению куда меньше возможностей, чем старый добрый Win32 API , а во-вторых, доля Windows на архитектурах, отличных от x86, ничтожно мала. «Стоит ли напрягаться?» — спросил программист. «Нет» — ответил он сам себе. И он прав.
Уже не в первый раз делается попытка портировать Windows на ARM, и вероятнее всего, она опять провалится. Не по вине программистов MicroSoft, они-то с этим справляются неплохо. А по вине не столь далёкого прошлого, где латформа Wintel (Windows на x86), выросшая прямиком из IBM PC (с которым очень долго оставалась полностью совместимой), доминировала абсолютно, а о кроссплатформенности думать только начали. Где ни копни, все реальные (а не выдуманные) недостатки Windows происходят именно из этого наследия либо попыток от него избавиться.
Не нужно этого. Wintel — отличная платформа, до сих пор не имеющая значимых конкурентов на своём поле. Попытки выйти куда-то за пределы этого поля для MicroSoft практически всегда проваливались, так же, как и попытки других платформ занять его. В конце концов, какое применение разработчики видят ARM-ноутбукам на Windows? Кинцо, скайпы, веб-приложения. Ах да, возможность запускать программы для Wintel. Именно запускать, потому что нормально поработать с ними едва ли получится. Там же в основном «тяжеляк», которому подавай процессор помощнее и памяти побольше. Разная нетребовательная «мелочь», скорее всего, будет работать нормально, но её хватает и на других ОС, более кроссплатформенных.
На этом всё. Стандартную фразу про лайк и подписку говорить не буду.