Linux at Rancho Santiago College
Roughly twice a year, I find myself combing the Unix job ads in the LA Times. Luckily, this does not mean I am frequently unemployed. In fact, in addition to my full-time job integrating, supporting and teaching Unix, I am also a part-time instructor at Rancho Santiago, a community college in Santa Ana, California. For the first hour of the first class of every semester, the parking lots are a jungle, and students are struggling to find the right buildings and classrooms. I use this hour to discuss the recent Unix job ads and “buzz words”. I cover what students will learn in my class and what additional skills employers list most often in these ads. In January 97, employers most often wanted Unix plus C programming or Unix plus Windows NT (networking). Rarely do ads mention a specific Unix operating system type such as HP, Sun or Linux.
I use Linux extensively in my classes. I also use the free version of SCO Unix. I teach a series of three full-semester Unix classes available at Rancho:
CMPR 141: Unix Operating System
CMPR 241: Unix System Administration
CMPR 242: Advanced Unix Shell Scripts
In each of these classes, I give my car radio analogy. There are many different styles of car radios, each with a slightly different placement of knobs and controls; yet when most people get into a strange car, they can turn on the radio, adjust the volume, change the station and maybe set their favorite stations. In the same way, Unix on different computer platforms has variations in the basic commands, e.g., how you log off or how you display a file one page at a time. There is no need to become disoriented when you face a strange car radio, oops ... I mean when you face a new variant of Unix, especially if you are on the Internet, using TELNET to access one host or another. While Linux has peculiarities that you don't find on other flavors of Unix, it is not alone. Every Unix has some peculiarities. For me, the important issue is that Linux supports all the standard Unix commands and shell features.
When I first started teaching at Rancho, my biggest problem was the fact that students had no access to Unix outside of my three-hour once-per-week class. The school has a computer lab, but none of the systems there had access to Unix. I considered several alternatives before deciding on Linux. There are packages that allow you to run Unix utilities under MS-DOS. I decided against using these, because the problems that arose were not really Unix issues, such as MS-DOS not supporting upper and lower case file names or Unix permissions. There was another flavor of Unix that could be loaded from floppy, but that company is no longer in business. The free version of SCO was not available at the time and, since it is only a 2-user version, it must be installed at each station which is difficult in a lab situation.
I also considered freeBSD. However, I eventually chose to use Linux in my classroom for the following reasons:
Linux acts like a standard version of Unix and the problems that arise are true Unix issues (not MS-DOS issues).
Linux has a large body of documentation and HOWTOs that allow me to customize the package as needed.
Linux licensing allows me to make the software freely available to students.
Linux evolves continuously, supporting new hardware as it becomes available.
Internet ISPs use Linux as e-mail and/or domain name servers.
Linux is strongly represented in the technical book stores under both the Unix and Internet categories.
There are a number of different Linux distributions, fostering healthy competition and adding value.
All of the above show that Linux is a thriving variant of Unix, worth studying in its own right, as well as a useful teaching tool.
On the other hand, I also warn my students that Linux is not yet fully accepted as a commercial grade of Unix by all employers. I also use the free SCO Unix in my classroom so that students can see variations in Unix side-by-side, and so they can list SCO Unix as well as Linux in their resumes.
For my students, I have created a distribution of Linux which I call Floppy-Based Linux. It runs completely from floppy and never accesses the hard disk, yet it supports all the standard Unix commands and man pages. It can also use TELNET and FTP to access the Linux server running in the classroom and can print to network printers in the classroom and the computer lab. Of course, this is slower than running from hard disk, but it provides a number of advantages in my environment. My students are often computer neophytes. I need a bullet-proof environment where they can freely make mistakes. Thus, I ruled out any distributions that would require them to load software onto the hard disk, even the UMSDOS file system. I want my students to be able to work on Unix at home, at work or in the school computer lab since I believe that accessing Unix hands-on is essential to learning Unix. At the same time, I could not take a chance that a mistake on their part might alter or corrupt their home computer, work computer or lab computer.
My students can run Floppy-Based Linux on any PC with 8MB of RAM and a 3.5-inch floppy drive. The floppy diskettes are write-protected when in use, so they cannot be corrupted. The Linux kernel has been rebuilt, so that it has no drivers for IDE or SCSI hard disks to ensure that a student cannot alter the hard disk. At first, I started with the Slackware 3.0 boot diskettes and RAM disk, but I found that these are not in ELF format so I could not add some of the commands I wanted. Following the boot disk HOWTO, I created my own boot diskette and 3MB RAM disk. After loading the RAM disk, an rc script prompts the student to insert a “Supplement” diskette, which loads more files into the root file system in memory. Students then mount a “Utils” diskette which gives them access to many more Unix commands and man pages.
Students can use Floppy-Based Linux for homework assignments outside of the classroom. Inside the classroom, there are 18 Windows PCs, one Linux Server and one free SCO Unix system. Students bring up Floppy-Based Linux on the Windows PCs and then download new homework assignments from the Linux server using FTP. They also upload their completed homework to the Linux server. They can print to a network printer in the classroom. I have also used variants of Floppy-Based Linux to debug network problems and to make image backups of a Windows hard-disk partition using dd (device-to-device copy) “piped” to rsh (remote shell) to save the data on another system in the network or its tape drive. (Hard disk access was enabled in order to do this.)