eXpOS: A Simple Pedagogical Operating System for Undergraduate Instruction
K. Murali Krishnan

TL;DR
eXpOS is an educational operating system designed for undergraduate students to learn OS concepts by building a simplified OS from scratch, including multitasking, virtual memory, and I/O, with a focus on pedagogy and practical implementation.
Contribution
It provides a comprehensive, step-by-step instructional framework for students to develop a functional OS on personal hardware, integrating core OS features and porting to multi-core systems.
Findings
Students can build a functional OS with minimal supervision.
The project demonstrates core OS functionalities like multitasking and virtual memory.
Porting to a multi-core machine is achievable within the course scope.
Abstract
An operating system project suitable for undergraduate computing/electrical sciences students is presented. The project can be used as a course project in a one semester course, or as a self-study project for motivated students. The course is organized such that a student with a basic background in programming and computer organization can follow the implementation road map available online, and build the OS from scratch on her personal machine/laptop, with minimal instructional supervision. The student is provided with a simulated abstract machine, an application interface specification, specification and design of the OS, and a step by step project implementation road map. The functionalities of the OS include multitasking, virtual memory, semaphores, shared memory, an elementary file system, interrupt driven disk and console I/O, and a limited multi-user support. The final stage of…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Distributed and Parallel Computing Systems · Advanced Data Storage Technologies
