История процессоров ARM началась больше 30 лет назад, когда компания Acorn Computers, после успеха своего компьютера BBC Micro, задумалась об обновлении процессора в нем: в оригинальной BBC использовался процессор MOS Technology 6502 (который так же был и в NES, и в Apple II, и в других популярных устройствах того времени), возможности которого в середине 80ых уже были достаточно скромны. Разумным выбором выглядел процессор Motorola 68k, однако после его тестов оказалось, что его возможности в OC Acorn используются всего лишь на 30%. И тогда Acorn решила сделать собственный процессор, упор в котором был на исключении ненужных блоков из процессора и оптимизации. Архитектуру назвали Acron RISC Machine — сокращенно ARM. Эта архитектура понравилась очень многим, потому что ее возможностей вполне хватало для работы портативных устройств (так называемых палмтопов - компьютеров, умещавшихся в ладони), которые стали массово развиваться в 90ые — ярким примером такого палмтопа является Apple Newton, который работал на процессоре ARM 610 с частотой в 20 Мгц.
Палмтопы в 90ые по сути заменяли современные планшеты и были достаточно продвинутыми аналогами записных книжек. Однако работать на них (к примеру, писать и редактировать документы) было неудобно. Разумеется, в то время уже были ноутбуки, однако они имели габариты чемодана и вес больше 3-4 кг — постоянно носить с собой такое устройство было невозможно. И поэтому уже в конце 80ых появилось множество портативных ноутбуков (прапрадедушек нетбуков), оснащенных процессорами от Intel (обычно 8088 или аналогами), монохромными экранами и работающими под MS-DOS. Примером такого устройства является Atari Portfolio:
В то время это было достаточно мощное устройство, без проблем работающее с документами, контактами и прочей текстовой информацией. При желании можно было даже смотреть картинки — правда, разумеется, они становились монохромными. Но самое главное — такие устройства работали на обычном DOS и процессорах от Intel, то есть были IBM-совместимыми ПК и позволяли запускать практически весь софт под DOS без всякой перекомпиляции.
Однако время шло, и к середине 90ых, когда на ПК уже вовсю царствовала Windows с ее графическим интерфейсом, такие портативные нетбуки с монохромными дисплеями и текстовым интерфейсом уже выглядели анахронизмами. И тогда Microsoft специально для таких устройств выпустила в 1996 году Windows CE. По внешнему виду эта система была вылитой Windows 95: кнопка Пуск, Проводник, окна, возможность работы с мышью и т.д.:
Но внутренне с полноценной Windows эта система изначально не имела ничего общего — отсутствие накопителя как такового (вместо него использовался RAM-диск, то есть по сути все данные хранились в ОЗУ), собственное ядро, написанное на C, и к тому же это была система реального времени — то есть система, реагирующая на внешние события в определенный промежуток времени (иными словами, если система занята обработкой какой-то информации, и вы нажали на кнопку пуск — система в первую очередь обработает нажатие на пуск, поэтому такого понятия как «система зависла» под CE не было). Все это в итоге привело к тому, что софт, написанный под Windows 95, на такой системе не запускался.
С одной стороны, это был шаг навстречу пользователям — теперь не нужно было знать MS-DOS, для того чтобы работать с устройством. С другой стороны — если старые ноутбуки были IBM-совместимыми и могли запускать все то море софта под DOS, то под Windows CE программы приходилось писать практически с нуля. Однако в основном устройства на WIndows CE стояли достаточно дорого, и покупали их в основном все те же люди, которые пользовались ноутбуками на MS-DOS — то есть бизнесмены, владельцы компаний и т.д., и нужные им программы уже были предустановлены — это текстовый редактор, планировщик задач, календарь, и т.д. Поэтому проблема софта остро не стояла, а более удобная в сравнении с MS-DOS система понравилась многим.
Однако у Windows CE 1.0 был один существенный недостаток — она умела работать только на процессорах MIPS. Через год, в релизе 2.0, Microsoft исправила этот досадный недостаток, и CE 2.0 можно считать первой Windows, работающей на ARM-процессорах. В дальнейшем Microsoft сильно увеличила возможности CE — был добавлен Internet Explorer (по своим возможностям мало отличающийся от десктопного аналога), Direct3D Mobile (являющейся по сути аналогом DirectX под Windows XP), введена поддержка SATA (то есть жестких дисков), а так же портированы с полноценной Windows Media Player, .NET Framework и даже Visual Studio. Однако, увы, совместимости с x86-программами это так и не дало, и практически все программы, написанные под CE, писались с нуля. Усилиями энтузиастов под Windows Mobile (построенной на CE) были портированы такие игры, как DOOM и Wolfenstein 3D, однако это были редкие исключения. С появлением планшетов и нетбуков на полноценных x86 процессорах Celeron M под управлением Windows XP и Vista ноутбуки на Windows CE окончательно ушли в прошлое, а Windows CE стала использоваться как телефонная ОС в виде Windows Mobile и Phone и как ОС для навигаторов.
Windows RT
И хотя ноутбуки с Windows CE были выдавлены с рынка более продвинутыми устройствами на x86-процессорах, в Microsoft отлично понимали, что будущее портативных устройств — это все же ARM-процессоры, которые к 2012 году имели достаточно внушительную производительность, позволяющую без проблем решать большинство пользовательских задач (просмотр 1080р видео без тормозов, быстрый серфинг в интернете, работа с документами, обработка фото и т.д.), при этом потребляя ощутимо меньше энергии, чем x86-аналоги: к примеру, потребление Apple A5 не превышало 1 Ватта, когда Intel Atom требовали минимум 2-3, а на пике TDP составляло 5 Ватт.
Понимая все это, Microsoft решила провернуть старый трюк, и в 2012 году вместе с WIndows 8 презентовала новую ОС — Windows RT. Как и CE, внешне RT выглядела абсолютно так же, как и 8 — тот же плиточный интерфейс, поддержка Microsoft Office 2013, наличие все тех же стандартных программ, панели управления, диспетчера задач и т.д. — в общем, с виду различий не было абсолютно:
Но внутри они, увы, были — как и следовало ожидать, софт под x86 процессоры на Windows RT не запускался. Однако Microsoft решили основную проблему Windows CE — в Windows RT был магазин так называемых универсальных приложений, которые могли работать как под ARM, так и под x86.
Но общественность такую систему не оценила — очень многие, поведясь на низкую стоимость устройств на ней и отсутствие внешних различий с Windows 8, стали такие устройства покупать и уже дома обнаруживать, что поставить тот же Google Chrome на нее нельзя. Разумеется, в огород Microsoft полетели камни, и те были вынуждены говорить, что Windows RT является сильно урезанной по своим возможностям системой, что в итоге привело к падению продаж до почти нулевых.
Однако энтузиасты смогли, покопавшись в настройках системы, обнаружить, что есть возможность установки перекомпилированных под ARM приложений и не из магазина Windows — в итоге был выпущен джейлбрейк, который собственно и дал возможность установки перекомпилированных под ARM x86-программ. Однако тут уже появилась другая проблема — большинство устройств работала на процессоре Nvidia Tegra 3, возможности которого были крайне скромны, из-за чего многие x86-программы банально сильно тормозили. Однако все же какой-никакой минимальный набор стороннего софта был — это архиватор 7-Zip, простейший графический редактор Paint.NET, читалка DjVu WinDjVu, TeX-редактор TexStudio, музыкальный плеер CoolPlayer и даже старые игры типа Quake 3:
Ситуация с софтом в целом была гораздо лучше, чем с Windows CE, где возможности запуска десктопных прог не было вообще, однако все же набор программ был сильно ограничен. С учетом того, что тогда же в 2012 году вышли планшеты с Intel Atom Z2760, который не требовал активного охлаждения и был полноценным x86-процессором, планшеты с недо-Windows RT постигла та же судьба, что и устройства на Windows CE: так как Microsoft обещала 5 лет поддержки, то все устройства на Windows 8 RT обновились до Windows 8.1 RT (хотя по сути это все та же RT с невозможностью устанавливать x86-софт), а год назад вышло дополнение к Windows 8.1 RT, добавляющее в систему внешний вид от Windows 10 (внутренне все осталось так же). С учетом того, что пятилетний срок поддержки истекает уже в этом году, можно смело говорить, что в этом же году Windows RT умрет окончательно.
Windows 10
После второй неудачной попытки выпустить систему для портативных ноутбуков и нетбуков в Microsoft наконец поняли, что основная проблема заключается в том, что эти системы не поддерживали запуск x86-программ по принципу скачал — установил — запустил и работаешь. Магазин Windows не прижился вовсе — большинство программ там вчистую проигрывает десктопным аналогам, а выбор браузеров вообще сводится к IE или UC Browser — нет ни Chrome, ни Opera, ни Firefox. В итоге идея делать софт, совместимый одновременно и с x86, и с ARM, провалилась с треском, и остался второй вариант — это написать x86-эмулятор для ARM-процессоров, благо с графикой серьезных проблем нет — большинство современных видеочипов в ARM-процессорах без проблем работают с DirectX 10 или 11, то есть никакого эмулятора для работы с графикой не требуется. И такой эмулятор для ARM-процессоров действительно был написан, и на флагманском Snapdragon 820 он позволяет запускать достаточно тяжелый современный софт типа того же Photoshop:
Чем же это хорошо? Это хорошо в первую очередь тем, тот же Snapdragon 820 без проблем ставится в обычный смартфон, а значит можно будет получить полноценную Windows в кармане. С учетом того, что Windows уже 5 лет как заточена под сенсор, проблем с управлением не будет, а производительности топовых ARM-процессоров вполне хватает для запуска большинства пользовательских х86-программ. Минусов, увы, тоже хватает: во-первых это эмулятор, а значит какая-то часть вычислительной мощности процессора уходит просто впустую. С учетом того, что по кроссплатформенным тестам тот же Snapdragon 820 находится лишь на уровне Atom Cherry Trail, реальная производительность будет хуже — посидеть в интернете хватит, Photoshop так же запустится, но при попытке активно использовать несколько программ скорее всего будут проблемы со скоростью работы — то есть такой ARM-франкенштейн будет работать медленнее современных планшетов на Intel Atom. Второй минус — это графика. Да, совместимость с DirectX убирает большинство проблем с отображение графического интерфейса системы и программ. Но вот с играми не из магазина приложения практически гарантированно будут проблемы из-за отсутствия специфических библиотек и поддержки того же PhysX. Но, с другой стороны, устройства с ARM-процессорами, работающие на Windows 10, разрабатываются как мультимедийные и бизнес-устройства, а с таким применением никаких проблем возникнуть не должно.
Итог
В этом году истории запуска Windows на ARM-процессорах исполняется ровно 20 лет (в 1997 году вышла Windows CE 2.0 с поддержкой ARM), и за это время Microsoft проделала гигантскую работу — от Windows CE, только внешне похожей на полноценную Windows, и Windows RT, под которую все же можно было запустить часть х86-софта, но о полной совместимости и речи не было, до полноценной работы десктопной Windows 10 на ARM-процессорах. С учетом того, что Microsoft активно развивает свой проект Surface Phone — идея о полноценной Windows в кармане уже совсем скоро может стать реальной.