Dr Jon Knight
Library Systems Developer
From the Trenches: Network Services on a Shoestring
If you work in a library systems unit, it can sometimes be a bit depressing reading the computer press. At a time when budgets are often fixed or falling and the expectations of patrons and other library staff are constantly rising, the last thing that the system team need is for the latest and greatest operating systems and applications to arrive demanding the latest hardware if they are to be usable. However, if the library is to provide the high quality online information resources that patrons are now expecting to find, these latest operating systems will have to be installed and the latest hardware purchased. Or will they...?
Sometimes there is an alternative: Linux. Linux is a freely available UNIX like operating system originally written by one man, Linus Torvald, and now developed and maintained by a cast of thousands. Linux runs on an PC with a 386SX processor or better and 4MB or more of RAM. Its even possible to fit a usable system, including a number of useful utility programs, into less than 15MB on a hard disc.
The reason Linux is finding increasing usage in libraries world wide is that it allows useful services to be constructed and deployed on very cheap hardware. The IBM PC clone is now a commodity item and the various pieces required to construct a fully working system can easily be acquired. Some libraries may even be able to construct suitable hardware for running back room servers using Linux from parts salvaged from old user workstations and donated hardware. After all Linux doesn't need a good monitor or keyboard to be permanently connected if the machine is merely acting as a server. Day-to-day administration of the machine can be performed over the network as well.
This article will attempt to describe some of the uses to which Linux can be put in a library. It is not exhaustive but merely a taster for the range of services that Linux can be pressed into service supporting. It is most definitely not a "How to install Linux on your PC". There are plenty of those available already, both online and in print.
Currently one of the most desirable services for a library to provide is a World Wide Web (WWW) front end to its services. The WWW can provide a user friendly, platform independent front end to the wide range of services that many libraries run. For example, some libraries are deploying Web front ends to their OPACs. Others have a variety of online databases that are available through Web gateways.
Recently workstation and PC vendors have realised that there is a lucrative market in providing web servers to organisations. These products are usually very highly priced and are capable of supporting very high loads. Whilst these may be appropriate for a hosting a complete campus wide information service, smaller libraries and libraries that want to have their own internal web presence independent of the main campus server will probably find them to be overkill. They'll probably also find that they are a bit on the pricey side.
Luckily Linux can run a number of the freely available UNIX-based web servers. These include the CERN httpd, the NCSA httpd and Apache. All of these servers have plentiful documentation and large installed base of users, some using Linux. Even on a lowly 386, a Linux box dedicated to being a web server can handle a fairly respectable load if it just serving out static HyperText Markup Language (HTML) pages. A 486 or Pentium has more than enough horsepower to also support dynamic document generation and gatewaying using Common Gateway Interface (CGI) programs.
The great thing about using a PC as your web server is that you can start small and expand the system as it becomes necessary and finances allow. Because of the commodity nature of PC hardware, it is often possible to switch components from one machine into another, allowing you to maximise your investment in hardware. This would allow a library to start using, say, an old 386DX33 and a reasonably sized hard disc as its web server and then if it was found to be very popular and the funding was available, the machine could be changed to a 486 or Pentium. The hard disc and some of the other components of the 386 machine could be used in the new machine, or the 386 could be used for other services or as a backup server.
If a library has a small to medium sized collection of information that it wishes to supply to its patrons via a searchable interface, Linux is capable of supporting a number of the freely available UNIX database and indexing package. These include CNIDR's Isite that give the end user a full text database service and Msql that supports small relational databases with a standard SQL search interface. All of these can have a CGI based web front end placed on them that can also be hosted on the Linux machine as described above.
Because a database requires more processing and more intensive disc accesses than a simple web server providing static HTML, don't expect an old 386 to suddenly replace your library OPAC. However for "light" database work, Linux makes an ideal platform, especially seeing as it may be financially possible to have both a production machine and a development machine for a fraction of the cost of a workstation based database server. Having said that, a question that is often raised on some library mailing lists is whether there is a Linux based OPAC for small libraries. The author is not currently aware of one but if the demand is out there, its almost certain that some enterprising individual or group will have a go at producing something.
CD-ROMs, as many people know, are a perennial nuisance. Although they provide access to large amounts of information, they are expensive and often have abysmal user interfaces. Many are also only available with DOS and Microsoft Windows search engines. Even if these are networked they are not much use to Macintosh or UNIX workstation users. With something as expensive as CD-ROMs you really want to get every ounce of usage out of them if possible. Once again, Linux provides a possible solution in that it can host a CD-ROM gateway allowing access to DOS based CD-ROM software running on a Novell network to other Macs, UNIX boxes and dumb terminals running other network protocols.
The main tool used to provide this functionality is a Linux application program called DOSEMU. DOSEMU allows MS-DOS sessions to be run as a Linux process and, through the Linux kernel, gives full support for IPX based Novell networking to the DOS applications that may be run under DOSEMU. DOSEMU is also capable of translating PC character based graphics and screen layouts into ASCII sequences that can be displayed on a VT100 or compatible terminal. This latter feature allows the users on non-PC platforms to use a VT100 terminal emulation package to display the output of DOS programs running under DOSEMU on the Linux machine.
However to make a usable CD-ROM gateway, it can often be useful to hide a number of technical details from the user and provide a scripted login to the CD-ROM. Luckily, Linux can run an incredibly useful tool called Expect. Expect is a tool that allows scripted access to remote services and other Linux applications. It is based on the popular Tool Command Language (TCL) and can be used in a number of scenarios besides the CD-ROM gateway (for example it could be used to provide scripted logins to remote information services such as Dialog). If access to the CD-ROM gateway is available via telnet, the whole service could again be fronted by a set of HTML pages on a web server.
Because Linux is a multiuser, multitasking operating system, the machine it is running on can be used by more than one person at once. It makes an ideal platform for a cheap and cheerful terminal server to allow more "bums on seats" and also to possibly support remote login to library services via either the Internet or dial up lines. Linux supports a variety of serial boards, some specifically designed to allow a fairly large number of dumb terminals to be connected to the machine. A Linux terminal server could be used to manage a collection of old dumb terminals or low end PCs for patron email or OPAC access or even providing access to the Web via a text only web browser such as Lynx. Allowing dialup access to some library services might also be attractive, especially to public libraries. These terminals could be run so as to allow anonymous users to just walk up and use them, or could make use of the authentication mechanisms available under Linux to ensure that only legitimate users can access the library services through them.
In a more sophisticated environment, a Linux box can also be used to make a very cheap X terminal. The X window system is a networked graphical user interface that is very popular in the workstation market and is heavily used by engineers, scientists and programmers. It allows programs running on one machine to display their output on another. Workstations that support X have price tags starting at around £3000 and even dedicated X terminals (just a display controller, screen, keyboard, mouse and a network card) cost over £1000. A 486 PC clone that is capable of running X under Linux will cost less than £1000 and provide the added benefit over dedicated X terminals that it has local processing capability allowing some of the standard X applications to be executed locally. A library that operates in an organisation where X is widely used by their patrons might find that providing a couple of Linux based X workstations is very popular with their users.
The major downside with X under Linux (and any other PC based UNIX operating system) is that the X server usually has to be configured in some detail to make best use of the video card and monitor on a particular machine. Sometimes you'll be lucky and find that the machine you are using is already covered in the list of preconfigured machines. If it isn't, then a default 640x480 pixel screen resolution is usually achievable fairly easily; it just getting the most out of your video card and monitor which is what X really needs that takes some tinkering. If you don't have the user guides for the monitor and video card you might find this tinkering very difficult to do.
This article has tried to give a few brief ideas as to how Linux might be employed in a library environment. It has attempted to demonstrate how Linux can provide useful back room services for a fraction of the capital costs of the alternatives. Because Linux runs on commodity PC hardware, some of which is now being practically given away by large organisations, it provides a great way to prototype and develop interesting network services very cheaply.
One thing that is probably worth stressing is that this article is not intended to give the impression that Linux is about to replace DOS, Microsoft Windows and/or the Mac. It isn't (though some Linux users claim that the world would be a better place if it did!). The examples given above are a taster of some of the things that Linux can do; some of them might be appropriate for your library, others might not. As with all systems developments it is up to the systems staff, and the librarians, to decide whether a particular solution fits their needs. There is unlikely to be a "one-size-fits-all" solution to every problem that libraries will encounter.
When comparing Linux based solutions to other alternatives, the plus points in Linux's favour are that the operating system is free or at least very cheap, it runs on a wide range of hardware, there are lots of UNIX tools available for it and there is excellent support from the user community. The down sides are that it can take a while to learn how to run a Linux box if you've never used a UNIX system before, some people find the UNIX commands rather arcane, X can be tricky to configure sometimes and you might not have a technical support line that you can ring and yell at to make you feel better when things go wrong!
Some ideas presented in this article have prototyped at the Pilkington Library at Loughborough University, but most have been implemented at a variety of other libraries worldwide. The author found out about them through the linux4lib mailing list (send a message to Majordomo@virginia.lib.mn.us with the phrase
subscribe linux4lib Your-Email-Address
in the body of the message) and by talking to other Linux users. The Linux community is very helpful and users are often willing to share the code that they used to solve their problems with anyone else in a similar situation. There are a whole range of Linux newsgroups available for those with USENET access (the comp.os.linux.* hierarchy) which is a great place to find out what others are doing and to ask for help with any problems you encountered. The answers you get back are often far more useful than the bland responses from vendors technical support lines that you have to pay real money to access. But that is typical of the Linux world; users pulling together to get more out of ordinary PCs. Why not give it a try as well?