- Dockerfile contained in this repo should be enough to get experiment environment
make qemu-nox
may compile and start the xv6 OSmake clean
will delete executables and generated OS imagectrl-A-x
to exit the OS
The report illustrates the motivation, design, implementation and result of this project.
This video shows how to interact with updated xv6.
Our changes on xv6 source code are mainly on following files:
- mkfs.c: add
bin
directory and put all user programs into during OS initialization - exec.c: check
/bin
first before execution - path_util.h: path related functions, including get current working directory, and path concatenation
- pwd.c: get absolute current working directory, and relative path within container
- sh.c: check whether path to switch is valid within container
- proc.[h.c]: container and process releted initialization and status handling
- For the data structure of container and process, and initialization part(cinit(), userinit(), fork(), cfork()),we use xv6c and this project_report as a reference
- cont.c: for the interface design(stages of container, style of commands) we use ctoos as a reference
- For syscall-related files, we mainly reference this blog on how to add syscall to xv6
- path_concatenation_test.c: a testcase file to test the functionality of path utils in path_util.h
- testcases.txt: a sequence of commands and what to expect as testcases
This project is a groupwork of Duke COMSCI510 Advanced Operating System. group member:
- Junyi Xiao(netID: jx94), github account: https://github.com/yolande0917
- Hao Jiang(netID: hj110), github account: https://github.com/dentiny