Using Linux in a Training Environment
The proliferation of the Linux operating system has done much to stimulate the interests and activities of hobbyists around the globe. Many developers and users are taking advantage of this freely available, 32-bit wonder, as a viable home alternative to a commercial Unix platform. With a multitude of Linux enthusiasts active in key positions the industry, it was only a matter of time before Linux also became a presented solution in the workplace. Even though Linux sports some of the more advanced and innovative mechanisms available, only recently have many organizations begun to accept Linux as a solution for production projects.
My employer, Decision Consultants, Incorporated (DCI), is one of the nation's largest software services consulting firms. I am a technical instructor in our Training Division, which is responsible for creating, packaging and implementing technical training solutions to both our consultant base and external clients. A large portion of this training revolves around Unix-based client/server development. We needed a versatile, flexible training room, capable of facilitating our entire repertoire of Unix-based courses, from Unix Essentials to X/Motif Development. This formula, once successfully implemented, would need to be “cloned” for our other branch offices around the country. In this article, we will examine certain portions of that solution, as well as present an action plan for implementing your own Linux solutions.
The first step in any major endeavor is to formulate a plan of action which will ultimately lead you to your goal. Our plan of action first involved the creation of a list of all the major lab-based, Unix-related courses which would need to be delivered in the training facility. They included:
Advanced Unix/Shell Programming
X Windows and Motif Development
Unix Internals/Systems Programming
Networking with TCP/IP
After the list was created, it was analyzed further to create a list of the tools and host-level resources which would be needed. Of course, all of the classes would require an operating system, a properly configured TCP/IP setup to provide student connectivity and a working Unix shell. A stable C compiler would fit in nicely with the C Programming course, and a feature-packed X server would be needed for the X Windows development course. Another concern was Motif which is available in many forms these days.
Once this list was created, a platform had to be chosen. Given pricing structures of major vendors, such as Sun, HP, DEC, etc., Linux was the clear winner. We could spend several thousand dollars for the latest and greatest version of one of the popular vendor offerings or a mere twenty bucks for a recent Linux distribution on CD-ROM. The choice was not a difficult one to make.
However, the choice of Linux was not based on price alone. As you are probably aware, all of our requirements (with the exception of Motif) have been readily available on most Linux distribution CD-ROMs for quite some time. A number of other nice tools, such as TCP/IP, NFS and a full suite of developer tools, would have cost extra with most commercial vendors. Several inexpensive, Linux-specific versions of Motif are available, such as SWiM, Metro Motif, Mootif and Moteeth.
The total cost for the host-side software load totaled somewhere in the neighborhood of 120 dollars (20 for the Linux CD and around 100 dollars for the X11R6 version of SWiM for Linux). That cost is roughly equivalent to the sales tax you would incur when purchasing a major vendor's bundle.
A typical DCI training room consists of eight student workstations connected to a single host machine on an isolated Ethernet bus. The host machine should have the capability to handle at least eight TELNET sessions or, in the case of our more advanced courses, up to eight X Window sessions. The following is a breakdown of a typical DCI training host:
90MHz or better Pentium processor
16 to 32MB of RAM
Adaptec 1542CF SCSI controller (ISA-based card)
1GB (or better) SCSI drive
Standard issue SCSI CD-ROM unit
Streaming SCSI DAT drive
Generic NE-2000 compatible network interface card (NIC)
Number 9 Trio64 (S3 chip set) video card (2MB RAM on board)
Low-end, LaserJet-compatible printer
Our original prototype training room uses a stock 60MHz Pentium processor in its host machine, although newer training rooms are coming on-line with Pentium 90MHz processors or better. There is a huge difference in processing speed between the older Pentium 60 models and the newer Pentium 90 units, although I have had great success with both systems. If you are still hesitant about obtaining a Pentium machine, a 486DX/100 unit will provide comparable performance.
For most training classes including X Windows and Motif, 16MB is adequate. Of course, greater performance can be obtained by simply upgrading to 32MB of RAM on the host. I recommend getting the full 32MB of RAM initially, rather than purchasing it later. While our MIS department has been quite accommodating to our hardware requests, your organization may not be as generous. If you have corporate red tape to cut through, request the 32MB up front.
We currently use the Adaptec 1542CF SCSI controllers. These are ISA-based cards which have been stable under Linux for quite some time. I have experimented with the Adaptec 2940 PCI-based controller, but it was a bit too squirrelly for my tastes. Even though the 1542 units are 16-bit ISA cards, my aim was stability first and foremost. A few other cards which I can personally attest to are the Future Domain 1680 series and the older Always IN-2000 cards.
Our first training room used an older 500MB IDE drive. While it served admirably and reliably, it also reached maximum capacity in a hurry. For a full install of Linux, complete with XFree86, I allow a liberal 200MB or so. However, some other storage requirements must be taken into consideration during the planning phase. For instance:
Motif—With the newer X11R6 distributions of SWiM, roughly 30MB of storage is needed for a full install from CD.
Student lab work—Plenty of storage must be set aside for student lab work. Some courses, such as the Shell Programming course, don't require much storage for student lab work. Other courses, like our X/Motif Development course, require quite a bit. For 8 students, I recommend having around 20MB or so available per student for their course work.
Linux kernels—If you plan on experimenting with newer revisions of the Linux kernel, plan on having a lot of extra room. I recommend having 20MB or so per revision.
Temporary storage—Plan on setting aside a liberal amount of storage for temporary files (i.e., the /tmp directory). In fact, I recommend that you make this directory a separate file system altogether. I like to have 100-200MB available for a typical temporary storage area.
WWW storage—We run an internal training Web, complete with on-line prep tests for our students. I must point out that even the smallest working Web requires a good bit of storage. We currently have around 20MB or so of web information on-line (including the web server software and our image library).
Working storage—Of course, we need plenty of room to sock away on-line course materials (completed solutions to lab work, shell scripts, etc). In addition, our instructors do quite a bit of development and experimentation as well, so that must be taken into account as well. A few hundred megabytes will work nicely.
Of course, any good Linux system needs a CD-ROM unit attached. With most software packages shipping on CD-ROM these days (including Linux), it pays to have one of these drives in place. Should disaster strike, it's much easier to reload the base operating system from CD-ROM, rather than a tape backup unit. I have had great success with several models from NEC, Sony and Sanyo. Try to stay away from proprietary SCSI interfaces, such as come with some Compaq CD-ROM drives. That old single-spin, wonder unit in the attic may make a perfect candidate for this job, since it won't be used all the time.
These wonderful devices make perfect solutions for backups. These drives are so fast and quiet that I have actually performed system backups while a class was in session. Any major brand should work nicely, although I can personally attest to the 2GB and 4GB models from Colorado. Even if you have to perform backups on an older 120/250MB Colorado Jumbo, the issue of system and working backups should be addressed swiftly and immediately.
For connectivity, a generic NE-2000 compatible card works rather nicely. I have had good experiences with 3COM 3C509 cards, as well as the Intel Etherexpress cards. If you are setting up a full network, be sure to purchase network cards which match any existing or planned wall connections. Don't run out and save a bundle on a rack of AUI-based cards, if you have twisted pair connections in the wall already.
We use and recommend the Trio64, S3-based cards from Number 9. These cards have proven to be quite reliable and versatile under X Windows. This is a tricky area, due to the fact that XFree86 only supports cards with certain chip sets. Other good choices include cards sporting a Tseng-4000-based chip set.
Our students are not in the graphic design business, nor are we. A low-end, LaserJet-compatible unit works nicely for source code printing and other small jobs. In fact, even a low-end printer can generally support postscript or PCL raw formats, so working with programs like ghostscript and TeX can be facilitated easily. I think our printers are coming on-line at around $400 per unit—not bad.
While installing, configuring and maintaining our Linux host machines can be somewhat time consuming, the same procedures, when performed on our student workstations, take considerably less time. Depending on which training branch you visit, our student workstations range from older 486/33 machines to newer Pentium 90 desktop models. For a simple TELNET connection, even older XT/AT or 286 machine is capable of running NCSA's freely available implementation of TELNET.
For X Windows and Motif development, a more robust platform is required. Most of our workstations have around 500MB of storage and 8 to 16MB of RAM. DCI is an Authorized Microsoft Technical Education Center (ATEC). As such, we also instruct a number of non-Unix related courses, such as Windows NT development. These courses require considerably more resources on the workstation side. The only common denominator is really the network cards used in the workstations, which are also of the NE-2000 variety.
As far as workstation tools go, we use the following software packages on each of our workstations:
NCSA's TELNET Package has truly been a gift from the heavens. It has performed reliably over a sustained time period and is quite configurable on the workstation side. With it, our students are able to maintain multiple TELNET sessions, as well as the occasional FTP to the host to upload their lab work.
X/Appeal from Xtreme S.A.S. (Italy) is a remarkable, surprisingly inexpensive X Server for DOS. It supports a number of different video chip sets, as well network configurations. A 30 day trial version of X/Appeal can be obtained at ftp://oak.oakland.edu/.
Microsoft Windows for Workgroups v3.11? In a Unix-based training room? Surprised? Not at all. One of the nice things about our setup, is that we use the freely available Samba package to allow Linux to provide shared directory and printer services to our DOS/Windows based workstations. The bulky Windows products used in some of our other courses (PowerBuilder, Visual Basic, Visual C++, etc.) can be installed directly onto the Linux host, freeing up valuable disk storage on the workstations. In fact, we even share the CD-ROM which is installed on the host machine. The student workstations can then access the CD-ROM at any time.
While there are a number of advantages to using Linux as a training solution, a number of drawbacks also manifest themselves over time. Do the benefits outweigh the drawbacks? I'll let you be the judge.
Free. End of story. As mentioned earlier, the price of a stable Linux distribution on CD-ROM is exponentially cheaper than obtaining a commercial solution, such as SCO or Unixware. In fact, with the extra cash you have left over, you can afford to subscribe to Infomagic's quarterly Developer's Resource 4 CD set for the rest of your life.
With PC-based hardware prices falling, you can pick up an adequate host machine for under $4,000. Compare that to the 5-digit price of a proprietary architecture, such as an IBM RISC machine or a Sun SPARC.
As mentioned earlier, most, if not all, Linux distributions ship with a multitude of packages which would cost you extra from some commercial vendors. A third party Motif derivative for Linux runs far less than the asking price from OSF. In fact, one of the reasons that I became involved with Linux was the steep-pricing structure issued by SCO. I am a former employee of a SCO VAR, reseller and software development house. I decided that I would purchase SCO for myself and run it at home on one of my spare machines. I laid out $1,500 just for the base operating system, only to discover that to add TCP/IP and the Developer Kit another $1,500 would be in order—not for me.
This is truly the most pressing battle you may need to fight. Since there is no central technical support group for Linux, internal staff are responsible for all maintenance and support of the system. If you don't have a true Linux fanatic around or someone, who plans on becoming one in a hurry, you might be better off with a commercial solution. We have two Linux mongers on our instructor staff, with another dozen or so in our local consultant base—works out rather nicely for us.
Up until now, most commercial software developers and vendors shied away from marketing Linux native tools. However, a new trend is coming into play. Thanks to some key players in the industry (Caldera, WordPerfect, etc.), more and more tools are becoming available for Linux proper. I expect this trend to continue, as more and more Linux machines appear in the workplace. In addition to the Linux native packages which are becoming available, another option exists. Under the freely available iBCS2 emulator, binaries for other iBCS-supported platforms can be utilized under Linux. In fact, we have had great success running the SCO versions of many packages under Linux, including WordPerfect/X and Oracle 7. While a further discussion of iBCS2 is an entire series of articles in itself, it is something you may wish to explore further at least as an interim solution.
In order to assist others in putting together a Linux solution, I have put together a list of tips and pointers to give you a good starting point. Some of these areas are discussed further in the wonderful white paper by Caldera, Inc., “Using Linux in a Commercial Setting.” The primary focus of your effort is probably to convince management that a freely available OS is a viable solution. This is rarely an easy task by any stretch of the imagination. If you have strings in the company, plan on pulling them.
Before presenting your case to management, be sure to have a game plan in order. Don't jump up and shout “Let's run Linux.” at the first project meeting. Corporate ties with commercial solution providers often run deep, so be careful. Put together a detailed implementation plan, complete with a cost savings analysis and time schedule. There are a number of things you can do to help yourself in this regard.
Actively research the necessary areas. Provide solid numbers for commercial solutions. Be sure that you have accommodated all aspects of the project within your proposal. Make sure that all issues of connectivity and software facilitation have been addressed. Think of it as a legal battle—leave no loopholes in your argument.
Obtain and maintain high-level contacts in the industry. Meet with other folks who have successfully implemented a Linux solution. They may be able to provide additional insight into your argument. Planning on running the latest and greatest version of “product X” under Linux? Chances are, someone else has already driven the Linux wagon down that road—investigate.
Establish a good flow of incoming information. Actively participate in the various Linux newsgroups. They are a wonderful resource for obtaining contacts and production information. Subscribe to Linux Journal. Helpful articles and vendor information are in abundance with each issue.
Hardware integration—make sure that your proposed hardware will function once its all together on-line. If you can't do it yourself beforehand, try to find someone who has. The worst thing in the world is to win the battle with management and run into hardware issues which require additional purchases to patch a problem that you didn't foresee.
Once a solid proposal has been constructed, present your case. Try to leave a solid impression of Linux with your attendees. Some key Linux points to hit on include:
Availability of tools and software solutions
Network capabilities (TCP/IP, IPX, AX.25, etc.)
Unfortunately, most folks still perceive Linux as a toy. In your presentation, be sure to point out the efforts of major industry players, such as Caldera and WordPerfect. Let them know that Linux is quite capable of providing a solid solution for your organization.
Linux is a viable solution platform. Our nationwide network of training centers is a living testament to that statement. With the proper direction, its proliferation in the workplace can continue on an upward trend. The Linux operating system reminds me of an expansion baseball team. It has a lot of fans, but nowhere near the fan base of an established and proven team. It is young and full of promise, and one day, just maybe, it will win the pennant.
Scott Burkett is a full time C/Unix technical instructor for Decision Consultants, Inc. (DCI) (http://www.dcicorp.com/), one of the country's largest software services consulting firms. He has worked with a variety of languages on multiple platforms. Scott is one of the co-authors of the of The Linux Programmer's Guide , part of the Linux Documentation Project and the author of The Linux Bootkit. An accomplished webmaster, he has set up web sites for the Southeast Region of DCI (http://www.computerppl.com/) and The Tampa Bay Linux GNU Technical Society (http://www.intnet.net/). Scott can be reached through the Internet as firstname.lastname@example.org.