-
Notifications
You must be signed in to change notification settings - Fork 6
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
xv6
project folder) - build the image
Unix-based Users:
- Modify the
run.sh
file'swork
variable at the top of the file to be your project folder. For example:
work=~/projects/cs350/xv6-public-master/
- Run the
run.sh
script will check if you've built an image yet, then either build and start or just start the container:
./run.sh start
This 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 thevolumes
rule 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 -d
You 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.
-
qemu
open source machine emulator and virtualizer for OS debugging -
build-essential
for C support -
gdb
for debugging, obviously -
gcc-multilib
for 32-bit library support -
xv6-public
a slimmed-down, simplified operating system based on UNIX v6 -
gcc
since we need C support, of course! -
rsync
andopenssh-server
to sync with IDE's like CLion and easily connect to the environment -
cmake
for configurable makefile support