CSCI402 Operating Systems

The following project is from CSCI402 Operating Systems at University of Southern California.

Unix Kernel Design

  • Led a team to develop core parts of a non-preemptive Unix kernel called Weenix using C on QEMU simulator
  • Implemented completed life cycle of thread: created, run, sleep, cancallable sleep
  • Developed a mutex for synchronization and a FIFO thread scheduler
  • Built up a Virtual memory module to support usr-level program, which supports features such as pages, system call, demanding pages, copy-on-write and fork
  • Deployed Apache HTTP server with Nginx as a reverse proxy for loading balancing