Back to projects

Project field note

PennOS

A single-process, multi-threaded operating system with a priority scheduler, process lifecycle, interactive shell, PennFAT filesystem, and syscall abstraction.

PennOS is a single-process, multi-threaded operating system. Due to course policy, I can't share the code lest future students be tempted to forgo the arduous process of buliding their own OS from scratch.

It implements a credit-based preemptive priority scheduler with three priority levels, round-robin scheduling within each level, and proportional CPU allocation without starvation.

The system includes process creation, blocking waits, signals, voluntary exit, orphan reparenting, zombie reaping, an interactive POSIX-like shell, foreground and background jobs, I/O redirection, shell script execution, and terminal signal forwarding.

PennOS also includes PennFAT, a FAT-based filesystem with kernel-level file operations, permission checking, single-writer enforcement, and a clean separation between kernel APIs and user-facing system calls.