Вы находитесь на странице: 1из 4

Lucas & Murray, Teaching Operating System Concepts Through On-Demand Virtual Labs

Teaching Operating System Concepts Through On-Demand Virtual Labs

James Lucas University of Technology, Sydney, Australia james.lucas@eng.uts.edu.au Steve Murray University of Technology, Sydney, Australia stephen.murray@eng.uts.edu.au Abstract: Computer laboratories in universities are in most cases tightly controlled managed services in order to ensure a high level of availability to all students. This involves restricting user privileges and removing the ability to modify configurations and system programs. These environments are not well matched to the practical side of teaching operating system concepts especially when it comes to experimentation with the kernel of an operating system. Through the use of computer virtualisation technologies we can provide students with the computing resources to experiment with an OS.

Introduction
Virtual machine technology enables the physical hardware of a computer to be virtualised to allow multiple operating systems to be run on the same physical machine at the same time. A number of universities are integrating virtual machine technologies into IT and computer systems curricula (Gaspar 2007). The University of Southern Florida has designed a system using User Mode Linux (UML), which enables students to create and manage their own instances of a Linux machine running as a user space process (Gaspar 2007). We proposed a different solution with the main requirement being that the choice of operating system is not restricted (UML limits you to running an identical copy of the host Linux). We have designed and implemented an environment named On-Demand Virtual Labs (ODVLab) that provides individual virtual machines (VM) to students running various operating systems for use in academic projects. A cluster of servers hosts these VMs. Each server can execute multiple VMs at the same time (Figure 1). VMs are running on the virtualisation software VirtualBox (http://www.virtualbox.org). This virtualisation software is capable of deploying a wide variety of guest operating systems including Windows, Linux, Solaris and Minix. Students can request and interact with their individual machines through a browser-based GUI. Students can connect to the console of their virtual machines using the Remote Desktop Protocol (RDP). Clients for which are available for all major desktop operating systems. Key benefits of the ODVLab are: It provides an identical initial system to all users It provides a student with their own machine that other students cannot access It allows students full privileges (root / administrator) to their machine Machines can be rolled back to an initial state though backups and templates Students do not need to modify their own computer or install extra software to complete assignments A pilot phase was launched at UTS in March 2008 that will continue through to November 2008, covering two teaching semesters. The pilot phase allows us to test both the implemented infrastructure and also to evaluate various applications of the technology to enable practical learning experiences.

Proceedings of the 2008 AaeE Conference, Yeppoon, Copyright James Lucas & Steve Murray, 2008 1

Lucas & Murray, Teaching Operating System Concepts Through On-Demand Virtual Labs

This paper will look at example applications for using ODVLab to reinforce theory with practicebased work. We will also discuss the outcomes from the first semester of use (looking at both learning based outcomes and support reduction outcomes) and the plans for the second semester.

Figure 1: ODVLab implementation architecture overview

Example Applications
MINIX (Tanenbaum 2006) is a Unix like operating system designed as a microkernel, and intended for use in courses teaching operating systems. The source code is provided by the publisher and this encourages students to participate in delicate and complex system-level programming exercises. An ideal candidate for placement into the ODVLab capability list, it was chosen as one of the first operating systems to be provided to students though ODVLab. It was used in the undergraduate subject Real-Time Operating Systems (RTOS) at the University of Technology, Sydney. Students were offered an advanced assignment that involved practical experimentation with the Minix kernel. The two assignment topics taught were Implementing and Evaluating Schedulers and Creating a /proc file system. The first topic tasked students with modifying the Minix scheduler and implementing a Lottery scheduler (random) and a FIFO scheduler. Then evaluating the impact of each scheduler when running CPU bound and I/O bound processes. This assignment did not require the students to generate large amounts of source code, rather, the goals were to have the students see the real world effects of process scheduling thus building on the theory already taught. It naturally required them to become familiar with the default MINIX scheduler and to develop modifications that were to be inserted. This topic was the most popular choice of the two Minix project topics. It was well suited to being hosted by ODVLab, since in the course of implementing the required changes there were many instances where faulty candidate implementations resulted in kernels that were either unstable, or completely inoperable. This unfortunate, but not uncommon occurrence in systems programming means that instead of a complete installation of MINIX on a dedicated real computer being rendered useless, the student only had to roll back their code base on their remotely hosted virtual machine. The other assignment topic choice, the virtual file system, gave students an opportunity to acquire experience in modern file system design. The proc file system is virtual in the sense that it is not mounted on any physical mass storage device, but exists as a kernel entity that is updated to maintain a record of the run-time environment. Again, there is not a very large amount of code to be developed to

Proceedings of the 2008 AaeE Conference, Yeppoon, Copyright James Lucas & Steve Murray, 2008 2

Lucas & Murray, Teaching Operating System Concepts Through On-Demand Virtual Labs

support the feature (compared to the kernel code base), but there are educational benefits to the students in the sense that they must look carefully at both file systems and at the process management areas of the kernel. The semester two pilot has, at the time of writing, only just commenced. Results from semester two will be released at a later date. The applications chosen for the second semester involve a wider range of project types. Three subjects have been chosen in the expanded deployment. These subjects are Real-Time Operating Systems, Software Architecture and Information and Communications Technology Design (ICTD). In all three subjects ODVLab was chosen because it does not dramatically change the theory taught nor force the coordinator to change their style of assignments, rather it grants them the freedom to give student more practical assignments and reduce their support needs for managing the IT provisioning for assignments. The subject RTOS is continuing to use ODVLab for assignments that involve kernel level or device driver programming. Whilst we could list a variety of possible assignment topics the possibilities are endless once the student is provided with the base operating system. The subject Software Architecture currently has assignments that require students to develop software that in many cases involves distributed systems. When simulating distributed applications students either require access to multiple computers at the same time or they simulate it by running all the processes on the same machine. ODVLab will be offered to students to help them develop and deploy their assignments onto multiple virtual machines in a true distributed fashion. In doing so students are able to investigate some of the issues they would not encounter if they were running all of their software on a single machine. The subject ICTD is the third subject using ODVLab as a way of reducing the support requirements of the subjects assignment. Currently ICTD revolves around a full semester assignment where students in groups of 12-20 people implement a large scale software/hardware project. This usually involves having to setup large numbers of extra laboratory computers where these students can install database, web or other servers, granting them Administrator rights and keeping these machines separate from the general student population. ODVLab will allow students to set up their own virtual computer laboratory with Windows and Linux servers and they can then deploy their software without the intervention of support staff and without the need for separate laboratory computers.

Benefits and Costs


Furnishing a conventional laboratory with 30 fully complete PCs has an initial cost of $51000 not including ongoing costs such as maintenance and security as the PCs are exposed to misuse and abuse. The hardware used for ODVLab are commodity x86 server class machines which have been decommissioned from the Engineering high performance computer cluster (HPC). ODVLab made use of hardware that would otherwise have no role. Support costs represent a large saving as each individual student can have access to their own virtual machine, consequentially mistakes they make do not impact any other student. In contrast, if a student damages a laboratory computer this will have an impact on future students until such time as support staff are able to repair the unusable machine. Computing laboratories have therefore been required to operate in a locked down mode to restrict user changes to machines. ODVLab allows the relaxation of these requirements while still providing managed computing infrastructure. A non-financial saving is the convenience savings that students gain though using ODVLab. Physical computer laboratories are one of the few university teaching infrastructures where access still requires physical presence on campus. At the same time the Internet has provided easy distribution of lecture and tutorial materials enabling distance or flexible learning arrangements. Group assignments can also be done remotely using the Internet. ODVLab students do not need to travel to the university campus to complete laboratory work with specialist or configured computing environments. Feeding locally developed software back to open source projects was one unexpected outcome from the initial pilot. For example in the reflection report of one of the proc file system assignment teams there was discussion on submitting the initial proc file system implementation to the minix3.org project for possible inclusion in future official releases of that product.

Proceedings of the 2008 AaeE Conference, Yeppoon, Copyright James Lucas & Steve Murray, 2008 3

Lucas & Murray, Teaching Operating System Concepts Through On-Demand Virtual Labs

Before starting on the assignments, students were tasked with configuring their systems so that if they made a major mistake the systems can be booted from a known working kernel (this simply involved duplicating the kernel files to a separate directory under /boot and then calling this kernel from the boot prompt). This showed the students how and where their kernel is booted from and how they can implement different kernel setups and change between them. What we did not expect with the scheduler assignment was that students could quite easily cause double faults on the virtual CPU leaving their machine in an error state. This impacted some students more than others because they failed to identify the root cause of their issue (i.e. a problem in their code) and continued to get into a loop of reboots and crashes. The web interface to ODVLab was modified to better identify when these error states occurred and provided feedback to the student offering them steps to recovery. Minix currently lacks a working network driver for any of the virtualised network cards provided by Virtual Box. This meant that code could not be copied from the virtual machine to network storage (e.g. fileserver or version control). This affected students working in groups, as there was not an easy way to share code between group members. Emailing print screens was one common workaround. This was the primary criticism cited by the students. One possible method to solve this is to have the students implement a network driver for Minix. This could be done either from scratch or having them modify a supplied but inoperable lance driver. This would be beneficial for both the student via learning device drivers and also solve the issue of no network access. The other possibility is to move the assignments to Linux, that is, to use a version of Linux as the guest operating system as opposed to MINIX. The only disadvantage with this latter approach is that the size and complexity of the Linux kernel may make the learning curve too high to have beneficial outcomes.

Future Directions
The outcomes from the pilot applications will be used to develop various use case scenarios of ODVLab and showcase the benefits while showing the constraints of each model. These case studies should give a baseline for any subject wishing to use ODVLab for practical laboratory assignments. Along with the use cases, ODVLab will be released as open source software at the end of the pilot study. One undergraduate thesis has used the ODVLab to provide servers for web application development. This was outside the pilot study so it has not been discussed further. It is expected that ODVLab will be offered to all Engineering and IT undergraduate and postgraduate thesis students for the purpose of building computing environments for developing and/or demonstrating their projects to their supervisor(s). The effectiveness of the ODVLab for thesis projects will be examined at a later date. On a technical level, ODVLab will be extended to integrate with our Remote Laboratory program to provide real-time remote debugging of embedded hardware development boards.

References
Gaspar, A. (2007) Virtualization Technologies in the Undergraduate IT Curriculum, IT Pro July | August, IEEE Computer Society, 10-17.

Tanenbaum, A. Woodhull, A. (2006) Operating Systems: Design and Implementation, 3rd Edition, Prentice Hall.

Acknowledgements
Ramy Ibrahim completed the initial development work on ODVLab through an undergraduate thesis project On-Demand deployment of virtual development environments (2007).
Copyright 2008 James Lucas & Steve Murray: The authors assign to AaeE and educational non-profit institutions a nonexclusive licence to use this document for personal use and in courses of instruction provided that the article is used in full and this copyright statement is reproduced. The authors also grant a non-exclusive licence to AaeE to publish this document in full on the World Wide Web (prime sites and mirrors) on CD-ROM and in printed form within the AaeE 2008 conference proceedings. Any other usage is prohibited without the express permission of the authors.

Proceedings of the 2008 AaeE Conference, Yeppoon, Copyright James Lucas & Steve Murray, 2008 4

Вам также может понравиться