gemOS: Bridging the Gap between Architecture and Operating System in Computer System Education

Providing adequate exposure to architecture and OS interfaces can enable the students with better understanding of the concepts and increase their interest towards research problems crossing the hardware-software boundaries. Moreover, a framework to explore possible enhancements spanning across the architecture and operating system (OS) layers can be very useful for researchers. The existing tools and techniques used to teach system courses like OS and Computer Architecture serve the objective of respective courses to a large extent. However, exploration crossing the hardware and OS boundaries is particularly difficult due to lack of proper teaching infrastructure integrating the two layers. In this paper, we propose to use a specialized OS executing on the Gem5 full system simulator as an alternate approach to explore the architecture and OS boundaries. Open source OSes like Linux are not suitable for this purpose simply because they are not designed to be used as teaching infrastructure, especially on a system simulator like Gem5. We propose gemOS, a simple OS for 64-bit X86 simulation platform provided by the Gem5 architectural simulator. Further, we propose a simple framework using gemOS along with Gem5 and show its utility towards understanding the OS and architecture interactions, and, show the quick prototyping support of the framework to implement innovative ideas spanning across the two layers. We present use-cases and examples to demonstrate the utility of the proposed framework as a teaching and research infrastructure.