Using Linux with Network Computers
For over three years, the computer industry has been touting the benefits of network computers, including higher reliability, lower cost of ownership and simpler administration. Yet despite this, few people have seen a network computer. Even fewer have configured, installed and supported them.
The premise behind network computers is increasing both reliability and manageability. The former is done by removing components with high failure rates, such as the hard drive and fans; the latter is improved by centralizing applications on servers. A standard proposed to the Open Group embodies these principles in the “NC1 Reference Profile”. The hardware specifications require only a keyboard, pointing device, network adapter, audio, 8MB RAM and 640x480 resolution. The PC industry proposed the “NetPC” standard which further requires an X86 style processor, hard drive and plug-and-play compatibility.
The NC1 standard is followed by Neoware's line of network computers. In addition, Neoware added a Java virtual machine, support for PCMCIA cards, higher video resolutions and more memory. Also supported is a wide variety of network protocols, making integration into existing networks fairly easy. For this, Neoware is consistently rated among the top of the NC manufacturers and is also the reason we chose to work with them.
The company I work for is Unique Systems, Inc., based in Toledo, Ohio. We have a large customer base throughout the Midwest. Our primary focus is custom programming and support for an accounting and job cost system. In addition, we are often asked to perform system administration for our clients. As a result, simplicity and remote administration are essential. We do not have the time or the staff for long-term on-site maintenance. NCs are a perfect fit.
Before I get into configuring and using an NC with Linux, let me describe the basic functionality of a Neoware NC, in particular NeoStation 200. When the NC is first turned on, it establishes a TCP/IP network connection and obtains its IP address via BOOTP, DHCP or from a value stored in flash memory. Next, it downloads its operating system (Neoware uses netOS) from a boot server and initializes it. The user is then presented with a graphical login screen similar to XDM. It has the ability to authenticate against any host on the network. After logging in, a window manager is started. The default is netoswm—similar to FVWM95. Open Look and Motif window managers are also available. All the window managers are capable of running remote X applications or Windows applications using ICA. Many applications can be downloaded and executed out of RAM as needed; others can be run remotely using either X or ICA (Independant Computing Architecture) thin-client desktops.
Many of our clients need to do only basic office tasks: access to the accounting system (which we can provide via a terminal session or a Java applet front end), e-mail and an office suite. An NC is a good match for these applications. Terminal emulation is provided by the TeemNC application. E-mail can be done with Navio's Netscape Navigator 3.0 for netOS. For an office suite, we install Applixware on a Linux server and execute it remotely from the NC (this is much faster than you might think).
What else do you need beside a Linux server to make it work? The short answer is—nothing. In practice, however, a few things need to be done on other platforms. In particular, I have had difficulty getting the daemon in.timed to work properly to provide time services, and several commercial applications have not yet been ported to Linux.
Let's start from the beginning with how the netOS gets loaded onto the NC and what part Linux plays in the process. When a NeoStation is turned on, it gives the option of entering a configuration screen; all the network configuration can be done from here. The IP addresses of the DNS server, gateway and boot host (all Linux machines) can be supplied, as well as the address of the NC itself. The location (directory) on the boot host where the netOS operating system resides also needs to be supplied. The access method can be either NFS, FTP or TFTP, with NFS being the preferred method. Once the NC is configured and restarted, it searches the network for the specified boot host, attaches to it using the chosen protocol and downloads its OS.
Neoware supplies netOS on a CD with an installation shell script. This script ensures the license key is valid, prompts for the installation directory and copies files off the CD into that directory.
Configuration of the boot host is a little more complicated. NFS needs to be configured if it is to be used as the access method. Usually this involves editing the /etc/exports file and adding an entry for the netOS installation directory. You might also want to make sure NFS starts up on boot. We usually configure the boot host to run domain name services and sendmail for the network, just because Linux is so good at it.
Now, assuming all this is in place and running, the NC should boot up and present the user with a login screen. Any host can be used to authenticate against, but it is easiest to supply it with a user account on the Linux boot host. After logging in, the NC looks for a window manager configuration to run. It defaults to a system-wide configuration on the boot host if it can't find a custom one in the user's home directory.
Any applets/applications installed with the netOS are part of the default window manager configuration. These include Netscape Navigator 3.0 and miscellaneous utilities such as a calculator. You can run them by navigating through a menu tree similar to the infamous “Start” button, or through a floating button bar on the desktop. Unfortunately, adding anything requires knowledge of how to edit a window manager configuration file. The saving grace is that the format is similar to many “standard” UNIX configuration files. One of the first things I do is edit this file to remove the button for the “Setup” utility and add buttons for Applixware and TELNET access to remote hosts.
Neoware ships an ICA client with netOS that allows you to run Windows applications alongside X, Java and character applications. If you need to run Windows applications, you can set up an NT Terminal Server with Citrix's MetaFrame for Terminals (which is significantly less expensive than other MetaFrame products). The client can be started through the root window menus. In the screenshots (see Figures 2, 3 and 4), you can see all of these running alongside each other. Interestingly, when that screenshot was taken, only half of the system memory was being used—16MB were free.
Working with netOS is not very difficult. The console window on an NC offers several UNIX-like commands that can be used to show the current hardware configuration, connect to remote machines (such as by TELNET and FTP) and browse the file system. The file system is similar to an NFS file system: most of the files reside on a remote computer, but the local ROM can also be examined. Very few configuration files on the server ever need to be edited and almost all of them lie in the same directory. Devices can be accessed, similar to UNIX. You can access the parallel port through /dev/pp0, for example.
Is it that easy? Yes, provided you have a good understanding of configuring NFS and adding hosts to the network. Almost all the problems encountered when setting up a boot host are associated with NFS permission problems on the part of the NC. A boot log is generated on the NC that can be viewed to troubleshoot problems. Setting up the first NC on the network is the hardest part, because of all the configuration that has to be done on the server. After that, getting other NCs up and running applications on the network happens about as fast as you can unbox them. In fact, it is not an exaggeration to say it takes longer to open up the boxes than it does to configure the NC.
With the amount of X and character-based applications available, why haven't NCs caught on? The most obvious reason is the drop in price of PCs. Before 1995, it was next to impossible to find a PC for less than $1000 US; now, nearly every computer manufacturer offers a few to choose from. Another reason is the lack of Java applications that were promised. NCs were supposed to be the ideal platform to run all the Java applications that have yet to appear. For better or for worse, the industry leaders in the NC market are not the industry leaders in the PC market.
All that aside, network computers are still the ideal platform for many people who use computers. Anyone using a terminal to access a character-based application on a server can benefit enormously by the ability to have multiple windows open and viewable simultaneously on an NC. The learning curve on an NC can be tailored to fit individual users by changing the complexity of the desktop. For curious users or those unfamiliar with computers, it is next to impossible for them to accidentally render an NC unusable. Network computers and Linux servers make a powerful combination.