1   Overview

As part of CSCI1690: Operating Systems Lab, I developed a full-fledged mini Unix OS knows as Weenix. This self-driven, semester-long project was completed in tandem with CSCI1670: Operating Systems.

Weenix's command line

2   Features

The project was divided into 5 arcs:

  1. Procs: Processes, threads and mutexes
  2. Drivers: Device drivers for terminals, disks and memory devices
  3. Virtual File System: Common interface between operating system kernel and various file systems
  4. System V File System: File System implementation based on the original Unix file system
  5. Virtual Memory: Implement virtual memory maps, page fault handler, anonymous and shadow objects, and systems calls such as fork(). With these, the Weenix kernel is able to manage user address spaces, run user-level code and service system calls
Startup
Simple ls system call
Running user-level code
The never-ending forkbomb
That's a wrap!