XV6 Extensions

Systems Project

A collection of extensions to xv6, the ANSI C reimplementation of Dennis Ritchie's and Ken Thompson's Unix Version 6. These extensions include:

  • A CPU scheduler supporting two pricing schemes similar to those used by AWS and other cloud services: reserved processes and spot processes. The former is implemented with a lottery scheduler.
  • A few modern virtual memory features, including:
    • Null-pointer dereference handling.
    • A stack rearrangement, with the stack placed at the high end of the address space.
  • Kernel threads.
  • Protection from data corruption via the addition of file checksums.

For the source code, check out the GitHub repository.

If interested in hearing more about this project, feel free to contact me.