Bochs

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

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

Общие сведения
Bochs
Тип эмуляция
Разработчик Bochs Project
Написана на C++
Операционные системы GNU, GNU/Linux, *BSD, Unix-подобные ОС, Microsoft Windows, iOS, Android
Первый выпуск 1994[1]
Последняя версия 2.7[2] (1 августа 2021; 5 лет назад (2021-08-01))
Репозиторий github.com/bochs-emu/Boc…
Лицензия GNU LGPL
Сайт bochs.sourceforge.net

История

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

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

Особенности

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

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

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

Существовал вариант, использующий 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[11] 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.

Примечания

  1. http://bochs.sourceforge.net/doc/docbook/user/introduction.html
  2. Bochs 2.7 released
  3. bochs: The Open Source IA-32 Emulation Project (Home Page). Дата обращения: 14 декабря 2005. Архивировано 28 февраля 2011 года.
  4. bochs Архивировано 30 мая 2014 года.
  5. Gael Duval. MandrakeSoft buys Bochs for Linux and commits it to Open Source (недоступная ссылка — история) (23 марта 2000). Дата обращения: 21 сентября 2011. Архивировано 5 августа 2012 года.
  6. Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in … — Diomidis Spinellis, Georgios Gousios — Google Книги. Дата обращения: 2 октября 2017. Архивировано 14 февраля 2019 года.
  7. Virtualization and Forensics: A Digital Forensic Investigator’s Guide to … — Diane Barrett, Greg Kipper — Google Книги. Дата обращения: 2 октября 2017. Архивировано 30 мая 2014 года.
  8. Software Similarity and Classification — Silvio Cesare, Yang Xiang — Google Книги. Дата обращения: 2 октября 2017. Архивировано 30 мая 2014 года.
  9. LWN — Development. Дата обращения: 20 июля 2012. Архивировано 21 апреля 2011 года.
  10. Bochs — OSDev Wiki. Дата обращения: 20 июля 2012. Архивировано 6 августа 2012 года.
  11. Features (недоступная ссылка — история). Bochs User Manual. Дата обращения: 21 сентября 2011. Архивировано 5 августа 2012 года.

Литература