- Docker image: Minimalistic docker image with sys161 and os161 build tools, 24% smaller than other os161 images
- build-test.sh: os161 compile routines with options for looped tests and Tmux split screen GDB debugging
- Built while taking the CS350 Operating Systems course at University of Waterloo
- Not under active development as of Aug 9, 2017
- Please ⭐ or fork if you found this repo helpful
- Login to a University of Waterloo server/terminal or install Docker on own machine
- In Terminal, navigate to parent directory of where your os161 directory will be, then run:
$ curl -s https://raw.githubusercontent.com/adrw/docker-cs350-os161/master/bootstrap.sh | bash -s
- This will create folder structure, do clean install of os161, and download the
Makefile
andbuild-test.sh
- There may be places such as in
submit.sh
that you will need to edit the file and add your username...etc
- If on your own computer within your os161 directory, start the Docker container with
make
- To build image from scratch, run
make build
ormake rebuild
(build without cached Docker images)
- To build image from scratch, run
- Compile and run os161 with
./build-test.sh
and any of the options below
- default: builds from source, runs side by side with GDB in Tmux
-b
- only build from source, don't run after-c
- continuous build loop-d
- output debug text when tests are run-m
- run with gdb tmux panels without rebuild-r
- run only (no gdb tmux or rebuild)-t {}
- run test {test alias}-l {}
- loop all following tests {#} times and log result inlogs/
directory-w
- clear all logs
- Usage
./build-test.sh -t {test name | test alias} -t {...
- Usage (with loops)
./build-test.sh -l {# of loops} -t {test name | test alias} -t {...
- A1
l | lock
- test locks with sy2cv | convar
- test conditional variables with sy3t | traffic
- A1 test for traffic simulation with 4 15 0 1 0 params
- A2A
2aa | onefork
- uw-testbin/onefork2ab | pidcheck
- uw-testbin/pidcheck2ac | widefork
- uw-testbin/widefork2ad | forktest
- testbin/forktest
- A2B
2ba | hogparty
- uw-testbin/hogparty2bb | sty
- testbin/sty2bc | argtest
- uw-testbin/argtest2bd | argtesttest
- uw-testbin/argtesttest2be | add
- testbin/add
- A3
3a | vm-data1
- uw-testbin/vm-data13b | vm-data3
- uw-testbin/vm-data33c | romemwrite
- uw-testbin/romemwrite3d | vm-crash2
- uw-testbin/vm-crash23e | vm-data1
- uw-testbin/vm-data13el | lvm-data1
- loop 5 x uw-testbin/vm-data13f | sort
- testbin/sort3fl | lsort
- loop 5 x testbin/sort3g | lmatmult
- testbin/matmult3gl | lmatmult
- loop 5 x testbin/matmult3h | lwidefork
- loop 5 x uw-testbin/widefork3i | lhogparty
- loop 5 x uw-testbin/hogparty
- Already have Docker installed and want just an os161 image?
- Download image with
docker pull andrewparadi/cs350-os161:latest
- Run with
docker run -it -v {absolute local os161 src directory}:/root/cs350-os161 --entrypoint /bin/bash andrewparadi/cs350-os161:latest