Table of Contents
Fetching ...

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

Proto: A Guided Journey through Modern OS Construction

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

Paper Structure

This paper contains 61 sections, 15 figures, 4 tables.

Figures (15)

  • Figure 1: Proto running various apps, across different prototype stages, and in different hardware settings. (a)--(c) from Prototype 1, (d) from Prototype 2, (e) from Prototype 3, (f--g) from Prototype 4, (h--m) from Prototype 5.
  • Figure 2: The architecture of Prototype 1
  • Figure 3: The architecture of Prototype 2
  • Figure 4: The architecture of Prototype 3
  • Figure 5: The architecture of Prototype 4
  • ...and 10 more figures