Bochs
Bochs | |||
---|---|---|---|
![]() | |||
![]() Эмулятор x86 с открытым кодом | |||
Тип | эмуляция | ||
Разработчик | Bochs Project | ||
Написана на | C++ | ||
Операционные системы | GNU, GNU/Linux, *BSD, Unix-подобные ОС, Microsoft Windows, iOS, Android | ||
Первый выпуск | 1994[1] | ||
Последняя версия | 2.8[2] (10 марта 2024; 5 месяцев назад (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 официально поддерживается проектом.
Примечания
- ↑ http://bochs.sourceforge.net/doc/docbook/user/introduction.html
- ↑ Bochs 2.8 released
- ↑ bochs: The Open Source IA-32 Emulation Project (Home Page) (неопр.). Дата обращения: 14 декабря 2005. Архивировано 28 февраля 2011 года.
- ↑ bochs Архивировано 30 мая 2014 года.
- ↑ Gael Duval. MandrakeSoft buys Bochs for Linux and commits it to Open Source (неопр.) (23 марта 2000). Дата обращения: 21 сентября 2011. Архивировано из оригинала 5 августа 2012 года.
- ↑ Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in … — Diomidis Spinellis, Georgios Gousios — Google Книги (неопр.). Дата обращения: 2 октября 2017. Архивировано 14 февраля 2019 года.
- ↑ Virtualization and Forensics: A Digital Forensic Investigator’s Guide to … — Diane Barrett, Greg Kipper — Google Книги (неопр.). Дата обращения: 2 октября 2017. Архивировано 30 мая 2014 года.
- ↑ Software Similarity and Classification — Silvio Cesare, Yang Xiang — Google Книги (неопр.). Дата обращения: 2 октября 2017. Архивировано 30 мая 2014 года.
- ↑ LWN — Development (неопр.). Дата обращения: 20 июля 2012. Архивировано 21 апреля 2011 года.
- ↑ Bochs — OSDev Wiki (неопр.). Дата обращения: 20 июля 2012. Архивировано 6 августа 2012 года.
- ↑ Features (неопр.). Bochs User Manual. Дата обращения: 21 сентября 2011. Архивировано из оригинала 5 августа 2012 года.
- ↑ x86 Emulation makes it to the H/PC — BOCHS 2.1.1 — HPC Factor (неопр.). Дата обращения: 20 июля 2012. Архивировано 17 июля 2012 года.
- ↑ 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»
- ↑ Windows XP e Windows 7 in esecuzione su un tablet Android (неопр.). Дата обращения: 3 января 2016. Архивировано 18 января 2016 года.
Литература
- 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