Back to [CEReAL group]
SOFTICE
Virtualization for Computing Education

Welcome to SOFTICE

The SOFTICE project (Scalable, Open source, Fully Transparent and Inexpensive Clustering for Education) aims at leveraging Linux virtualization (e.g. User Mode Linux) and clustering technologies to support innovative pedagogies for undergraduate laboratories in courses such as Operating Systems and Networking.

Beyond making available course material in these courses, we also provide documentation and software to help educational institutions hosts their students' virtual machines on an inexpensive, scalable and non-intrusive infrastructure. Several solutions to manage, with minimal efforts, virtual machines dynamically spread over a load-balancing cluster are proposed. Each of them operates transparently relatively to the hosting network without need to change anything on the current classroom PCs since access will be possible from Linux, Unix or Windows workstations alike.

Important Note

This material was hosted until about 2010 on the http://softice.lakeland.usf.edu/ wiki.

After the transfer of the USF IT department, the virtual appliance hosting it was no longer available. This page provides access to the most important material produced during the grant. Transfering the material back to this format is an ongoing project in itself. If you need access to some of the old wiki material, please email the PI at alessio@usf.edu or use the wayback machine to look for the older wiki archives.

Keep also in mind that, due to the advances in virtualization and cloud computing which emerged since this grant, most of our innovations are now main stream.

The following is a work in progress as we transition the material from the old wiki into this new website. You may find the original SOFTICE wiki pages archived in the wayback machine

Overview

This page provides pedagogical material for undergraduate Operating Systems Concepts 3 credits courses. Such courses are meant as a introduction to the algorithms, concepts, techniques and internals of operating systems. They are taught at USF as COP 4600 (CS version) and COP 4610 (IT version).

This page will host two types of resources for instructors and students:

  • A case study assignment which wasn't developed as part of the SOFTICE grant but which is meant to complement the above-mentioned laboratories in order to develop students' undergraduate research and critical thinking skills.
  • As part of the SOFTICE grant, a series of laboratories was developed and is made available in the section below. These laboratories leverage the possibilities offered by virtualization technologies to enhance the hands-on experience of students in this course.

You will notice that there are two approaches to using these labs in an operating system course. We recommend for students and instructors to use the first one presented below. It allows students to work on their own machine after downloading a VMware appliance. The alternative requires the instructor to set up a server for students to work on. In addition to the convenience of working on their own system, the former solution uses a newer kernel version.

Please contact Alessio if you are interested in adopting / adapting this material for your own courses or if you have questions not addressed on these wiki pages.

Operating Systems Case Study Assignment

The rationale for using a case study assignment in an operating system course has been discussed in one of our publication (The case for case study assignments in undergraduate OS courses, A. Gaspar, S. Langevin, EIAE 2006) available on our EDU Research tab. The following page OSC: Case Study Assignment provides hands-out for students and instructions to organize such an assignment in your own operating system course.

SOFTICE Laboratories (Using the SOFTICE OS-Labs virtual appliance)

This page documents the SOFTICE's OSC laboratories. These are meant to be used as 1 credit (roughly 3hrs/ week sessions) complement a 3 credits undergraduate course in Operating Systems Concepts (e.g. COP 4600). The laboratories are meant to be ran in parallel with the course, however they can be used as open / closed labs or even assignments in a lecture-only setting. Wiki pages below will detail how to use, prepare for these labs a well as provide further technical or pedagogical pointers.

You can work on these labs in two different ways;

  • 1. By using a SOFTICE server setup by your instructor. See the next section for this approach
  • 2. By Downloading our SOFTICE VMware OS Labs Image.

This section discusses the latter possibility. It allows students to work on the OS Labs without the need for a Linux server hosting our material. This should be a good solution for independent learners or instructors not interested in hosting their students' VMs on a server. The VMware image runs on Windows or Linux PCs. Follow this link for a download link and step by step setup instructions.

For Instructors: Notes on the pedagogy used in the OSC labs For Students: Working on your own PC with the SOFTICE VMware OS Labs Image References for OSC course related to Operating Systems Indexed source code for the 2.6.16.20 Linux kernel source (Original LXR)

  • lab#00 Introduction Softice OSC Labs
  • lab#01 System Calls Interception
  • lab#03 User-kernel space communication
  • lab#04 Synchronization
  • lab#05 Device Drivers
  • lab#06 Memory Management

You will notice that this list of labs is shorter than the one originally developed for the grant. The labs that were removed are being worked on to be adapted to the newer kernel version (2.6.24.3 vs. 2.6.16.20) used by the SOFTICE OS-Labs virtual appliance compared to the User Mode Linux (UML) virtual machines students used on our server.

