🤖 AI Summary
Conventional teaching operating systems often lack modern features and real-world application support, limiting students’ exposure to contemporary OS design principles and practical engineering challenges. Method: This work proposes a “reverse-engineering–driven” pedagogical paradigm: starting from a fully functional OS (e.g., VOS), it systematically decomposes the system into a sequence of incrementally implementable prototypes, guided by authentic use cases—including DOOM gaming, audio/video playback, and blockchain mining—to motivate and contextualize core mechanism design. VOS is implemented in Rust and C, featuring MMU-based virtual memory, a lightweight microkernel, SMP-aware scheduling, FAT32/USB protocol stacks, and a framebuffer-based GUI framework; it supports bare-metal booting on portable hardware and full graphical interactivity. Its modular architecture ensures prototype independence and composability. Contribution/Results: Deployed in undergraduate OS courses across multiple universities worldwide, VOS has demonstrably enhanced students’ engineering proficiency, systems-level intuition, and intrinsic motivation.
📝 Abstract
VOS is a first-of-its-kind instructional OS that: (1) Runs on commodity, portable hardware. (2) Showcases modern features, including per-app address spaces, threading, commodity filesystems, USB, DMA, multicore, self-hosted debugging, and a window manager. (3) Supports rich applications such as 2D/3D games, music and video players, and a blockchain miner. Unlike traditional instructional systems, VOS emphasizes strong motivation for building systems-supporting engaging, media-rich apps that go beyond basic terminal programs. To achieve this, we design VOS to strike a careful balance between essential OS complexity and overall simplicity. Our method, which we call inverse engineering, 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 (i.e., forward engineering) then progressively enables these apps by bringing up one mechanism at a time. VOS makes it accessible for a wider audience to experience building a software system that is self-contained and usable in everyday scenarios.