KernelVM: Teaching Linux Kernel Programming through a Browser-Based Virtual Machine

February 12, 2025·
Elliott Wen
Dr Sean Longyu Ma
Dr Sean Longyu Ma
,
Paul Denny
,
Ewan Tempero
,
Gerald Weber
,
Zongcheng Yue
· 0 min read
Abstract
Providing students with hands-on experience in kernel programming within a real-world operating system is highly beneficial in an Operating Systems (OS) course for teaching core operating system concepts and developing practical skills. However, accessing suitable devices for such hands-on experimentation poses significant challenges. Traditional solutions involve hosting virtual machines on cloud platforms, which are expensive and do not scale well with increasing student numbers. Additionally, many students’ personal devices, such as Macs or iPads, have limited support for running Linux, creating further barriers. In this paper, we introduce KernelVM, a novel cost-effective platform that offers students a Linux virtual machine with full superuser access and pre-configured kernel programming toolchains. KernelVM is accessible via any modern browser on any device. It performs all computations locally within the user’s browser, thus eliminating cloud computing costs. KernelVM provides a robust learning environment by incorporating interactive virtual hardware components and an automatic evaluation system, supporting a wide range of tasks, including multi-threaded cryptographic kernel modules and Linux drivers for hardware interaction. We detail the design of KernelVM, and describe our experiences incorporating it for the first time into an OS course with 159 undergraduate students. We found that KernelVM was instrumental in improving the quality and efficiency of hands-on learning experiences, with students reporting increased satisfaction and engagement due to the immediate feedback and the ability to experiment in a risk-free environment. Our experience suggests that KernelVM not only addresses the logistical challenges of kernel programming education, but it helps foster a highly interactive and engaging learning experience.
Type
Publication
Proceedings of the 56th ACM Technical Symposium on Computer Science Education V. 1
publications
Dr Sean Longyu Ma
Authors
Lecturer in Computer Science
Sean Longyu Ma is a Lecturer in the School of Computer Science at the University of Auckland. His research focuses on FPGA-based computing, RISC-V customisation, high-level synthesis, and heterogeneous computing.