AC 2007-904: A VIRTUAL MACHINE ENVIRONMENT FOR REAL-TIME SYSTEMS LABORATORIES

The goal of this project was to build a superior environment for a real time system laboratory that would allow users to run Windows and Linux embedded application development tools concurrently on a single computer. These requirements were dictated by real-time system applications which are increasingly being implemented on asymmetric dual-core processors running different operating systems. A real time systems laboratory curriculum based on dualcore architectures has been presented in this forum in the past. 2 It was designed for a senior elective course in real time systems at the University of Texas at Tyler that combines lectures along with an integrated lab. The students are required to have at least one course in structured programming, and a course or prior experience with the operation of microprocessors, but Linux experience is not required. The lab procedures that were implemented include running audio processing applications, building a Linux kernel, building an audio player application using cross compiler tools, testing a finite impulse response (FIR) filter and running a web hosting application. Instruction and application development on such architectures can be a major challenge involving one set of tools and hardware for each operating system. The common solutions are to use a dual-boot computer running Linux and Windows or use two separate computers running Windows and Linux respectively, neither of which is ideal. Virtual Machine environments are becoming increasingly popular due to the various advantages they offer, especially in settings that involve development on multiple operating systems. Desktop virtualization software can be used to run multiple operating systems simultaneously on a single personal computer. A virtual machine is nothing but a single file or image embedded with the entire hardware configuration, operating systems and tools of a computing machine. The software allows Windows, Linux or Solaris to be run on networked virtual machines without the requirement of rebooting the system or partitioning the hard drive. 1 This paper presents the results of implementing real-time systems laboratory experiments in a virtual environment. The VMware Workstation Edition package was used with Windows host operating system and Linux as the guest. The virtual machine implementation offered a wide range of benefits when compared to individually operating machines. The virtualization greatly improved the hardware utilization in the laboratory resulting in cost benefits. The major advantages offered by virtualization software are: simultaneous access to a multiple operating systems, automation of test sequences without multiple system reboots, migration of control between operating systems without user disruption, ability to create a preconfigured library of virtual machines thereby reducing setup time, and the ability to preserve the host machine content by isolating each virtual machine. 3