Skip to content
/ xv6 Public

This repo is for Duke COMSCI510 Advanced Operating System.

License

Notifications You must be signed in to change notification settings

dentiny/xv6

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xv6

How to run

  • Dockerfile contained in this repo should be enough to get experiment environment
  • make qemu-nox may compile and start the xv6 OS
  • make clean will delete executables and generated OS image
  • ctrl-A-x to exit the OS

Report

The report illustrates the motivation, design, implementation and result of this project.

Video

This video shows how to interact with updated xv6.

Declaration of revision on xv6 source code

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
    • For the working directory fetching, I referenced blog1 and blog2
  • 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

Contribution

This project is a groupwork of Duke COMSCI510 Advanced Operating System. group member:

About

This repo is for Duke COMSCI510 Advanced Operating System.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published