Update -- As of 11/16/2008, the above labs are being re-edited on the wiki to reflect the modifications required by our move to the new virtual appliance approach. These should be finalized before the next term. In the meantime the old labs are available below. Alessio 16:38, 16 November 2008 (EST)

SOFTICE Laboratories (Using a SOFTICE server)

This section contains the original laboratories which were developed in the SOFTICE grant. They require you to set up a SOFTICE server to which students will connect to run User Mode Linux (UML) virtual machines as described in the labs below. For Instructors: Notes on the pedagogy used in the OSC labs Instructions on Setting up the OSC labs on your own Linux box For Students: Accessing SOFTICE from home: step-by-step guide on using softice from home References for OSC course related to Operating Systems Downloads for OSC course for debian ISO images, ssh clients... Indexed source code for the 2.6.16.20 Linux kernel source (Original LXR)

  • lab#00 Introduction Softice OSC Labs
  • lab#01 System Calls Interception
  • lab#02 Stealth Processes & PCBs
  • lab#03 User-kernel space communication
  • lab#04 Synchronization
  • lab#05 Device Drivers
  • lab#06 Memory Management
  • lab#07 File Systems
  • lab#08 Hiding files & directories

The original SOFTICE wiki page may be found at wayback archived SOFTICE wiki page

SOFTICE Networks Labs

Please contact Dr. William Armitage, lead developer for these labs, if you need access or any information; armitage@usf.edu.

Peer reviewed Journals

  • A. Gaspar, S. Langevin, W. Armitage, M. Rideout Enabling new pedagogies in operating systems concepts and networking courses through state of the art open source kernel and virtualization technologies Journal of Computing Sciences in Colleges , Volume 23 Issue 5, pp. 189-198, May 2008, [ACM DL]
  • A. Gaspar, S. Langevin, W. Armitage, M. Rideout March of the (virtual) machines: Past, present and future milestones in the adoption of virtualization-based classroom management, Journal of Computing Sciences in Colleges , Volume 23 Issue 5, pp. 123-132, May 2008, [ACM DL]
  • A. Gaspar, S. Langevin, W. Armitage Virtualization Technologies in the Undergraduate IT Curriculum, IEEE IT PRO Journal, July-August 2007, pp. 10-17, Lead Article in a special issue on Virtualization Technologies [IEEE Xplore]
  • W. Armitage, A. Gaspar A UML + MLN based approach to implementing a networking laboratory on a scalable Linux cluster The Journal of Computing Sciences in Colleges, Vol. 23 issue 2, pp. 112—119, 2007 [ACM DL]
  • A. Gaspar, W. Armitage, N. Boyer Design of a distance education, 2+2 years articulated, IT curriculum in Linux System Administration The Journal of Computing Sciences in Colleges, Vol. 23 issue 2, pp. 104—111, 2007 [ACM DL]
  • A. Gaspar, S. Langevin, J. Stanaback, C. Godwin SOFTICE: Facilitating both Adoption of Linux Undergraduate Operating Systems Laboratories and Student’s Immersion in Kernel code Journal of Systemics Cybernetics and Informatics, JSCI, vol. 5:3, pp. 30-35
  • Alessio Gaspar, Clark Godwin Root-kits & loadable kernel modules: exploiting the Linux kernel for fun and (educational) profit The Journal of Computing Sciences in Colleges, CCSC (Consortium for Computing Sciences in Colleges), Vol 22, Number 2, December 2006, pp. 244-250 [ACM DL]

