Providing students with hands-on experience in kernelprogramming within a real-world operating system is highly beneficial in an Operating Systems (OS) course for teaching core operating system concepts and developin...
详细信息
ISBN:
(纸本)9798400705311
Providing students with hands-on experience in kernelprogramming 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 kernelprogramming 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 kernelprogramming education, but it helps foster a highly interactive and engaging learning experience.
Memory Safety means that a program cannot access unintended memory regions. Lack of memory safety continues to be a major source of security related software errors. The problems arising from the use of memory unsafe ...
详细信息
Memory Safety means that a program cannot access unintended memory regions. Lack of memory safety continues to be a major source of security related software errors. The problems arising from the use of memory unsafe C programming language are reviewed, both in general and linux kernel programming context. Various methods for detecting and eliminating memory safety problems are then evaluated. Methods chosen for testing were static and dynamic analysis, and using a memory safe language as a programming language. The methods were tested during a process of writing a linuxkernel module. Unfortunately, none of the methods tested proved to be a comprehensive solution to the problem of memory unsafety. Each method had their own strengths. Static analysis is easy to include in the development process; however, it does not detect problems very efficiently. Dynamic analysis, on the other hand, is good at finding bugs; yet it requires manual testing. Memory safe languages are very promising; however, they would require significant, changes to the existing code which can be difficult to achieve in practice both due to economic and social reasons.
This paper discusses how linux clustering and virtual machine technologies can improve undergraduate students' hands-on experience in operating systems laboratories. Like similar projects, SOFTICE1 relies on User ...
详细信息
ISBN:
(纸本)9789806560796
This paper discusses how linux clustering and virtual machine technologies can improve undergraduate students' hands-on experience in operating systems laboratories. Like similar projects, SOFTICE1 relies on User Mode linux (UML) to provide students with privileged access to a linux system without creating security breaches on the hosting network. We extend such approaches in two aspects. First, we propose to facilitate adoption of linux-based laboratories by using a load-balancing cluster made of recycled classroom PCs to remotely serve access to virtual machines. Secondly, we propose a new approach for students to interact with the kernel code.
This paper discusses how Loadable kernel Modules (LKM) can be used in Operating Systems (OS) Laboratories to pedagogically enhance an undergraduate student's hands-on experience. We draw inspiration from this tech...
详细信息
This paper discusses how Loadable kernel Modules (LKM) can be used in Operating Systems (OS) Laboratories to pedagogically enhance an undergraduate student's hands-on experience. We draw inspiration from this technology as it has been applied in the computer security field as a means to compromise running kernels after successfully breaking into an unsecured host. We propose and discuss in detail a new pedagogical approach to introduce students to linux kernel programming techniques which are relevant to the contents of classic undergraduate operating systems course concepts. This new approach breaks down the complexity and initial overwhelming feeling experienced by students when first confronted to the intimidating source code base of a modern OS. Students are led to develop loadable kernel modules meant to "hack" into a running kernel so that critical system calls and data structures can be unveiled progressively by the instructor. This approach allows for well-delimited forays into "kernel land" that can be tailored to fit any lecture style and students' capabilities specifics.
暂无评论