Proto: A Guided Journey through Modern OS Construction
Wonkyo Choe, Rongxiang Wang, Afsara Benazir, Felix Xiaozhu Lin
TL;DR
Proto addresses declining OS education by offering an engaging, app-driven instructional OS built as incremental prototypes that run on commodity hardware. The approach decomposes a full OS into five self-contained prototypes, each mapping to concrete apps to motivate learning of modern OS concepts (per-app address spaces, multithreading, USB, DMA, window management). Key contributions include a lightweight kernel, demonstration-ready system on Raspberry Pi 3, and empirical evaluation showing competitive microbenchmarks, multicore scalability, and favorable power efficiency; plus a pedagogical study confirming enhanced engagement. The work demonstrates that end-to-end OS construction with real apps is feasible and impactful for broad OS education.
Abstract
Proto is a new instructional OS that runs on commodity, portable hardware. It showcases modern features, including per-app address spaces, threading, commodity filesystems, USB, DMA, multicore support, self-hosted debugging, and a window manager. It supports rich applications such as 2D/3D games, music and video players, and a blockchain miner. Unlike traditional instructional systems, Proto emphasizes engaging, media-rich apps that go beyond basic terminal programs. Our method breaks down a full-featured OS into a set of incremental, self-contained prototypes. Each prototype introduces a minimal set of OS mechanisms, driven by the needs of specific apps. The construction process then progressively enables these apps by bringing up one mechanism at a time. Proto enables a wider audience to experience building a self-contained software system used in daily life
