Bochs

Émulateur v3.1

Bochs est un émulateur IA-32 (x86) open source écrit en C++, conçu pour reproduire fidèlement un PC compatible IBM (de l’i386 aux architectures récentes comme l’x86-64). Il prend en charge l’émulation complète du processeur, des périphériques courants (IDE, réseau, VGA, etc.) et d’un BIOS personnalisé, permettant d’exécuter des systèmes d’exploitation comme DOS, Windows (jusqu’à XP) ou Linux dans une fenêtre graphique.

Sur macOS, son utilisation est possible via une compilation native ou via des outils comme QEMU (pour Apple Silicon), mais nécessite une configuration avancée (fichiers de configuration .cfg, gestion des périphériques). Bien que puissant et modulaire, Bochs demande plus de compétences techniques qu’un émulateur comme QEMU ou VirtualBox, notamment pour optimiser les performances ou résoudre des incompatibilités matérielles. Sa documentation technique, bien que détaillée, reste moins accessible aux débutants.

Dernière mise à jour :

Plateformes

Architecture

Mac OS X - macOS Mac OS X - macOS Intel x86 Intel x86 Apple Silicon Apple Silicon 64 bits 64 bits SDL Library SDL Library

Téléchargement et liens

Historique des versions

v3.1
  • Nouveautés majeures :

    • Ajout de l'émulation des extensions d'instructions FRED, USER_MSR, MOVRS et AMX-FP8, ainsi que du mode MS-DOS Compatibility pour gérer les exceptions FPU x87 (avec gestion des broches FERR# et IGNNE# via le plugin extfpuirq, désormais chargé par défaut si une FPU est présente).
    • Intégration de la définition du processeur Wildcat Lake (CPUDB) incluant les fonctionnalités FRED, WRMSRNS et MSRLIST.
    • Augmentation de la mémoire hôte supportée (passant de 2048 MB à 8192 MB).
    • Support UEFI/OVMF via le périphérique fw_cfg compatible QEMU, permettant le boot de systèmes d'exploitation modernes (Windows Server 2025, distributions Linux récentes) avec firmware UEFI.
  • Corrections critiques :

    • Correction de bugs majeurs dans l'émulation CPU (notamment pour XSAVEC/XSAVES, PKeys, AVX BMI1/BMI2, AVX512, AMX, UINTR, CET et SVM).
    • Fixes étendus dans le code des périphériques (PCI, VGA, Voodoo, disques durs, disquettes, USB) et amélioration de l'initialisation AGP dans le chipset i440BX.
    • Correction des BIOS pour l'initialisation PCI/AGP et les tables ACPI.
    • Ajout du support des images de disque VHDX.
    • Mise à jour de SeaBIOS (version 1.16.0) et de VGABIOS (version 0.9d, sous licence LGPL).
Changelog complet
Brief summary of changes: - CPU: Implemented FRED, USER_MSR, MOVRS, AMX-FP8 ISA extensions emulation - CPU: Implemented MS-DOS Compatibility mode for handling x87 FPU exceptions, external logic handles FERR# and IGNNE# pins if enabled The 'extfpuirq' plugin is now always loaded if FPU is present - CPUDB: Added new Wildcat Lake CPU definition featuring FRED, WRMSRNS and MSRLIST - Bugfixes for CPU emulation correctness (critical bugfixes for emulation of XSAVEC/XSAVES, PKeys, AVX BMI1/BMI2, AVX512, AMX, UINTR, CET and SVM) - Increased maximum supported host memory size to 8192 MB (was 2048 MB) - Added UEFI/OVMF firmware support to Bochs through QEMU-compatible fw_cfg device This enables booting UEFI operating systems including Windows Server 2025 and modern Linux distributions with OVMF firmware. - Added basic support for GeForce 3D card emulation (4 AGP models, 2D almost complete, 3D still WIP) - AGP support in i440BX chipset now almost correctly implemented - Many fixes in the devices code (PCI, VGA, Voodoo, hard drive, floppy, USB) - VHDX disk image support added - BIOS fixes for PCI/AGP init and ACPI tables - LGPL'd VGABIOS updated to version 0.9d - Updated SeaBIOS ROM image to current version 1.16.0
v3.0
  • Intégration systématique du débogueur interne : le débogueur interne et le débogueur GUI sont désormais compilés par défaut dans toutes les versions binaires de sortie, sans besoin de versions spéciales dédiées.

  • Corrections critiques d'émulation CPU :

    • Bugs corrigés pour VMX, WAITPKG, LASS, XSAVEC/XSAVES, CPUID et implémentation SHA1.
    • Prise en charge des instructions manquantes AMD 3DNow! et des extensions AVX512_FP16 (activées pour Xeon Sapphire Rapids), ainsi que des extensions AVX10_1/AVX10_2 et AMX-TF32/AMX-AVX512.
  • Nouveaux modèles CPU et gestion avancée de CPUID :

    • Ajout des définitions pour i386, i486DX4, AMD Athlon XP et Intel Core i5 Arrow Lake.
    • Possibilité d'activer/désactiver des fonctionnalités CPUID via add_features/exclude_features (documentation mise à jour).
    • Dépassement du modèle bx_generic : obsolète, remplacé par des modèles préconfigurés.
  • Améliorations matérielles et périphériques :

    • Corrections et optimisations pour l'émulation Cirrus/Voodoo et USB (débogueur USB pour xHCI/UHCI, option de boot USB avec le BIOS i440fx.bin).
    • Mise à jour de VGABIOS (licencié sous LGPL, version 0.9c) et ajout du BIOS i440fx.bin (contribution externe).

(Aucune mention spécifique à macOS ou Apple Silicon dans ce changelog.)

Changelog complet
Brief summary : - Include Bochs debugger support in all release binaries. Bochs internal debugger and Bochs GUI debugger are compiled in by default and there are no special Bochs binaries with internal debugger support anymore. - Integrated softfloat3e library replacing older softfloat2a fpu-emulation code - Bugfixes for CPU emulation correctness (critical bugfixes for VMX, WAITPKG, LASS, XSAVEC/XSAVES, CPUID and SHA1 ISA implementation) - Added emulation of missing AMD 3DNow! instructions - Implemented AVX512_FP16 Intel instruction set based on softfloat3e library (enabled in Xeon Sapphire Rapids CPU definition) - Implemented MONITORLESS MWAIT instructions support - Implemented initial support for AVX10_1 + AVX10_2 ISA extensions and AVX10 CPUID leaf 0x24 (AVX10_1 first to be enabled in Xeon Granite Rapids) - Implemented AMX-TF32 and AMX-AVX512 ISA extensions - Implemented RAO-INT ISA and MSR_IMM ISA extensions - CPUID: Added new CPU definitions: for i386, i486DX4, AMD Athlon XP and Intel Core i5 Arrow Lake CPUs - CPUID: Support for enabling/disabling of one or more CPU features from CPUID configuration (see "add_features" and "exclude_features" in bochsrc sample and documentation) ! CPUID: Old bx_generic CPUID model is deprecated with all associated .bochsrc CPUID configuration options, use pre-defined CPU models instead - Several fixes and improvements for the Cirrus and Voodoo emulation - USB: Added the USB Debugger support for xHCI and UHCI (Windows / GTK3) - Added USB boot option (requires i440fx.bin BIOS) - LGPL'd VGABIOS updated to version 0.9c (Cirrus / VBE fixes and extensions) - Added i440fx.bin BIOS written by Ben Lunt (https://github.com/fysnet/i440fx) - Documentation updates and fixes after transition to GIT
v2.8
  • Améliorations majeures pour la virtualisation CPU et prise en charge des instructions modernes :

    • Correction critique de bugs dans l'émulation CPU (instructions SHA/GFNI, ADOX, XRSTOR/XRSTORS) bloquant le démarrage de Windows 10.
    • Implémentation complète des extensions VMX/SVM pour Windows 11 (MBE, Shadow Stack, MSR IA32_SPEC_CTRL, Posted-Interrupt Processing, LASS, 57-bit Linear Address, 5 niveaux de pagination, UINTR).
    • Support des extensions Intel AMX (AMX, AMX_INT8, AMX_BF16, AMX_FP16, AMX_COMPLEX) et de nouvelles instructions (MOVDIRI/MOVDIR64B, AVX512 BF16, VNNI-INT8/INT16, SM3/SM4, SHA512, etc.).
    • Ajout du profil Xeon Sapphire Rapids dans CPUID.
  • Corrections matérielles et périphériques :

    • USB : conformité 2.0 généralisée (sauf pour le hub) et support expérimental de UASP (USB Attached SCSI Protocol).
    • Expansion de la résolution maximale pour les cartes graphiques Banshee/Voodoo 3 (jusqu’à 1920×1440).
    • Améliorations des émulations disque dur (VHD) et disquette, ainsi que corrections dans l’émulation VGA.
  • Debugger et outils internes :

    • Renforcement du support 64-bit dans le debugger interne et ajout de commandes avancées (setpmem, loadmem, deref, etc.).
    • Mises à jour des exemples d’instrumentation pour le nouveau désassembleur (version 2.7).

Aucune mention spécifique à macOS ou Apple Silicon dans ce changelog.

Changelog complet
Brief summary of changes : - Bugfixes for CPU emulation correctness (MONITOR/MWAIT, VMX/SVM, x87, AVX-VNNI, AVX-512, CET) - Critical CPU emulation bugfixes for SHA and GFNI instructions, ADOX and XRSTOR/XRSTORS instructions (prevented boot of Win10) ! SVM: Implemented SVM VM_CR_MSR and INIT redirect (required for booting SMP with SVM) ! Implemented VMX MBE (Mode Based Execution Control) emulation required for Windows 11 guest ! Implemented VMX 'Shadow Stack Prematurely Busy' control ! Implemented MSR IA32_SPEC_CTRL Virtualization VMX extension ! Implemented Posted-Interrupt Processing VMX extension emulation ! Implemented Linear Address Separation (LASS) extension ! Implemented 57-bit Linear Address and 5-Level Paging support ! Implemented User-Level Interrupt (UINTR) extension ! Implemented Intel AMX extensions (AMX, AMX_INT8, AMX_BF16, AMX_FP16, AMX_COMPLEX) ! Implemented Intel instruction sets: - MOVDIRI/MOVDIR64B, AVX512 BF16, AVX IFMA52, VNNI-INT8/VNNI-INT16, AVX-NE-CONVERT, CMPCCXADD, SM3/SM4, SHA512, WRMSRNS, MSRLIST, WAITPKG, SERIALIZE ! CPUID: Added Xeon Sapphire Rapids CPU definition - Improved 64-bit guest support in Bochs internal debugger, added new internal debugger commands - Bochs debugger enhanced with new commands (setpmem, loadmem, deref, ...) Enhanced magic breakpoint capabilities. Refer to user documentation for more details. - Updated Bochs instrumentation examples for new disassembler introduced in Bochs 2.7 release - USB: Fixed/added USB 2.0 Compliance to all devices. Hub still needs a few additions - USB: xHCI: added the ability to have more than one model of xHCI hardware. Currently there are two. - USB: Added experimental MSD UASP emulation - USB: Added OHCI as an EHCI Companion option. Now allows UHCI or OHCI specified as a configuration parameter. - Disk images: Allows large VHD image files - Fixed and enhanced the Floppy Disk emulation, VGA emulation fixes - Expand maximum resolution for Banshee and Voodoo 3 from 1600x1280 to 1920x1440 - LGPL'd VGABIOS updated to version 0.9a (several VBE fixes / additions) - Documentation updates and fixes