Bochs (произносится «бокс») — свободное ПО для эмуляции аппаратного обеспечения IBM PC. Включает в себя эмуляцию процессоров архитектуры x86, устройств ввода-вывода и возможность использовать различные BIOS и видеоадаптеры. Может эмулировать 386, 486, Pentium, Pentium Pro, AMD64 и другие x86-совместимые процессоры. Поддерживает расширения MMX, SSE, SSE2, 3DNow!, SSE3, SSE4, x86-64, VMX, расширение системы команд AES.

Написана на языке программирования C++ и работает на GNU/Linux, Windows 9x, Windows NT, *BSD, Android, iOS, PSP и др.

История Изначально Bochs разрабатывался как коммерческое (платное) ПО с опубликованным исходным кодомbochs (с дополнительными условиями для использования в составе других продуктов). 22 марта 2000 года компания Mandrakesoft (ныне Mandriva) купила Bochs у разработчика (Kevin Lawton) и опубликовала его под открытой лицензией GNU Lesser General Public License.

Некоторые разработки bochs используются в более поздних проектах, например, Xen использует BIOS, написанную для bochs.

Особенности Отличается тщательной эмуляцией процессора, может быть запущен на любой аппаратной платформе, в том числе на SPARC, PowerPC, MIPS. Bochs интерпретирует каждую команду виртуального процессора.

При работе на Pentium 2 с частотой 400 МГц bochs достигает производительности порядка 1,5 млн операций в секунду, то есть на выполнение одной команды виртуального процессора уходит в среднем около 260 тактов физического процессора.

Часто применяется для отладки операционных систем и их компонентов. Имеет встроенные возможности по отладке.

Существовал вариант, использующий plex86 для ускорения операций с памятью. В связи с прекращением разработок, plex86 больше не обновлялся.

Эмулируемое оборудование Класс Устройство Видеоадаптер Cirrus Logic CL-GD5430 ISA Cirrus Logic CL-GD5446 PCI 3dfx Voodoo Graphics PCI 3dfx Voodoo2 PCI 3dfx Banshee AGP 3dfx Voodoo3 AGP Звуковая карта Sound Blaster 16 (ISA, без Plug & Play), ES1370 (PCI) сетевая карта Ethernet NE2000 ISA (если в PCI-слоте не прописать ne2k), иначе Realtek RTL8029 PCI, E1000 (PCI) Чипсет/южный мост Intel 440FX PCI. Мост Host-to-PCI (PMC/DBX), мост PCI-to-ISA, PCI контроллер IDE (PIIX3). Эмулируется 5 PCI слотов. USB Корневой хаб; мышь, tablet, keypad, usb mass storage. USB xHCI эмулирует контроллер NEC/Renesas uPD720202 Процессоры Поддерживается многоядерность, до 8 ядер. 3D-ускоритель 3dfx Voodoo1 (с версии 2.6.5) Enhanced BIOS El Torito, EDD v3.0, базовый APM, PCIBIOS, маршрутизация прерываний PCI. ACPI, SMM, SMP.

Интересные факты С использованием bochs был произведен запуск Windows 98 на сотовом телефоне с ОС Windows Mobile и на смартфоне с ОС Androidhttp://geeknizer.com/install-run-windows-95-98-xp-on-android-htc-evo-3d/ «XDA developer mnomaanw has successfully installed Windows 95, Windows 98, Windows XP and Linux on HTC EVO 3D in a fairly easy process».

Существует вариант Bochs для Android версий 3.0 и выше; на котором существует техническая возможность запуска сложных ОС, например, Windows XP или Windows 7, с крайне низкой скоростью эмуляции. Версия 2.5.1 была портирована в 2012, а 2.6.8 — в 2016 году. С августа 2016 платформа Android официально поддерживается проектом.

Примечания

Литература Darek Mihocka, Stanislav Shwartsman. Virtualization Without Direct Execution or Jitting: Designing a Portable Virtual Machine Infrastructure

Ссылки Официальный сайт The Bochs x86 PC Emulator // LWN Platform emulation with Bochs

Категория:X86-эмуляторы Категория:Эмуляторы для Windows Категория:Свободное программное обеспечение, написанное на C++ Категория:Программное обеспечение с лицензией GNU LGPL