CSL373: Build your own OS using pintos

Here, you will implement the basic functionalities of an OS. You will be given a bare-bones operating system called pintos. On the top of this, you will implement threads, processes, virtual memory and a file system in four separate parts. At the end of this project, you will have your own operating system that you can boot on real hardware.

Acknowledgements: Pintos source code and documentation is taken from Stanford's CS140 OS course.

Project

  1. Threads
  2. User Programs
  3. Virtual Memory
  4. File System

Resources

  1. Pintos documentation
  2. Checkbochs

Note:

  1. To be done in groups of upto two.
  2. Each group must present an original solution. Do not use previous year submissions -- we will find out if you do. Copying -> you learn nothing + disciplinary action
  3. Submission Instructions:
    1. On palasi, submit-pintos [threads|userprog|vm|filesys]
    2. Your svn repository should contain only source files and documentation files. NO build/ directories or binary files
    3. There should be a DESIGNDOC file in threads/ directory (for threads submission)
    4. Your top-level directory should be src/
    5. There should be only text files in src/ directory. If you want to have any binary files in your submission (e.g., png files, etc.) they should be outside the src/ directory.