This is an experimental x86 emulator. Currently, this project is targeted only to xv6 as guest OS.
Please make sure that make, go (>=1.11), gcc, objdump, nasm and ndisasm are installed. For example, if you are using ubuntu, you can install them using the following command.
$ sudo apt-get install -y nasm gcc git tar wget make bsdmainutils $ wget https://dl.google.com/go/go1.11.linux-amd64.tar.gz $ sudo tar -C /usr/local -zxf go1.11.linux-amd64.tar.gz
make command will build two version of emulators and xv6 image described as below:
- Emulator for Host OS: An emulator execution binary for the host OS is created. Its name is
- Emulator for wasm: A wasm version of the emulator is built to run in the browser. Its name is
- xv6 image: The makefile for xv6 is also executed recursively.
# Build two version of emulators and guest xv6 image $ make # Execute CLI version emulator in your terminal. $ ./tiny_x86_emu -f xv6-public/xv6.img # Start web server to host wasm file. # Then, please open http://localhost:8000 in your browser. $ ./httpserv
make test command will execute all tests.
Pull requests from anyone are welcome!