Bochs

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Bochs
Логотип программы Bochs
Скриншот программы Bochs
Эмулятор x86 с открытым кодом
Тип эмуляция
Разработчик Bochs Project
Написана на C++
Операционные системы GNU, GNU/Linux, *BSD, Unix-подобные ОС, Microsoft Windows, iOS, Android
Первый выпуск 1994[1]
Последняя версия 2.8[2] (10 марта 2024; 8 месяцев назад (2024-03-10))
Репозиторий github.com/bochs-emu/Boc…
Лицензия GNU LGPL
Сайт bochs.sourceforge.net
Логотип Викисклада Медиафайлы на Викискладе

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 разрабатывался как коммерческое (платное) ПО с опубликованным исходным кодом[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.

Интересные факты

[править | править код]

С использованием bochs был произведен запуск Windows 98 на сотовом телефоне с ОС Windows Mobile[12] и на смартфоне с ОС Android[13].

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

Примечания

[править | править код]
  1. http://bochs.sourceforge.net/doc/docbook/user/introduction.html
  2. Bochs 2.8 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 года.
  12. x86 Emulation makes it to the H/PC — BOCHS 2.1.1 — HPC Factor. Дата обращения: 20 июля 2012. Архивировано 17 июля 2012 года.
  13. http://geeknizer.com/install-run-windows-95-98-xp-on-android-htc-evo-3d/ Архивная копия от 20 августа 2012 на Wayback Machine «XDA developer mnomaanw has successfully installed Windows 95, Windows 98, Windows XP and Linux on HTC EVO 3D in a fairly easy process»
  14. Windows XP e Windows 7 in esecuzione su un tablet Android. Дата обращения: 3 января 2016. Архивировано 18 января 2016 года.

Литература

[править | править код]