Обзор свободного эмулятора Bochs: другие настройки и возможности
Содержание:
1. История и развитие;
2. Установка и базовая настройка;
3.Другие настройки и возможности (Вы читаете данный раздел);
4. Запуск эмуляции и итоги.
Синхронизация по времени - это очень важная часть Bochs. В других решениях, например VirtualBox, её настройку берет на себя сам эмулятор/виртуализатор, а в Bochs придется повозиться, подлаживая именно под ваш компьютер.
Но сначала настроим эмулируемый процессор. Ниже я затрону параметр cpu, который влияет на синхронизацию, а для тонкой настройки модели процессора и его возможностей используйте другой параметр - cpuid.
Итак, cpu:
Например:
На деле эмулятор пытается выдавать запрашиваемое количество, а получается или нет -дело стороннее. Можно вообще попробовать обойтись без параметра cpu. Текущее значение IPS эмулятор показывает в строке состояния, слева. Вариант без синхронизации с системой-хозяином выглядит примерно так:
В этом режиме Bochs, по моим наблюдениям выдает максимум IPS (эмулируемые инструкции процессора) и позволяет работать с гостевой (установленной в эмулятор) системой на приличной скорости, но с чудовищными ошибками, связанными с отсчетом времени.
Пример из жизни: в эмулятор установлена Windows XP; задача - сменить разрешение экрана. Напомню, что при этом появляется диалоговое окно с 15-секундным таймером и кнопками «Да» и «Нет», позволяющими применить новое разрешение или отменить (по умолчанию выбрана кнопка отмены). Так вот, без временной синхронизации эти 15 секунд в эмуляторе пробегают намного быстрее - так быстро, что не успеваешь нажать на кнопку «Да». Более того, глючит даже двойной щелчок мыши, поскольку он тоже «завязан» на время.
А при синхронизации падает скорость работы. Вариант синхронизации с системой-хозяином (той, в которой запущен эмулятор):
При таком раскладе и примере выше, 15 секунд в окошке действительно длятся 15 секунд, но вся работа системы сильно тормозит - это видно даже по медленному, рваному перемещению указателя мыши. Подводя итог этой темы: параметры cpu и clock надо подбирать вручную, исходя из возможностей вашего компьютера и ваших потребностей. Пожалуй, это самый сложный и раздражающий аспект настройки Bochs.
В документации на сайте Bochs приведены устаревшие сведения по настройке эмуляции оперативной памяти. Вместо параметра megs теперь следует использовать:
Например:
Что тут значат host и guest? Host - это количество памяти (в мегабайтах), резервируемой у системы-хозяина под эмуляцию памяти внутри Bochs; guest - сколько памяти эмулируется, т.е. доступно для гостевой системы.
Для полноценной работы эмулируемой видеокарты в режиме VBE надо указать путь к файлу образа прошивки видеокарты, распространяющийся под LGPL. Например:
Этот BIOS, прошивка, равно как и прошивка для карт Cirrus Logic, лежат в каталоге /bios исходника Bochs и устанавливаются автоматически при make install. Там же есть классический VGA BIOS от Elpin Systems.
1. История и развитие;
2. Установка и базовая настройка;
3.
4. Запуск эмуляции и итоги.
Синхронизация по времени - это очень важная часть Bochs. В других решениях, например VirtualBox, её настройку берет на себя сам эмулятор/виртуализатор, а в Bochs придется повозиться, подлаживая именно под ваш компьютер.
Но сначала настроим эмулируемый процессор. Ниже я затрону параметр cpu, который влияет на синхронизацию, а для тонкой настройки модели процессора и его возможностей используйте другой параметр - cpuid.
Итак, cpu:
cpu: count=количество ядер, ips=количество эмулируемых инструкций в секунду
Например:
cpu: count=1, ips=10000000
На деле эмулятор пытается выдавать запрашиваемое количество, а получается или нет -дело стороннее. Можно вообще попробовать обойтись без параметра cpu. Текущее значение IPS эмулятор показывает в строке состояния, слева. Вариант без синхронизации с системой-хозяином выглядит примерно так:
clock: sync=none, time0=local
В этом режиме Bochs, по моим наблюдениям выдает максимум IPS (эмулируемые инструкции процессора) и позволяет работать с гостевой (установленной в эмулятор) системой на приличной скорости, но с чудовищными ошибками, связанными с отсчетом времени.
Пример из жизни: в эмулятор установлена Windows XP; задача - сменить разрешение экрана. Напомню, что при этом появляется диалоговое окно с 15-секундным таймером и кнопками «Да» и «Нет», позволяющими применить новое разрешение или отменить (по умолчанию выбрана кнопка отмены). Так вот, без временной синхронизации эти 15 секунд в эмуляторе пробегают намного быстрее - так быстро, что не успеваешь нажать на кнопку «Да». Более того, глючит даже двойной щелчок мыши, поскольку он тоже «завязан» на время.
А при синхронизации падает скорость работы. Вариант синхронизации с системой-хозяином (той, в которой запущен эмулятор):
clock: sync=realtime, time0=local
При таком раскладе и примере выше, 15 секунд в окошке действительно длятся 15 секунд, но вся работа системы сильно тормозит - это видно даже по медленному, рваному перемещению указателя мыши. Подводя итог этой темы: параметры cpu и clock надо подбирать вручную, исходя из возможностей вашего компьютера и ваших потребностей. Пожалуй, это самый сложный и раздражающий аспект настройки Bochs.
В документации на сайте Bochs приведены устаревшие сведения по настройке эмуляции оперативной памяти. Вместо параметра megs теперь следует использовать:
memory: host=мегабайты, guest=мегабайты
Например:
memory: host=128, guest=128
Что тут значат host и guest? Host - это количество памяти (в мегабайтах), резервируемой у системы-хозяина под эмуляцию памяти внутри Bochs; guest - сколько памяти эмулируется, т.е. доступно для гостевой системы.
Для полноценной работы эмулируемой видеокарты в режиме VBE надо указать путь к файлу образа прошивки видеокарты, распространяющийся под LGPL. Например:
vgaromimage: file="/usr/local/share/bochs/VGABIOS-lgpl-latest"
Этот BIOS, прошивка, равно как и прошивка для карт Cirrus Logic, лежат в каталоге /bios исходника Bochs и устанавливаются автоматически при make install. Там же есть классический VGA BIOS от Elpin Systems.