Bochs написан в духе всех лучших приложений с открытым исходным кодом. Это приложение управляемое терминалом, взаимодействует через командную строку Windows CE.
О Bochs
Bochs — это программа, которая имитирует полноценный компьютер Intel x86.
Эмулятор включает в себя эмуляцию процессора Intel x86, распространенных устройств ввода-вывода и пользовательский BIOS. Bochs могут быть скомпилированы для эмуляции множество разных процессоров x86.
Инструмент имеет модели устройств для всех стандартных периферийных устройств ПК:
- клавиатуры
- мыши
- монитор
- диски
- прочее
Поскольку утилита имитирует всю среду ПК, ПО, работающее в симуляции, «верит», что оно работает на реальной машине. Такой подход позволяет инструменту запускать широкое разнообразие ПО без изменений.
В результате запускаются популярные ОС x86:
- Windows
- Linux
- BSD
Bochs написан на языке программирования C ++ и предназначен для работы на разных платформах хоста, включая x86, PPC, Alpha, Sun и MIPS. Независимо от платформы хоста, утилита по-прежнему имитирует аппаратное обеспечение x86.
Другими словами, это вообще не зависит от нативных инструкций хост-машины. Это является как сильной, так и слабой стороной. В результате, это главное различие между Bochs и многими другими программами эмуляции x86, такими как VirtualBox, VMware.
Поскольку эмулятор использует программную симуляцию для каждой отдельной инструкции x86, он симулирует приложение Windows на Alpha или рабочей станции Sun.
Однако недостаток подхода — это производительность моделирования. Чтобы точно смоделировать процессор, инструмент выполняет много операций и это делает моделируемую машину во много раз медленнее, чем физическая машина.
Чтобы сделать что-нибудь интересное на моделируемой машине, эмулятору необходимо взаимодействовать с ОС на хост-платформе. Нажав клавишу в окне дисплея Bochs, ключевое событие переходит в модель устройства для клавиатуры.
Когда имитируемая машина должна прочитать с жесткого диска, утилита читает из образа диска на хост-машине. Когда симулируемая машина отправляет сетевой пакет в локальную сеть, инструмент использует сетевую карту платформы хоста для отправки пакета в реальный мир.
Эти взаимодействия между эмулятором и ОС хоста могут быть сложными, а в некоторых случаях они зависят от платформы хоста. Для отправки сетевого пакета во FreeBSD требуется другой код, чем, например, для отправки пакета в Windows XP.
Официальный сайт Bochs
Bochs 2.6.10
Ключевые улучшения, добавленные в Bochs 2.6.10
- поддержка чипсета i440BX PCI/AGP
- базовая эмуляция 3D-ускорителей Voodoo Banshee и Voodoo3
- эмуляция расширенных наборов инструкций AVX-512 VBMI2/VNNI/BITALG, VAES, VPCLMULQDQ / GFNI
- внесены исправления в эмуляцию расширений PCID, ADCX, MOVBE, AVX и VMX
- в реализации VMX (Virtual Machine Extensions) добавлена поддержка защиты подстраниц памяти на основе EPT (Extended Page Tables)
- к инструкции CPUID добавлены модели CPU Skylake-X, Cannonlake и Icelake-U. В результате, признаки присутствия защиты от атак по сторонним каналам и связанные с подобной защитой MSR-регистры, реализованные в чипах Icelake-U
- базовая поддержка DDC (Display Data Channel) для VGA-совместимых графических адаптеров
- из QEMU перенесён код с эмуляцией HPET (High Precision Event Timer)
Установка
Вывод
Bochs имеет множество применений, и пользователи используют его для различных целей. Одни используют инструмент для запуска приложений во второй ОС. Другие, для отладки новых ОС, поскольку каждая строка кода симулятора доступна. Третьи используют в качестве учебного пособия, чтобы узнать, как работает аппаратное обеспечение ПК.
Вообще, Bochs — разноплановый инструмент решающий разнообразные задачи.
Более того, познакомьтесь с другими эмуляторами в этой статье.