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. Именно запускать, потому что нормально поработать с ними едва ли получится. Там же в основном «тяжеляк», которому подавай процессор помощнее и памяти побольше. Разная нетребовательная «мелочь», скорее всего, будет работать нормально, но её хватает и на других ОС, более кроссплатформенных.
На этом всё. Стандартную фразу про лайк и подписку говорить не буду.
Что такое Windows 10 на ARM и чем она отличается?
Microsoft только что выпустила версию Windows 10, которая будет работать на маломощном оборудовании ARM. В отличие от Windows RT, версии Windows 8, которая использовалась в оригинальных Surface и Surface 2, это полная версия Windows 10 со слоем эмуляции, позволяющим запускать традиционные настольные приложения вне Магазина Windows.
Почему Microsoft переводит Windows 10 на ARM?
ARM — это тип архитектуры процессора, отличный от стандартной архитектуры Intel x86 и 64-разрядной архитектуры Intel, используемой сегодня на ПК. (Даже AMD производит чипы, совместимые с архитектурой Intel.) Мобильные устройства, такие как iPhone, iPad и телефоны Android, а также многие другие устройства меньшего размера, имеют внутри чипы ARM вместо чипов Intel.
Маломощные ПК с ARM имеют некоторые преимущества по сравнению с традиционными компьютерами x86 (которые являются большинством настольных компьютеров и ноутбуков, которые мы используем сегодня). Компьютеры ARM имеют встроенную сотовую связь LTE, часто предлагают лучшее время автономной работы, чем процессоры Intel и AMD, а оборудование для производителей дешевле.
Microsoft хотела бы, чтобы Windows 10 работала на оборудовании ARM, чтобы воспользоваться этими преимуществами. Конечно, в ближайшее время вы, вероятно, не будете использовать настольный компьютер ARM, но ARM может стать отличным выбором для планшетов, трансформируемых моделей 2-в-1 и даже небольших ноутбуков.
Вместо того, чтобы создавать более ограниченную версию Windows для этой платформы, как это было с неудачной Windows RT, Microsoft решила выпустить полную версию Windows 10 для оборудования ARM, которая может запускать даже традиционные настольные приложения Windows.
Полученные в результате устройства предназначены для «постоянного подключения» и обещают до 20 часов активного использования и 700 часов «подключённого современного режима ожидания». И они даже могут запускать традиционное настольное программное обеспечение Windows.
Microsoft впервые объявила о партнёрстве с Qualcomm для создания Windows на ARM на WinHEC в декабре 2016 года.
Она может запускать настольные программы x86
Это снова не просто Windows RT. Windows RT не позволяла запускать традиционные настольные программы. Она даже не позволял разработчикам компилировать свои настольные приложения для процессоров ARM и предлагать их пользователям. Windows RT разрешала приложения только из Магазина Windows 8.
Windows 10 на ARM совершенно другая. Это полноценный рабочий стол Windows. Microsoft создала специальный слой эмулятора, который позволяет запускать традиционные 32-битные настольные приложения на процессорах ARM, поэтому всё должно «просто работать». Microsoft даже продемонстрировала версию Windows 10 Professional на ARM и заявила, что она поддерживает все обычные расширенные функции, которые есть в Windows 10 Professional.
Эмуляция работает совершенно прозрачно как для пользователей, так и для программ, которые они запускают. Она использует ту же технологию WOW (Windows on Windows), которую Windows использует для запуска 32-битных приложений в 64-битных версиях Windows сегодня. Однако эмуляция x86-to-ARM происходит полностью программно.
Однако эта программная эмуляция может быть проблемой. Хотя Microsoft продемонстрировала Windows 10 на ARM с настольной версией Photoshop, заявив, что она «отлично работает» на процессоре Qualcomm, почти наверняка произойдёт некоторое замедление работы требовательных настольных приложений по сравнению с их запуском в системе Intel или AMD. Нам придётся подождать, чтобы увидеть тесты производительности, когда выйдет Windows 10 на ARM.
Однако не стоит отвлекаться на эмулятор. Это не просто эмулированная операционная система Windows 10. Ядро Windows, драйверы оборудования и все программы, входящие в состав Windows, являются собственным кодом ARM. Приложения универсальной платформы Windows (UWP) из Магазина Windows также являются собственными программами ARM. Эмулятор используется только при запуске традиционного настольного программного обеспечения x86 Windows.
Большая часть этой информации взята из видео, выпущенного Microsoft во время BUILD 2017.
Поддержка старых аппаратных устройств может быть проблемой
Хотя Windows 10 на ARM может эмулировать традиционные настольные приложения, она не сможет установить драйверы оборудования, написанные для традиционных операционных систем Windows x86 или x64. Для поддержки различных аппаратных устройств потребуются версии этих аппаратных драйверов ARM.
Microsoft обещает, что Windows 10 на ARM «будет иметь отличную поддержку периферийных устройств USB с использованием встроенных драйверов класса». Это отлично подходит для современных периферийных USB-устройств. Но читайте между строк: устройства, не поддерживаемые встроенными драйверами, работать не будут. Утилиты принтера и другие утилиты драйверов оборудования также могут не работать. Это может быть проблемой для старых или менее известных аппаратных периферийных устройств.
Эти устройства будут поставляться с Windows 10 S
Не имеет значения, на каком типе процессора работает Windows. Вы получаете все возможности рабочего стола Windows с Windows 10 Домашняя или Windows 10 Профессиональная, даже если вы используете Windows 10 на ARM.
Однако эти Windows 10 на устройствах ARM будут поставляться с Windows 10 S, как и Surface Laptop от Microsoft. Windows 10 S — это более ограниченная версия Windows 10, которая может запускать только программное обеспечение из Магазина Windows. Однако вы можете заплатить за обновление до Windows 10 Pro и получить возможность устанавливать настольные приложения, как и в случае с Windows 10 S на ПК Intel и AMD. До сентября 2018 года обновление с Windows 10 S до Windows 10 Pro будет бесплатным.
Другими словами, в Windows 10 ARM — это просто ещё одна аппаратная платформа, которая работает так же — для этого просто нужен уровень эмуляции. Windows 10 S — это ограниченная версия Windows, которая может работать на любой аппаратной платформе.
Когда она выйдет?
Первым устройством с Windows 10 на ARM является Asus NovoGo. Большинство этих устройств на базе ARM, например HP Envy x2 с процессором Qualcomm Snapdragon 835, стали доступны с весны 2018 года.
Что такое Windows 10 на ARM и как это работает?
M icrosoft что запустила версию Windows 10, которая будет работать на маломощном оборудовании ARM. В отличие от Windows RT, версии Windows 8, которая использовала оригинальную Surface и Surface 2, это полная версия Windows 10 с уровнем эмуляции, которая позволяет запускать традиционные настольные приложения вне Windows Store.
Почему Microsoft ставит Windows 10 на ARM?
ARM — это другой тип архитектуры процессора от стандартной архитектуры Intel x86 и 64-битной архитектуры Intel, используемой сегодня на ПК. (Даже AMD выпускает чипы, совместимые с архитектурой Intel.) Мобильные устройства, такие как телефоны iPhone, iPad и Android, наряду со многими другими более мелкими устройствами, имеют чипы ARM вместо чипов Intel внутри них.
Маломощные ARM ПК обладают некоторыми преимуществами по сравнению с традиционными x86 (большинство из них — настольные компьютеры и ноутбуки, которые мы используем сегодня). ARM ПК имеют встроенную сотовую связь LTE, часто предлагают лучшее время автономной работы, чем процессоры Intel и AMD, а оборудование дешевле для производителей.
Microsoft хотела бы, чтобы Windows 10 запускалась на аппаратном уровне ARM, чтобы получить эти преимущества. Конечно, Вы, вероятно, не будете использовать десктопный ARM в ближайшее время, но ARM может стать отличным выбором для планшетов, устройств 2 в 1 и даже ноутбуков.
Вместо того, чтобы создавать более ограниченную версию Windows для этой платформы, как и при неудачной Windows RT, Microsoft решила выпустить полную версию Windows 10 для аппаратного обеспечения ARM, которая может даже запускать традиционные настольные приложения Windows.
Полученные устройства предназначены для «Всегда подключены» и обещают до 20 часов активного использования и 700 часов «В режиме ожидания». И они могут даже запускать традиционное программное обеспечение для настольных компьютеров Windows.
Microsoft впервые объявила о партнерстве с Qualcomm для создания Windows на ARM в WinHEC в декабре 2016 года.
Он может запускать x86 десктопные программы
Это не просто Windows RT. Windows RT не позволяла Вам запускать традиционное программное обеспечение для настольных компьютеров. Он даже блокировал разработчиков от компиляции своих настольных приложений для процессоров ARM и предлагал их пользователям. Windows RT разрешала приложения из магазина Windows 8.
Windows 10 на ARM полностью отличается. Это полный рабочий стол Windows. Microsoft создала специальный слой эмулятора, который позволяет традиционным 32-разрядным настольным приложениям работать на процессорах ARM, поэтому все должно «работать». Microsoft даже продемонстрировала версию Windows 10 Professional на ARM и заявила, что поддерживает все обычные расширенные функции, которые Вы найдете в Windows 10 Professional.
Эмуляция полностью прозрачна для пользователей и программ, которые они запускают. Он использует ту же технологию WOW (Windows для Windows), которую Windows использует для запуска 32-разрядных приложений в 64-разрядных версиях Windows сегодня. Однако эмуляция x86 в ARM происходит полностью в программном обеспечении.
Однако эта эмуляция программного обеспечения может быть проблемой. В то время как Microsoft продемонстрировала Windows 10 на ARM, запустив десктопную версию Photoshop, заявив, что она отлично работает на процессоре Qualcomm, почти наверняка будет некоторое замедление в требовании настольных приложений по сравнению с их запуском в системе Intel или AMD. Нам нужно будет дождаться, когда будут показаны тесты производительности, когда будет выпущена Windows 10 на ARM.
Однако, стоит рассказать про эмулятор. Это не просто эмуляция операционной системы Windows 10. Ядром Windows, драйверами оборудования и всеми программами, входящими в состав Windows, является собственный ARM-код. Приложения Windows Platform (UWP) из Windows Store также являются собственными программами ARM. Эмулятор используется только при использовании обычного настольного программного обеспечения для Windows x86.
Большая часть этой информации взята из видео Microsoft, выпущенного во время BUILD 2017.
Поддержка старых аппаратных устройств может стать проблемой
Хотя Windows 10 на ARM может эмулировать традиционные настольные приложения, она не сможет устанавливать драйверы оборудования, написанные для традиционных операционных систем x86 или x64 Windows. Для поддержки различных аппаратных устройств потребуются версии ARM для этих аппаратных драйверов.
Microsoft обещает, что Windows 10 на ARM «будет иметь отличную поддержку периферийных устройств USB с использованием драйверов класса in-box». Это отлично подходит для современных USB-периферийных устройств. Но читайте между строками: Устройства, которые не поддерживаются встроенными драйверами, не будут работать. Утилиты принтера и другие утилиты драйверов оборудования также могут не работать. Это может быть проблемой для более старых периферийных устройств.
Эти устройства будут поставляться с Windows 10 S
Для Windows неважно, какой тип CPU работает. Вы получаете полный рабочий стол Windows с Windows 10 Домашняя или Windows 10 Профессиональная, даже если Вы используете Windows 10 на ARM.
Тем не менее, эти устройства Windows 10 на ARM будут поставляться с Windows 10 S, как и у Surface Laptop от Microsoft. Windows 10 S — это более ограниченная версия Windows 10, которая может запускать только программное обеспечение из Windows Store. Тем не менее, Вы можете заплатить за обновление до Windows 10 Pro и возможность устанавливать настольные приложения так же, как и с Windows 10 S на компьютерах Intel и AMD. До сентября 2018 года обновление с Windows 10 S до Windows 10 Pro будет бесплатным.
Другими словами, с Windows 10 ARM — это просто еще одна аппаратная платформа, которая обрабатывается одинаково — для этого требуется только слой эмуляции. Windows 10 S — ограниченная версия Windows, которая может работать на любой аппаратной платформе.
Когда это будет выпущено?
Первым устройством Windows 10 на ARM был Asus NovoGo. Большинство из устройств на базе ARM, таких как HP Envy x2 с процессором Qualcomm Snapdragon 835, будут доступны весной 2018 года.