Peer reviewed Conferences

  • W. Armitage, A. Gaspar, S. Langevin, M. Rideout Remotely Accessible Sandboxed Environment with Application to a Laboratory Course in Networking Proceedings of the ACM Special Interest Group in IT Education Conference, Oct 18-20, Sandestin, FL, 2007 [ACM DL]
  • M. Rideout, S. Langevin, A. Gaspar, W. Armitage Three years of SOFTICE: Remotely accessible, load-balanced, virtual machines for operating systems and networking laboratories SIGCSE 2007, ACM’s Special Interest Group in Computer Science Education, NSF CCLI showcase, March 7-10, Covington, KY
  • Alessio Gaspar, Sarah Langevin, William D. Armitage Inexpensive, Scalable and Transparent Open Source Classroom Management for Linux-based Laboratories, IEEE International Conference on Engineering Education, Instructional Technology, Assessment and E-Learning, December 4-14, 2006.
  • A. Gaspar, S. Langevin The case for Case Study Assignments in Undergraduate Operating Systems Courses IEEE International Conference on Engineering Education, Instructional Technology, Assessment and E-Learning, December 4-14, 2006.
  • Alessio Gaspar, Sarah Langevin New approaches for Linux-based undergraduate operating system concepts laboratories IEEE International Conference on Engineering Education, Instructional Technology, Assessment and E-Learning, December 4-14, 2006.
  • Alessio Gaspar, Joe Stanaback, Clark Godwin SOFTICE: Facilitating both Adoption of Linux Undergraduate Operating System Laboratories & Students' Immersion in Kernel code 4th International Conference on Education and Information Systems: Technologies and Applications, July 20-23 2006, Orlando, Florida, USA.
  • Alessio Gaspar, Joe Stanaback, Clark Godwin SOFTICE: Undergraduate Operating Systems Laboratory ITICSE: ACM's 11th International Conference on Computer Science Education, Software & Courseware Announcements, web site, 16-28 june 2006, University of Bologna, Italy. [ACM DL]
  • Alessio Gaspar, Francois Delobel, William D. Armitage, Arthur Karshmer and Farimah Fleschute SOFTICE: Scalable, Open, Fully Transparent and Inexpensive Clustering for Education International Conference on Education and Information Systems: Technologies and Applications, EISTA'04, pp. 335-340, July, 2004.

Posters at the 21st Century Symposium on Teaching Excellence

  • A. Gaspar, S. Langevin, W. Armitage Softice year #3: serving virtual machines from a scalable hardware platform in undergraduate IT laboratories 21st century symposium on teaching excellence, p. xxx, 02/28/2008, University of South Florida, Tampa, Fl
  • Alessio Gaspar, Joe Stanaback, Clark Godwin SOFTICE project Y2: First results in Operating Systems Laboratories Development Symposium for 21st Century Teaching Technologies, University of South Florida, Tampa, USA, 03/08/2006.
  • Wiliam Armitage, Alessio Gaspar, Farimah Fleschute Networking Laboratories using SOFTICE Symposium for 21st Century Teaching Technologies, University of South Florida, Tampa, USA, 03/08/2006.
  • Alessio Gaspar, Dave Armitage, Farimah Fleshute SOFTICE: Linux SSI clustering & emulation can facilitate Hands-on Computer Science Education Symposium on 21st Century Teaching Technologies, 2005, University of South Florida, March 3 2005, USF, Tampa, FL.

Posters at the USF Scholarship Day

  • A. Gaspar, W. Armitage, N. Boyer EDELWEISS: A USFL / PCC online articulated curriculum for Linux System Administration USF Lakeland’s Scholarship Day, Poster and demonstration, April 20th 2007, Lakeland, FL
  • A. Gaspar, W. Armitage SOFTICE: 3 years of Technological and Pedagogical Contributions to Operating Systems and Networking Labs USF Lakeland’s Scholarship Day, Poster and demonstration, April 20th 2007, Lakeland, FL
  • Alessio Gaspar, Joe Stanaback, Clark Godwin From Hacking to Learning: Undergraduate Operating Systems Laboratories with SOFTICE USF Lakeland Scholarship Day, April 21st 2006.
  • Dave Armitage, Alessio Gaspar, Farimah Fleschute SOFTICE-based networking laboratories USF Lakeland Scholarship Day, April 21st 2006.
  • Alessio Gaspar, Wiliam Armitage, Farimah Fleschute SOFTICE: developing hands-on opportunities for Operating System and Networking courses with Linux SSI clustering and emulation USF Lakeland Scholarship Day, April 8th 2005.

Faculty

These are the various faculty who managed the SOFTICE grant. Do not hesitate to get in touch with them individually with any questions about the labs they developed or the papers they are listed on.

Alessio Gaspar
  • Associate Professor, USF Information Technology
  • Principal Investigator
  • USF IT program Undergraduate Director
  • USF Linux Technologies specialization track coordinator
  • Led research efforts
  • Operating Systems Labs designer
Dave Armitage
  • co-investigator - USF Information Technology Faculty
  • Associate Professor, USF Information Technology
  • USF IT Department's Chair
  • Contributed to research effort
  • Networking Labs designer

Partners

Joe Stanaback
  • System Administration
  • Security implementation, monitoring and response
  • Linux System Administration Laboratories Development
  • Dissemination: wiki documentation and publications
Matt Rideout
  • Networking Laboratories
  • System Administration
Clark Godwin
  • Operating System Laboratories development
  • Dissemination: publications
Benjamin Geiger
  • Operating Systems Laboratories

Funding

This material is based in part upon work supported by the National Science Foundation under award number DUE ATE 0410696. Any opinions, findings, and conclusions or recommendations expressed in this publication are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.