30 августа 2011

Виртуальная машина QEMU

Привет всем! Хочу вас познакомить с совершенно неожиданной и впечатляющей возможностью вашего андроидофона. Современное «железо» смартфонов стало настолько мощным, что мы сегодня без каких-либо больших усилий, перепрошивок, рутирований и прочих «танцев с бубном» запустим на нем Windows 95 с помощью программы QEMU, портированной на Андроид mamaich’ем.

Прежде всего хочу уточнить два момента. Во-первых, практическая ценность этого эксперимента находится под большим вопросом: работать в настольной операционной системе на маленьком экранчике не так уж удобно, плюс есть некоторые «косяки», о них ниже. Хотя, с другой стороны, кто-то из студентов технического вуза может оценить возможность иметь MathCAD у себя в кармане, например. Или придумать еще какое-нибудь полезное применение взрослой «Винде» на смартфоне. А можно просто положить друга на лопатки, когда он будет хвастать своим супер-пупер навороченным седьмым виндофоном 😉

Во-вторых, для запуска Windows 95 на смарте требуется все-таки чуть больше усилий, чем для обычной установки программы из Маркета, однако ненамного. Во всяком случае, в этой статье я постараюсь разложить все по полочкам, а что не влезет на эти полочки, с удовольствием разъясню в комментариях по мере поступления вопросов.

Ах, да! И в третьих: программа, к сожалению, отсутствует в Андроид Маркете. Но не пугайтесь, что ссылки на файлы в этой статье будут вести на «левые» сайты – Вы всегда можете проверить их на отсутствие вредоносного кода с помощью антивируса, скачав сначала на компьютер.

Также замечу, что в ходе наших испытаний не пострадает ни один кролик не будет затронута целостность операционной системы Андроид и ваших данных. Windows 95 будет работать так же, как любая другая программа вашего смартфона, а в фоне будут выполняться все службы Андроида.

Нам понадобится

  1. Более-менее современный смартфон с 512 МБ памяти и выше. Я использовал HTC Incredible S. Можно попробовать и на меньших объемах ОЗУ, предварительно выгрузив часть приложений из памяти;
  2. Примерно 500 МБ свободного места на флэш-карте;
  3. Примерно 130 МБ Интернет-трафика;
  4. Архиватор — для распаковки архивов, например Androzip;
  5. Пригодится какой-нибудь файл-менеджер с возможностью редактирования текстовых файлов, хотя в простейшем случае он необязателен;
  6. Обычный комп, если идея вам понравилась и вы решили установить свои программы внутрь Windows.

Приступим!

Дабы было поменьше комментариев в духе «неасилил», я буду описывать необходимые действия, следуя от простого к сложному. Для начала просто запустим Windows 95, приготовленную умельцами форума 4pda.

Немного отвлечемся, я опишу, что же все-таки это мы такое делаем. Можно пропустить этот абзац тем, кто рвется в бой. Существует такая современная технология, которая называется виртуализация. В рамках этой технологии, допустим, на обычном компьютере запускается специальное программное обеспечение – так называемая виртуальная машина. Грубо говоря, виртуальная машина – это окошко на рабочем столе, внутри которого живет полноценный обособленный виртуальный компьютер. Его можно перезагружать, форматировать его жесткий диск, ставить на него любую операционную систему, да хоть вирусами заражать. При этом с точки зрения основной операционной системы компьютера эта виртуальная машина будет выглядеть как отдельный комп, стоящий рядом под столом. И наоборот, виртуальный компьютер не будет знать, что он – виртуальный. Ресурсы для работы виртуальной машины выделяются из ресурсов физического компа: объем памяти задается в настройках виртуалки, а ее жесткий диск представляет собой просто большой файл в основной операционной системе, так называемый образ. QEMU – одна из таких систем эмуляции/виртуализации с открытым исходным кодом. Замечательный человек mamaich адаптировал ее под Андроид, и теперь мы можем иметь виртуальную x86-совместимую систему у себя на смартфоне с процессором ARM.

Для начала установим само приложение по ссылке №1. В перечне программ смартфона появится невзрачный стандартный андроидовский значок с подписью libSDL. Далее необходимо скачать архив (ссылка №2), содержащий BIOS виртуальной машины. Этот архив нужно распаковать на SD-карту, в результате чего будет создан каталог /SDL.

И последнее, что мы сделаем – скачаем образ жесткого диска с Windows 95 по ссылке №3, расположив его в той же папке /SDL. Запускаем libSDL из меню программ и…

Работа в Windows 95

После процесса загрузки, спустя минуту-две, мы видим, что наши старания не прошли даром и перед нами полноценный рабочий стол Windows 95!

Для управления курсором используем тач-скрин, он выполняет роль, подобную тач-пэду. В качестве клавиш мыши в данной сборке Windows используются качельки громкости смартфона.

