{"id":15506289,"url":"https://github.com/adrw/docker-cs350-os161","last_synced_at":"2025-04-23T01:57:16.645Z","repository":{"id":97819574,"uuid":"90757709","full_name":"adrw/docker-cs350-os161","owner":"adrw","description":"Build-Test Script and Docker image for os161 in University of Waterloo CS350 Operating Systems","archived":false,"fork":false,"pushed_at":"2019-01-09T18:31:02.000Z","size":43,"stargazers_count":7,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-23T01:57:09.136Z","etag":null,"topics":["cs350","docker","docker-container","docker-image","os161","sys161","uwaterloo"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adrw.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-05-09T14:50:05.000Z","updated_at":"2023-02-04T20:39:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"6e49dae9-1490-4357-9300-6576c36eeced","html_url":"https://github.com/adrw/docker-cs350-os161","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrw%2Fdocker-cs350-os161","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrw%2Fdocker-cs350-os161/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrw%2Fdocker-cs350-os161/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrw%2Fdocker-cs350-os161/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adrw","download_url":"https://codeload.github.com/adrw/docker-cs350-os161/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250354303,"owners_count":21416751,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cs350","docker","docker-container","docker-image","os161","sys161","uwaterloo"],"created_at":"2024-10-02T09:26:38.715Z","updated_at":"2025-04-23T01:57:16.637Z","avatar_url":"https://github.com/adrw.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"Build-Test Script and Docker Image for CS350\n===\n- Docker image: Minimalistic docker image with sys161 and os161 build tools, 24% smaller than other os161 images\n- build-test.sh: os161 compile routines with options for looped tests and Tmux split screen GDB debugging\n- Built while taking the CS350 Operating Systems course at University of Waterloo\n- Not under active development as of Aug 9, 2017\n- **Please ⭐ or fork if you found this repo helpful**\n\nInstall\n---\n- Login to a University of Waterloo server/terminal or install Docker on own machine\n- In Terminal, navigate to parent directory of where your os161 directory will be, then run:\n  ```bash\n  $ curl -s https://raw.githubusercontent.com/adrw/docker-cs350-os161/master/bootstrap.sh | bash -s\n  ```\n- This will create folder structure, do clean install of os161, and download the `Makefile` and `build-test.sh`\n- There may be places such as in `submit.sh` that you will need to edit the file and add your username...etc\n\nGetting Started\n---\n- If on your own computer within your os161 directory, start the Docker container with `make`\n  - To build image from scratch, run `make build` or `make rebuild` (build without cached Docker images)\n- Compile and run os161 with `./build-test.sh` and any of the options below\n\nbuild-test.sh Options\n---\n- default: builds from source, runs side by side with GDB in Tmux\n- `-b   ` - only build from source, don't run after\n- `-c   ` - continuous build loop\n- `-d   ` - output debug text when tests are run\n- `-m   ` - run with gdb tmux panels without rebuild\n- `-r   ` - run only (no gdb tmux or rebuild)\n- `-t {}` - run test {test alias}\n- `-l {}` - loop all following tests {#} times and log result in `logs/` directory\n- `-w   ` - clear all logs\n\nIncluded Tests | Test Aliases\n---\n- **Usage** `./build-test.sh -t {test name | test alias} -t {...`\n- **Usage (with loops)** `./build-test.sh -l {# of loops} -t {test name | test alias} -t {...`\n- **A1**\n  - `l   |  lock       `   - test locks with sy2\n  - `cv  |  convar     `  - test conditional variables with sy3\n  - `t   |  traffic    `   - A1 test for traffic simulation with 4 15 0 1 0 params\n- **A2A**\n  - `2aa |  onefork    ` - uw-testbin/onefork\n  - `2ab |  pidcheck   ` - uw-testbin/pidcheck\n  - `2ac |  widefork   ` - uw-testbin/widefork\n  - `2ad |  forktest   ` - testbin/forktest\n- **A2B**\n  - `2ba |  hogparty   ` - uw-testbin/hogparty\n  - `2bb |  sty        ` - testbin/sty\n  - `2bc |  argtest    ` - uw-testbin/argtest\n  - `2bd |  argtesttest` - uw-testbin/argtesttest\n  - `2be |  add        ` - testbin/add\n- **A3**\n  - `3a  |  vm-data1   `  - uw-testbin/vm-data1\n  - `3b  |  vm-data3   `  - uw-testbin/vm-data3\n  - `3c  |  romemwrite `  - uw-testbin/romemwrite\n  - `3d  |  vm-crash2  `  - uw-testbin/vm-crash2\n  - `3e  |  vm-data1   `  - uw-testbin/vm-data1\n  - `3el |  lvm-data1  ` - loop 5 x uw-testbin/vm-data1\n  - `3f  |  sort       `  - testbin/sort\n  - `3fl |  lsort      ` - loop 5 x testbin/sort\n  - `3g  |  lmatmult   `  - testbin/matmult\n  - `3gl |  lmatmult   ` - loop 5 x testbin/matmult\n  - `3h  |  lwidefork  `  - loop 5 x uw-testbin/widefork\n  - `3i  |  lhogparty  `  - loop 5 x uw-testbin/hogparty\n\nJust the Docker Image\n---\n- Already have Docker installed and want just an os161 image?\n- Download image with `docker pull andrewparadi/cs350-os161:latest`\n- Run with `docker run -it -v {absolute local os161 src directory}:/root/cs350-os161 --entrypoint /bin/bash andrewparadi/cs350-os161:latest`\n\nResources\n---\n- [**Docker Hub andrewparadi/cs350-os161 Image**](https://hub.docker.com/r/andrewparadi/cs350-os161/)\n- [**Uberi/uw-cs350-development-environment**](https://github.com/Uberi/uw-cs350-development-environment)\n- [**University of Waterloo CS350 Operating Systems Course Site**](https://www.student.cs.uwaterloo.ca/~cs350/)\n- [**Source Code on GitHub**](https://github.com/andrewparadi/docker-os161)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadrw%2Fdocker-cs350-os161","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadrw%2Fdocker-cs350-os161","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadrw%2Fdocker-cs350-os161/lists"}