Linux can provide technical managers with cost-effective, reliable training tools.
by Charles Kitsuki
Money is not always available to do training in a business environment. Overall, businesses are looking for cost-effective solutions. Finding training tools that are both cost effective and reliable is not easy. This is especially true in a technical environment. To teach UNIX and web-based technology, Linux can provide technical managers with solutions to this dilemma. This article describes how to set up a Linux system for training on a token-ring network.
Convincing others of the benefit of using Linux as a training tool was not a problem in my particular scenario; this may not be the case in other environments--it depends on the audience. My situation involved introducing the product to a liberal management staff. Their main concerns were maintenance and material costs; they wanted a system that would not add substantial cost or bring additional work to other groups. Linux fulfills both criteria.
Completed projects provided the equipment. The candidate for the Linux system was a Compaq Pentium 166MHz machine with 64MB of RAM. It has a 1.2GB drive and a 4x ATAPI Sony CD-ROM. As a training system, multiple users needed access to this machine, so a LAN connection was required.
The network setup at my office is token ring. Network cables and a spare IBM token ring PCI card provided the connections. The system was placed in the computer center located on the first floor of the building. It resides behind some AIX mini-computers that cost over a quarter of a million dollars. The entire cost to the company for the Linux system's hardware was nil, since it came from another project. If the equipment had not been available, the total estimated hardware costs would have been, at most, $1500.
After the hardware installation, the system was ready for software installation. The Slackware version of Linux 2.0, from a CD-ROM, became the operating system of choice, because it provides many of the UNIX features the staff already uses in its core systems. The first step of software installation involved creating boot and root diskettes. Slackware provides several different installation options, depending on the hardware. The bare.i and color.gz files on the Slackware installation CD-ROM are the optimal choice for our setup. Once these files were copied to a hard drive on another computer, the rawrite command included on the CD-ROM was used to create the boot and root diskettes.
The boot diskette initiated the target system, which began loading a subset of the Linux operating system into memory. Next, the root diskette was loaded. This was enough to start the installation of the system.
The next step involved creating a native Linux partition on the hard drive, then loading the operating system. Slackware provides an easy way to do this with its setup process. This process is menu driven, and it allows you to install a mixture of utilities. The setup in this environment included the basic Linux system and X utilities.
After installing the software, configuring the system's startup was next. The startup routine was set to load the kernel from the hard drive. At that time, no network configuration took place, because Slackware requires you to recompile the kernel if you have a token-ring card.
At this point, the initial system was tested by running some of the non-network commands. After checking the system, the kernel was rebuilt for a token-ring network. Rebuilding the kernel so it would recognize an IBM token-ring card with a Tropic chip set was rather painless. This does require superuser access rights, however.
First, from the /usr/src/Linux directory, the make config command was run, starting a shell script that prompts the end user with questions to configure the operating system. The prompts usually default to the system's last kernel configuration. Below is the kernel modification for the token-ring card:
<<Token Ring driver support (CONFIG_TR)[N/y/?]-Y IBM Tropic chip set based adapter support (CONFIG_IBMTR)[N/y/m/?]-Y>>No other commands need to be changed. Following the kernel configuration, the next four make commands must run for the system to recognize the changes:
make dep: make clean; make zImage; liloBriefly, these commands will create the necessary dependencies, remove object files, create the kernel image and allow the Linux loader to recognize the kernel. Creating the kernel image takes the most time. Depending on the machine, it could take as long as a couple of hours.
After the kernel was rebuilt, the file /etc/rc.d/rc.inet1 needed to be changed. This file loads all of the network addresses for the system. The Ethernet network setup was modified to a token ring by changing eth0 in the ifconfig command to tr0:
/sbin/ifconfig eth0 ${IPADDR} broadcast\ ${BROADCAST} netmask ${NETMASK}The rc.inet file was set with the appropriate IP addresses. The host file, /etc/hosts, was modified to provide an alias to some common systems. The entire system was tested using the ping command and by running a few TELNET sessions.
Although the system includes many of the X utilities, it was not set up to run the X Window System. These utilities are accessible from Windows NT workstations with X emulators, such as PCXware. Most users at the site run these utilities, since they are accessing this system using TELNET and browser sessions from their workstations running Windows NT 4.0.
The next step involved configuring an Apache web server for our Linux machine. We obtained the server from CD-ROM in a compressed format. The uncompress command was used to unpack the files in a directory called /usr/local/httpd. In our setup, end users needed to create and view their home pages. For example, I needed to be able to access my home page, called index.html, from my directory at /home/kitsukic/www/. This required a modification to the srm.conf file, which locates home pages and sets special parameters that affect servicing of end users. This file is located in the /var/lib/httpd/conf directory. In this scenario, change the value of UserDir from local_dir to www. Hence, to get to my home page, my call would be http://145.225.56.23:82/~kitsukic/. The server now allows a browser to access my home page in /home/kitsukic/www/.
In addition, the port number in the main server configuration file, /var/lib/httpd/conf/httpd.conf, needs to be changed from 80 to 82. The reason it needs to be changed is that another process uses port 80. Once the changes to the configuration files were done, the following command was activated in the /etc/rc.d/rc_httpd file:
/usr/sbin/httpd -fThis starts the Apache httpd server whenever the system is booted. Overall, the entire installation of the server was straightforward and did not require much effort. A mock user's web pages served to test the web server.
The final step of the installation involved creating processes that would make the system maintenance-free. The cron command provides the Linux user with this capability. The cron command runs backup and file-cleanup processes at specific times of the day. For the backup process, it runs a script that compresses and transfers essential files to another machine. Another process run by the cron command purges old log and trash files periodically. The two processes are somewhat maintenance-free. In order to create these scheduled jobs, the administrator must run the crontab -e routine from the root login, which provides a vi editor environment. Using this editor, the administrator can create a list of jobs for the cron command to run at specific times. For example, he or she could create an entry to tell users to log off the system every day at 6:00 PM in order to do backups at this time.
For training purposes, the system was loaded with C++ and Perl. Programmers can safely run C++ and Perl code without affecting the larger systems. The Linux system also hosts a group home page that links to the staff's web sites. There are also links to tutorials on how to create web pages. The main page also links to an experimental SQL database. It demonstrates to the user how to use HTML commands to connect and extract data from an SQL database.
Currently, the Linux system is open to anyone within the department who wishes to experiment with creating web-based products using C++, Perl and a UNIX operating system. Programmers have been creating web pages using HTML and Java. Several non-programmer analysts have used this system to start learning how to program in C++ and HTML. As of this date, there have been no system crashes. The system has been reliable and maintenance-free from the start.
As businesses look toward cutting costs, Information Systems managers in UNIX environments need to find creative solutions to train their staff. One alternative is using Linux. Although the stigma of being a hacker's non-supported operating system remains, Linux is surprisingly easy to install and maintain. It offers a rather inexpensive system, with many of the UNIX features common in bigger ones. This makes it attractive to managers trying to cut training costs while at the same time trying to keep their staff technically trained.
Charles Kitsuki is an Information Systems Development Manager for a telecommunication carrier. He leads a group of Programmer Analysts, Project Leaders, Business Analysts, Quality Assurance Trainer/Analysts and Supervisors through the murky waters of maintaining and enhancing several software systems. When Charles is not busy trying to overcome the myriad of paperwork, he is writing programs and hacking on his operating systems. He can be reached via e-mail at kitsukic@pixi.com.