Skip to content

caojoshua-self-guided-courses/StanfordCS140

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StanfordCS140 self learning

Learn some stuff about OS. UCI CS143a intro OS class is kind of bust, so I am taking a self-guided run through Stanford CS140 Operating Systems. The class features four main projects:

  • Project 1: Threads
  • Project 2: User Programs
  • Project 3: Virtual Memory
  • Project 4: File systems

I will only be working on the coding, and not the design docs of each project. I am going through lecture notes and may consider looking at exams.

Setup

Everything is run on docker. Run sudo make docker-container. This will mount the local code base into /pintos of the container, and changes made from a local text editor will be propagated. Run sudo make docker-bash to bash into the container to build, run, and debug pintos.

Additional info

  • When switching between projects, make sure to edit pintos/utils/Pintos.pm line 362 and pintos/utils/pintos line 259 so they are looking in the right build directory. Otherwise pintos will be unable to run tests for the project.
  • The project is now complete with a 100% test pass rate. Virtual memory was originally branched from master, and file system branched from virtual memory, but now everything is merged into master. The old branches will stay alive as stale branches. The course recommended building both project 3 and 4 on top of project 2 to make life easier, but I decided to build project 4 on top of project 3 for completeness. The commits at which each project finished (all testcases for that project pass):
  • See /docs for some implementation notes and final thoughts of the class.