Специализация - эмуляция Петр Семилетов aka Roxton Xakep, номер #069, стр. 069-108-1 (tea@list.ru) Эмулируем в Linux все, что только можно эмулировать Этот обзор посвящен эмуляции в Linux различных устройств - от целого компьютера до игровой консоли. Все, кроме Wine - о нем и так часто пишут. Из принципа высокой морали коммерческие эмуляторы я тоже трогать не буду, только свободное ПО. Начнем. Bochs Держать в арсенале виртуальный компьютер архитектуры x86 не только оригинально, но и полезно. Bochs (произносится как "бокс") является чистым эмулятором, то есть не использует виртуализацию. Технология виртуализации применяется в таком популярном продукте, как VMWare. Грубо говоря, виртуализация позволяет использовать реально существующие ресурсы компьютера, разделяя их между основной системой и системой-гостем. В VMWare процессор не эмулируется, а в Bochs - эмулируется, поэтому Bochs весьма тормозит. С другой стороны, полная эмуляция позволяет запускать Bochs на компьютерах с архитектурами, отличными от x86. Например, на порте Bochs для PocketPC люди запускают даже Windows 95 и 98. Bochs эмулирует ВСЕ: BIOS, дисковые контроллеры, видяху, - все железо. Поэтому на Bochs можно исследовать, не опасаясь ничего, какие-нибудь вирусы и прочие деструктивные явления. Хотя, разумеется, его функциональность этим не исчерпывается. Устанавливать Bochs лучше из исходника, чтобы заточить именно под твою систему. В общем случае для включения всех параметров оптимизации на этапе конфигурирования надо задать дополнительный ключ: # ./configure --enable-all-optimizations # make # make install После компиляции нужно, во-первых, скопировать конфиг программы в твою домашнюю директорию. Конфиг .bochsrc лежит в директории исходника Bosch. Теперь создадим виртуальный винчестер. Даем команду "bximage". Тебя спросят, что именно создавать - винт или флоп? Винт. Просто нажимаем Enter. Bximage задает новый вопрос: а какого типа винчестер? Отвечаем: Flat. На следующем этапе вводим размер винта в мегабайтах. Например, 350. И затем - его имя. Пусть будет c.img. Утилита создает в текущей директории файл с именем c.img, а кроме того, выводит в консоль строку с параметрами созданного винчестера: "ata0-master: type=disk, path="c.img", mode=flat, cylinders=711, heads=16, spt=63". Эту строку надо скопировать в буфер обмена и вставить в конфиг Bochs'а, заменив ею оригинальную строку, относящуюся к ata0-master. Теперь можем отформатировать виртуальный винт и установить некую систему. В конфиге выбираем, с чего загружаться - с CD-ROM'а. Перед запуском эмулятора CD в приводе должен быть подмонтирован! Раскомментируем строку "boot: cdrom". И закомментируем все остальные boot-строки. Раскомментируем строку "ata0-slave: type=cdrom, path=/dev/cdrom, status=inserted". Вставляем CD, запускаем командой "bochs". Потом, при запросе режима работы - снова Enter. Идет обычная загрузка виртуального компьютера с CD. Допустим, ты засунул в сидюк какой-нибудь загрузочный диск, с которого можно запустить систему и некие системные утилиты. Создаем разделы на виртуальном винте, форматируем их, устанавливаем систему на винт, затем комментируем "boot: cdrom" и снимаем комментарий с "boot: c". |