|
|
Linux in the Lab
By Dave Wonnacott, Assistant Professor of Computer Science, and
John Dougherty, Visiting Assistant Professor of Computer Science
----------
The computer science department is about to perform a major upgrade on its teaching lab. The current plan includes new computers loaded primarily with open-source software, including Linux and g++ (an open-source version of the C++ programming language made available by the Free Software Foundation). Open-source software gives us access to both the normal "executable" copy of the program and the human-readable "source" version of the program, which a programmer can view or modify. There are a number of benefits to using Linux and other free-source software for teaching:
---Students are free to install it on any computer they have: versions of Linux and g++ are available for computers from Apple, Intel, Sun, and many other manufacturers. Unlike software licensed by the college for student use, free software can be run on computers that are not on the campus network, and will still be available to the students after graduation.
|
|
|
Dave Wonnacott and J.C. Dougherty |
---Students can read or modify the programs for their class or research projects. For example, C. Ben Flynn's '99 senior thesis involves extensions to the C++ language, and he and his adviser are modifying g++ to try out these extensions. Writing a complete implementation of C++ is far too much programming for a senior thesis, so without access to the g++ "source" code, Ben would not be able to test his ideas.
---Many of the tools used in upper level applied computer science courses are only available for Linux (and other versions of Unix). If students start using Linux in introductory courses, they will not have to waste time switching to the new system when they get to the upper level courses.
---New desktop environments like Gnome (www.gnome.org) promise to provide a user-friendly interface for novice users, while still allowing experts access to the full power of Unix. (Linux, like other versions of Unix, has a reputation for being unfriendly to novice users.)
In addition to these pragmatic advantages, the open-source software philosophy is appealing from an educational standpoint: It extends to the world of software the academic ideal of a shared pool of knowledge, where all are welcome to learn what they need to know and contribute what they can. The presence of open-source software also supports our research. It is often necessary to demonstrate new ideas in computer science by writing programs to prove they actually work. If computer science is to live up to the scientific ideal of experimental work that can be reproduced by other scientists around the world, then it must be possible for other scientists to obtain and experiment with these demonstration programs. This is not possible if the programs include software that is proprietary or secret.
|
If computer science is to live up to the scientific ideal of experimental work that can be reproduced by other scientists around the world, then it must be possible for other scientists to obtain and experiment with these demonstration programs. This is not possible if the programs include software that is proprietary or secret. |
Open-source software allows researchers to focus specifically on their new ideas: The parts of the system that are already well understood (and thus not interesting from a research standpoint) can be constructed from free software. Without this base of free software, some computer scientists would have to choose between wasting enormous amounts of time on writing uninteresting parts of programs andr giving up their ideal of reproducible experiments.
For example, current trends in high performance computing (HPC) are shifting away from (expensive) supercomputers and toward the utilization of networks of workstations (NOWs) to solve problems which require large amounts of computer time. Tools are now available to permit these workstations to cooperate on such large problems, which often surface in scientific applications. One such tool, PVM (Parallel Virtual Machine), has been installed successfully on a NOW by Todd Miller '01 and used in research involving interprocess communication issues by student Nathan Doty '99.
Future goals include studying techniques to improve both performance and dependability utilizing parallel (and often redundant) processes. The ability to access the source code for all parts of a parallel application (including those supported in Linux) should contribute significantly to these research goals both now and in the future.