tiny_x86_emu

command module
v0.0.0-...-9e587fe Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 8, 2019 License: MIT Imports: 12 Imported by: 0

README

tiny_x86_emu wercker status GoDoc Go Report Card Coverage Status

This is an experimental x86 emulator. Currently, this project is targeted only to xv6 as guest OS.

Demo

https://bobuhiro11.net/tiny_x86_emu/

screenshot

Preparation

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

Usage

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 tiny_x86_emu.
  • Emulator for wasm: A wasm version of the emulator is built to run in the browser. Its name is wasm/tiny_x86_emu.wasm.
  • 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

Testing

make test command will execute all tests.

Contribution

Pull requests from anyone are welcome!

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL