Giter VIP home page Giter VIP logo

sungog / bochs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bochs-emu/bochs

0.0 0.0 0.0 38.1 MB

Bochs - Cross Platform x86 Emulator Project

Home Page: https://bochs.sourceforge.io/

License: GNU Lesser General Public License v2.1

Shell 3.36% C++ 74.50% Perl 0.09% C 15.96% Assembly 0.06% AppleScript 0.02% Makefile 2.14% HTML 0.11% Yacc 0.31% Lex 0.11% M4 0.66% Roff 0.41% ASL 0.16% Rez 2.10%

bochs's Introduction

Welcome to the Bochs IA-32 Emulator Project

Bochs is a portable IA-32 (x86) PC emulator written in C++, that runs on most popular platforms. It includes emulation of the Intel x86 CPU, common I/O devices, and a custom BIOS.

Bochs can be compiled to emulate many different x86 CPUs, from early 386 to the most recent (sometimes even pre-market) x86-64 Intel and AMD processors.

Bochs is capable of running most Operating Systems inside the emulation including Linux, DOS or Microsoft Windows.

Bochs provides many different modes of operation, in support of a wide variety of use cases. The 'typical' use of bochs is to provide complete x86 PC emulation, including the x86 processor, hardware devices, and memory. This allows you to run OS's and software within the emulator on your workstation, much like you have a machine inside of a machine. For instance, let's say your workstation is a Unix/X11 workstation, but you want to run Win'95 applications. Bochs will allow you to run Win 95 and associated software on your Unix/X11 workstation, displaying a window on your workstation, simulating a monitor on a PC.

Bochs Approach

Bochs is an emulator - not virtualization software. It is portable across many architectures: x86, ARM, MIPS, etc. This means it must be able to emulate every CPU instruction.

This distinguishes Bochs from virtualization solutions like e.g. VirtualBox, VMWare, etc. Those projects provide a nice user experience and fast performance, at the cost of hardware constraints, some non-determinism and some necessary hacks to get programs working.

Bochs' emulation provides a controlled, accurate execution environment, at the cost of speed/performance. This can be advantageous in some situations, for example:

  • When developing an operating system or bootloader
  • When dealing with very old, mission-critical software
  • When reverse-engineering system-level code

For more information, see the intro section in the user guide.

Installing

You can download Bochs from the project page on SourceForge. See the CHANGES file for details on the most recent releases.

Usage

See the documentation.

Contributing

To get started, see Bochs Developer Guide.

We currently need help with the below tasks. To help with one of these tasks, please contact Volker Ruppert or Stanislav Shwartsman.

Bug Reports

Mouse, interrupt controller, timer, IDE controller, network card, keyboard, VGA... Most of our bug reports and feature requests are due to incomplete C++ models of the various PC devices. To improve this, we need PC Hardware Gurus who know where to find the specs for this stuff and improve the hardware models for Bochs. Working on models is a fun way to learn how things work, and unlike designing a real hard disk, you can test out your changes on a real operating system immediately!

Disk Images

Our collection of disk images is getting out of date. It would be great to have small or large images of a variety of free operating systems.

Documentation

Adding installation help and other useful information into the docs.

Papers/Presentations

  • Bochs was presented at ISCA-35 in Beijing, China at "The 1st Workshop on Architectural and Microarchitectural Support for Binary Translation" by a paper "Virtualization without direct execution - designing a portable VM".

Authors

Bochs was originally written by Kevin Lawton and is currently maintained by this project.

bochs's People

Contributors

vruppert avatar stlintel avatar fysnet avatar danielg4 avatar toddfries avatar tandasat avatar therealdreg avatar mcb30 avatar vort avatar imwux avatar sredna avatar c-nichols avatar fweimer-rh avatar julienfreche avatar sskras avatar disba1ancer avatar finnbrudal avatar quircks avatar ughoavgfhw avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.