Хакер #305. Многошаговые SQL-инъекции
Технический директор компании TENDIGI Ник Ли ухитрился запустить операционную систему Windows 95 на умных часах Apple Watch. Правда, загрузка растянулась на целый час, но в итоге всё заработало — не очень быстро, но и не сильно хуже, чем двадцать лет назад.
На уровне железа Apple Watch очень близка к iPhone 4S и iPad 2. Часы оснащены мощным процессором с тактовой частотой 520 МГц, 512 мегабайтами оперативной памяти и накопителем, имеющим объём 8 гигабайтов.
Системные требования Windows 95 значительно ниже. Для установки этой системы нужен процессор, совместимый с 386DX, не менее 4 мегабайтов оперативной памяти и хотя бы 40 мегабайтов на жёстком диске. Обратите внимание: мегабайтов, а не гигабайтов. О гигабайтах во времена Windows 95 даже не мечтали.
Производительность процессора Apple Watch примерно в 25 раз больше производительности 386DX. Разница между потребностями Windows 95 и объёмами памяти и накопителя умных часов ещё больше. Иными словами, Apple Watch легко потянет операционную систему Microsoft.
Есть только одно препятствие. Умные часы Apple совсем не похожи на персональный компьютер образца 1996 года. Во-первых, архитектура процессора Apple Watch несовместима с Windows 95. Во-вторых, у них нет ни клавиатуры, ни мыши. Даже если Windows заработает, как ей управлять?
Решение первой проблемы — Bochs, эмулятор IBM PC с открытыми исходниками. Он устроен по тому же принципу, который используют эмуляторы других ретрокомпьютеров, и потому будет работать на процессоре с любой архитектурой. Bochs уже портирован на iOS и другие мобильные платформы.
Вторая проблема напрямую связана с тем, как ведётся разработка приложений для Apple Watch. Операционная система watchOS представляет собой вариант iOS и содержит те же самые фреймворки, но они отделены от приложений дополнительным слоем абстракции —фреймворком WatchKit, реализующим интерфейс часов. В отличие от UIKit, используемого при создании приложений для iPhone, WatchKit поддерживает работу лишь со стандартными элементами интерфейса часов и скрывает всё, что происходит на более низком уровне. Из-за этого приложению для Apple Watch недоступны координаты нажатий на сенсорный экран, которыми можно было бы заменить мышь для Windows 95.
На практике, однако, всё не так страшно. Как обнаружил известный специалист по iOS Стивен Траутон-Смит, UIKit и другие айфонные фреймворки мешает использовать лишь отсутствие их заголовочных файлов в средствах разработки приложений для в Apple Watch. Если надо, их можно добавить вручную.
Ник Ли последовал рекомендациям, которые Траутон-Смит изложил в своём блоге, и не без труда, но сумел скомпилировать и установить копию Bochs с образом Windows 95 на свои часы. Тут он столкнулся с новой трудностью: Apple Watch то и дело останавливали загрузку Windows, чтобы перейти в режим сна. Ли вышел из положения, приклеив к коронке моторчик, который будит засыпающие часы.
Спустя час с крохотного экранчика Apple Watch на него смотрела система Microsoft.