PebPeb - An Operating System with Para-virtualization

---- 15-410/605 Operating System Design and Implementation

Yuning Zhang, Zihao He

No source code is released due to the CMU policy.


PebPeb is an educational operating system written from scratch as the final project of CMU 15-410/605 Operating System Design and Implementation (course website).

It’s a monolithic kernel on Intel x86 platforms including user processes, threads, virtual memory management, console/timer/keyboard drivers and para-virtualization. A user-level thread library was developed on top of the system calls which implemented mutex, condition variable, semaphore and r/w lock. PebPeb, as its name suggests, provides a way to run itself as a guest kernel. To do that, we implemented shadow page table, hypercalls, virtual interrupts and virtual console which enables running multiple programs/guest kernels in different shells and switching between shells using the key. The video shown above demonstrates the ability to play gomoku and run intensive tests at the same time.

Beswapped on a crashbox

pebpeb crashbox1

pebpeb crashbox2

The kernel image was burned onto a CD-RW disc and booted on a machine with two 400 MHz Pentium-II Xeon processors, 512 megabytes of RAM, a floppy drive, and a CD-ROM (no disk or network).

last update: 12/6/2019