-
Notifications
You must be signed in to change notification settings - Fork 7
1 Getting Started
Cameron Durham edited this page May 22, 2020
·
1 revision
Welcome to the cs350-docker wiki!
Below are the system requirements for Docker Desktop:
- Windows 10 64-bit: Pro, Enterprise, or Education (Build 15063 or later).
- Hyper-V and Containers Windows features must be enabled.
If you are using Windows 10 Home, you can obtain a "free" license for Windows 10 Education here.
- Mac hardware must be a 2010 or newer model
- macOS must be version 10.13 or newer
- 4 GB RAM minimum
First, install Docker desktop from the website. Once done, clone this repository.
Building the image should require two steps.
- specify your desired mount location (i.e. your
xv6project folder) - build the image
Unix-based Users:
- Modify the
run.shfile'sworkvariable at the top of the file to be your project folder. For example:
work=~/projects/cs350/xv6-public-master/- Run the
run.shscript will check if you've built an image yet, then either build and start or just start the container:
./run.sh startThis script is only a wrapper for some simple Docker commands.
Windows Users: I need to still write some support for volume mounting. For now, please follow these steps:
- In
docker-compose.yml, change line below thevolumesrule to mount your desired project folder.
For example, change this:
volumes:
- ${work}:/xv6_docker/to this:
volumes:
- C:\Username\xv6-public-master:/xv6_docker/- Run this command to build the environment:
docker-compose up -dYou can test and build xv6 code in either a 32-bit or 64-bit environment. The docker-compose.yml builds from the Dockerfile build file, that uses a 64-bit Ubuntu as a base image.
-
qemuopen source machine emulator and virtualizer for OS debugging -
build-essentialfor C support -
gdbfor debugging, obviously -
gcc-multilibfor 32-bit library support -
xv6-publica slimmed-down, simplified operating system based on UNIX v6 -
gccsince we need C support, of course! -
rsyncandopenssh-serverto sync with IDE's like CLion and easily connect to the environment -
cmakefor configurable makefile support