ABSTRACT
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.
- Bochs: The cross platform ia-32 emulator. http://bochs.sourceforge.net/.Google Scholar
- Champsim. https://github.com/ChampSim/ChampSim.Google Scholar
- Gdb: The gnu project debugger. https://www.gnu.org/software/gdb/.Google Scholar
- Linux kernel with pti. https://www.kernel.org/doc/Documentation/x86/pti.txt.Google Scholar
- pintos. https://web.stanford.edu/class/cs140/projects/pintos/pintos.pdf.Google Scholar
- Wind river simics. https://www.windriver.com/products/simics/.Google Scholar
- xv6. https://pdos.csail.mit.edu/6.828/2012/xv6.html.Google Scholar
- Adams, K., and Agesen, O. A comparison of software and hardware techniques for x86 virtualization. In Proceedings of the 12th International Conference on Architectural Support for Programming Languages and Operating Systems (2006), pp. 2--13. Google ScholarDigital Library
- Alian, M., Kim, D., and Sung Kim, N. Pd-gem5: Simulation infrastructure for parallel/distributed computer systems. IEEE Computer Architecture Letters 15, 1 (2016), 41--44. Google ScholarDigital Library
- Arpaci-Dusseau, R. H., and Arpaci-Dusseau, A. C. Operating Systems: Three Easy Pieces, 1.00 ed. Arpaci-Dusseau Books, August 2018. Google ScholarDigital Library
- Bellard, F. Qemu, a fast and portable dynamic translator. In Proceedings of the USENIX Annual Technical Conference (2005). Google ScholarDigital Library
- Binkert, N., et al. The gem5 simulator. SIGARCH Computer Architecture News (2011), 1--7. Google ScholarDigital Library
- Christopher, W. A., Procter, S. J., and Anderson, T. E. The nachos instructional operating system. In Proceedings of the USENIX Winter 1993 Conference (1993). Google ScholarDigital Library
- Hennessy, J. L., and Patterson, D. A. A new golden age for computer architecture. Communications ACM 62, 2 (2019), 48--60. Google ScholarDigital Library
- Hsieh, M., Pedretti, K., Meng, J., Coskun, A., Levenhagen, M., and Rodrigues, A. Sst + gem5 = a scalable simulation infrastructure for high performance computing. In Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques (2012), pp. 196--201. Google ScholarDigital Library
- Intel. IntelÂő 64 and ia-32 architectures developer's manual: Vol. 3b. www.intel.com, 2019.Google Scholar
- Lipp, M., and Others. Meltdown: Reading kernel memory from user space. In Proceedings of the 27th USENIX Conference on Security Symposium (2018), pp. 973--990. Google ScholarDigital Library
- Patel, A., Afram, F., Chen, S., and Ghose, K. Marss: A full system simulator for multicore x86 cpus. In Proceedings of the 48th Design Automation Conference (2011), pp. 1050--1055. Google ScholarDigital Library
- Tsai, C.-C., Jain, B., Abdul, N. A., and Porter, D. E. A study of modern linux api usage and compatibility: What to support when you're supporting. In Proceedings of the Eleventh European Conference on Computer Systems (2016), EuroSys '16, pp. 16:1--16:16. Google ScholarDigital Library
- Walter, M., and Karlsson, S. Software tools for low-level software and operating systems classes. In Proceedings of the 19th Workshop on Computer Architecture Education (2017), pp. 16--23. Google ScholarDigital Library
Index Terms
- gemOS: Bridging the Gap between Architecture and Operating System in Computer System Education
Comments