Skip to content

Latest commit

 

History

History
61 lines (51 loc) · 2.25 KB

README.md

File metadata and controls

61 lines (51 loc) · 2.25 KB

xv6-env

Docker image for building/running xv6-riscv

Typical Usage

Make sure that you have a copy of xv6-riscv distribution in the filesystem of your host computer. You can obtain it using the following command (Skip this step if you already have one).

$ git clone https://github.com/mit-pdos/xv6-riscv.git

The image is available on Docker Hub. You can start a new container with the command below. Note that path-to-xv6-riscv refers to the path to your copy of xv6-riscv distribution on the host.

$ cd path-to-xv6-riscv
$ docker run -it --rm -v $(pwd):/home/xv6/xv6-riscv wtakuo/xv6-env

The image supports multiple architectures (currently arm64 and amd64). If you need a container for a specific architecture, use wtakuo/xv6-env-arm64 or wtakuo/xv6-env-amd64 instead.

If things go well, you should see the following output from the newly started container.

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

xv6@0c765f60374a:~/xv6-riscv$ 

The shell prompt (xv6@0c765f60374a:~/xv6-riscv$) consists of the username (xv6), hostname (0c765f60374a), and current working directory (/home/xv6/xv6-riscv). The hostname is the same as the container ID. So it may differ from the above example.

Now make sure that you can build and start xv6.

xv6@0c765f60374a:~/xv6-riscv$ make
...
xv6@0c765f60374a:~/xv6-riscv$ make qemu
...
xv6 kernel is booting

hart 2 starting
hart 1 starting
init: starting sh
$ 

To exit from xv6, type ctrl-A followed by x.

Opfs

For your convenience, this docker image contains opfs, a simple utility for operating on xv6 file system images.

To build the image by yourself

If you want to build the docker image by yourself, you can use the following commands.

$ git pull https://github.com/wtakuo/xv6-env.git
$ cd xv6-env
$ docker build -t wtakuo/xv6-env .

Note

The container runs bash with user xv6. The password of the user is xv6.

If you would like to install some packages using apt, you should first issue sudo apt update.