Для вызова программной клавиатуры нужно нажать и удерживать кнопку вызова меню смартфона, и вот здесь обнаруживается недоработка, о которой я писал выше. Пока Вы держите кнопку меню, эмулируется непрерывное нажатие клавиши Enter, так что иногда ввод текста становится проблематичным, это нужно иметь в виду.

В любой момент можно нажать кнопку «домик» и переключиться в домашний экран Андроида, «свернув» Windows 95. Как я говорил, телефон продолжает работать.

При переключении обратно в виртуальную машину через выпадающее системное меню будет предложено остановить или продолжить выполнение Windows 95.

Не стоит без надобности выбирать «terminate», выключайте Windows через Пуск – Завершение работы 🙂

Немного сложнее: установка программ в Windows

Основная сложность в том, что наша Windows полностью изолирована внутри виртуальной машины. Она не видит файловой системы Андроида, у нее нет выхода в сеть (к сожалению, кстати). Поэтому чтобы закинуть в нее дистрибутив нужной программы нужно немного попотеть. Самым разумным будет подсунуть ей виртуальный CD-ROM с дистрибутивом средствами QEMU. В каталоге /SDL, куда мы разархивировали BIOS, лежит конфигурационный файл sdl.conf, в котором описывается, с какими параметрами запускать виртуальную машину. Рассмотрим его синтаксис:

/sdl -L . -m 16 –hda C.img -boot c -usb -usbdevice tablet

Здесь

-L .

– указывает путь к каталогу, содержащего образы BIOS;

-m 16

– количество выделяемой виртуальной оперативной памяти (16 мегабайт);

–hda C.img

– файл образа жесткого диска виртуальной машины;

-boot c

– загрузочный диск;

–usb -usbdevice tablet

– включает управление курсором мыши с помощью тач-скрина смартфона.

Отредактируем эту строку, чтобы она выглядела следующим образом:

/sdl -L . -m 16 –hda C.img –cdrom progs.iso -boot c -usb -usbdevice tablet

Теперь к виртуальной машине будет подключен виртуальный CD-ROM, при этом файл образа компакт-диска должен быть сохранен в файле progs.iso и находиться в каталоге /SDL.

Для создания образа компакт-диска придется воспользоваться компьютером и какой-нибудь программой в духе Nero или UltraISO. В них можно записать необходимый дистрибутив не на диск, а в образ, который затем нужно перекинуть на флэш-карточку смартфона в папку /SDL.

Теперь, загрузив Windows 95 на смартфоне, в «Моем компьютере» можно открывать CD-ROM и ставить программу.

Совсем сложно: устанавливаем Windows 9x с нуля

В принципе, установить операционку заново можно попробовать прямо на смартфоне, этому ничто не мешает: заливаем образ дистрибутива ОС, подключаем его к виртуальному CD-ROM ставим загрузку с диска D и понеслась. Однако, из-за глючащей клавиатуры, я оставил попытки после появления окна с предложением ввести ключ.

Много легче пройти процесс установки на компьютере. Но для этого придется установить на компьютер QEMU, так сказать, в естественную ее среду.

… Вообще, я чувствую, что я уже давно на грани выхода за рамки материала, все-таки, статья о программе для Андроид. Так что за необходимыми разъяснениями прошу в комментарии.

К сожалению, текущая версия порта QEMU поддерживает установку Windows только линейки 9х; есть предположения, что это связано с нереализованным 32-битным доступом к жесткому диску. Также нестабильно работает эмуляция сопроцессора. Запуск инсталлятора Windows XP у меня привел к падению в синий экран.

Подытожим

Итак, что мы получили в итоге:

  1. Возможно, просто узнали что-то новое, почитав статью 🙂 ;
  2. Настроили на своем Андроидофоне практически полноценный x86-совместимый виртуальный компьютер;
  3. Блеснули рабочим столом настоящей винды на своем смарте в среде гаджетоманов 🙂 ;
  4. Запустили легендарные олдскульные игры;

Что мы потеряли:

  1. Пару часов времени;
  2. Пол-гига места на флэшке;
  3. Добрую сотню нейронных клеток нервной системы от использования виртуальной экранной клавиатуры 🙂

Акценты ставьте сами, кому что важней. Удачи во всем!

Ссылки на оригинальные файлы Вы можете найти на форуме 4pda в теме QEMU for Android. Поскольку не все зарегистрированы на этом форуме, я перезалил файлы на DropBox, чтобы вы могли их скачать.

QR-код, libSDL (сам эмулятор QEMU)

QR-код, libSDL (сам эмулятор QEMU)

QR-код, BIOS виртуальной машины

QR-код, BIOS виртуальной машины

QR-код, Образ жесткого диска Windows 95

QR-код, Образ жесткого диска Windows 95

Автор: Вячеслав Тихонов

Читайте также