150 likes | 301 Views
An Open Source Laboratory for Operating Systems Projects *. Mark Claypool, David Finkel, Craig Wills Computer Science Department Worcester Polytechnic Institute Worcester, MA 01609, USA
E N D
An Open Source Laboratory for Operating Systems Projects* Mark Claypool, David Finkel, Craig Wills Computer Science Department Worcester Polytechnic Institute Worcester, MA 01609, USA * Partially funded by the National Science Foundation Course, Curriculum and Laboratory Improvement Grant DUE9980803.
Overview • Goal: Provide projects for students in operating systems courses using a real operating system • Lab: Established a lab with PC’s running Linux. • Developed projects for two courses • Evaluation
About WPI • Technological university in Massachusetts • Undergraduate enrollment of 2700 • About 600 Computer Science majors • 7-week undergraduate terms • Project orientation to curriculum and courses • Practical, career-oriented students
Systems Courses at WPI • Operating Systems, 3rd year course. • Distributed Computing Systems, 4th year • 3 – 4 large scale programming assignments • In the past, course have used commercial operating systems (Unix) or simulated environments for programming assignments • Lab has now been used in 4 course offerings
The F/OSL Lab • Free / Open Systems Lab (“Fossil”) • 30 PCs, running Linux operating system • Protected from campus network by firewall • Custom CD-ROM for re-installing OS • Each machine assigned to a single student group for the term; they have complete root access to their machine, guest access to other machines
Project 0 • Designed to familiarize students with Linux, root access, OS utilities • Cookbook style assignment • Tasks: • Set up a new user account • Use find / grep to locate code • Install a new file system, re-compile kernel
Project 1 (O.S.) • Modify the Linux Scheduler • Tasks: • Locate, study the current scheduler • Modify it to implement fair scheduling • Compare the performance of standard scheduling vs. fair scheduling
Project 2 (D.C.S.) • Display contents of file system data structures to user (i-node and superblock) • Tasks: • Write and register new system calls to extract information from these data structures • Develop a user application to call these system calls and display the information
Evaluation • Student Questionnaire in Traditional Course and Fossil Course • 1 – strongly disagree to 4 – strongly agree • Responses: • “I think the course material and projects helped me to gain a good understanding of operating systems in terms of the services they provide at the system call level.” Traditional Course: 3.0; Fossil 3.3
Evaluation 2 • “I think the course material and projects helped me to gain a good understanding of operating systems internals.” Traditional Course: 2.9; Fossil: 3.3 • “I think the course material and projects gave me experience that would help me write or modify portions of an operating system.” Traditional Course: 2.6; Fossil: 3.1
Evaluation 3 • Open-ended responses: • “Making alterations to the Linux kernel taught me far more than any other part of the course.” • “When the kernel crashed, we had to manually reboot the system, which took an awful lot of time.” • “I have seen people take other OS courses and they did not dive into the material as far as we did because they will not let you modify the OS on any of the school servers.”
Instructors’ Evaluation • Many students appreciated the challenge of working with a real operating system • Weaker students needed a lot of help. The TAs were available in the lab, and had to exercise some judgment about how much help to give • A lot of work for the instructors, too
Conclusions • Implemented a lab that allowed students to work on operating systems internals • Developed a variety of projects to demonstrate different OS principles • Future: Institute different kinds of support mechanisms for students of different levels of background, ability.
Shameless Advertisement We have applied for NSF support for workshops for Summers of 2002, 2003 to work with O.S. instructors to develop projects for their courses using the Open Source Projects approach. If you’re interested in participating, contact: dfinkel@cs.wpi.edu
An Open Source Laboratory for Operating Systems Projects* Mark Claypool, David Finkel, Craig Wills Computer Science Department Worcester Polytechnic Institute Worcester, MA 01609, USA {claypool | finkel | cew}@cs.wpi.edu * Partially funded by the National Science Foundation Course, Curriculum and Laboratory Improvement Grant DUE9980803.