TY - CONF T1 - Running on the bare metal with GeekOS T2 - Proceedings of the 35th SIGCSE technical symposium on Computer science education Y1 - 2004 A1 - Hovemeyer, David A1 - Hollingsworth, Jeffrey K A1 - Bhattacharjee, Bobby KW - education KW - emulation KW - Hardware KW - Operating systems AB - Undergraduate operating systems courses are generally taught using one of two approaches: abstract or concrete. In the abstract approach, students learn the concepts underlying operating systems theory, and perhaps apply them using user-level threads in a host operating system. In the concrete approach, students apply concepts by working on a real operating system kernel. In the purest manifestation of the concrete approach, students implement operating system projects that run on real hardware.GeekOS is an instructional operating system kernel which runs on real hardware. It provides the minimum functionality needed to schedule threads and control essential devices on an x86 PC. On this foundation, we have developed projects in which students build processes, semaphores, a multilevel feedback scheduler, paged virtual memory, a filesystem, and inter-process communication. We use the Bochs emulator for ease of development and debugging. While this approach (tiny kernel run on an emulator) is not new, we believe GeekOS goes further towards the goal of combining realism and simplicity than previous systems have. JA - Proceedings of the 35th SIGCSE technical symposium on Computer science education T3 - SIGCSE '04 PB - ACM CY - New York, NY, USA SN - 1-58113-798-2 UR - http://doi.acm.org/10.1145/971300.971411 M3 - 10.1145/971300.971411 ER -