Cover V01, I04


An Administrator's Guide to the UNIX Software Jungle

Bruce Hunter

When UNIX first appeared commercially, it seemed like a dream come true. Exquisitely sophisticated in design, this innovative operating system came complete with heavily technical software created by programmers specifically for the use of other programmers. It was a no-frills affair, and all UNIX users either had to be technical or had to do a lot of studying to become technical enough to use the system.

Deliberately Spartan in design, UNIX was not perceived as user-unfriendly, but rather as uncluttered with unnecessary features. If UNIX users felt that anything was "missing," they could create almost anything they needed with the programming tools included in the standard distribution. In fact, part of the fun of being a UNIX user was creating your own custom environment.

However, in order to become palatable to commercial environments, and in order to keep pace with ongoing computer technology, UNIX has been forced to change its face.

As all administrator know, one of the biggest changes in UNIX has been its software. Traditionally UNIX system administrators had to know UNIX inside out in order to maintain the system, requiring an extensive knowledge of all the built-in UNIX software. But new UNIX versions have been coming up short a utility or two. In fact, some of the software traditionally considered standard on UNIX has recently been cut by a few OEMs, even the sacrosanct C compiler. Such important software omissions leave a gaping hole in the system that administrators must fill with outside software.

Despite curious omissions in various OEM's standard distribution, today there is more UNIX software than ever. In fact, administrators are literally inundated with a bewildering array of outside software programs, with more coming out every month. And although traditionally we were expected to not only install but also support all add-on UNIX software, today that's impossible because of the sheer number and variety of programs.

There are so many UNIX software packages nowadays, someone could actually work full time just finding and evaluating them all. And herein lies the administrator's dilemma. Which software should be purchased? Which packages are redundant? Which ones are free? Where can you find all this software? Once the software is purchased, where on the systems do you put it? And with all the different machines on sites today, which media do you choose? How about floating licenses? Administrators must contend with a lot more software considerations than they used to.

How can administrators cope with all this software? A first step is to classify the offerings.

The Standard Distribution

The base operating system is considered part of the "standard distribution," that is, everything shipped with your OEM version of UNIX. In the olden days, most UNIX versions were relatively Spartan, and most of them had about the same level of completeness with the same software; the only major UNIX differences were source versions and non-source versions.

We all became used to receiving standard UNIX software in every UNIX version. For example, a C compiler and its support software were always included, and you could count on finding esoteric software like lex and yacc. Even fortune and whimsical games like adventure were standard fare in the earliest commercial UNIX versions.

This convenient state of affairs changed when suppliers of UNIX, including AT&T, started unbundling UNIX. Today the "standard distribution" varies in size, depending on the version of UNIX you purchase. In fact, some UNIX versions have grown to enormous proportions. SCO ODT contains a desk-top manager, a data base manager (prior to release 2.0), total networking software, and, if you buy it as part of the package, a full software development system. SCO even lets you have UNIX-to-Banyan network capability if you so desire.

Alas, one casualty in the name of all this so-called progress is the once common C compiler, now missing from some UNIX versions. Anyone who remembers C and UNIX as intertwined entities mourns the missing C compilers and their accompanying tools. Extricating C from UNIX is a seriously misplaced priority, and I suspect that the motive is to recoup some of the monumental costs involved in developing the kinds of complex C compilers our new computer environments demand. However, on the plus side, networking software is a must on UNIX these days, and it has become standard.

User-Level Software

Your users will use some of the base-level system software that comes with the standard distribution. For example, some of the more skilled and adventurous learn vi, become reasonably adept with filters like sed, awk, and sort, and a few may even be brave enough to try tr and od. But although it is always gratifying to find users who are as intrigued with UNIX as we administrators are, let's face it, most users are interested in their own software applications, not UNIX.

Thus, in the user-level software category, I include all the esoteric applications stuff that some of your users use, and some don't, including you. Those applications I mean are the ones customized and/or developed for your user's profession and/or specifically for your site. For example, engineering groups purchase specialized CAD, CAM, or CAE software. But whatever the software, it is not only used exclusively by some of your users, but they research what they need, they usually purchase it, and it is their world. All you do is install it and make a home for it.

Second-Level Software

Second-level software is everything that falls between the standard distribution and user-level software. Large and eclectic, this group of miscellaneous software falls into two categories:

1) software that should still come with UNIX, but doesn't (so you have to replace it); and

2) general-purpose, add-on software that is non-esoteric, used by every single user in the group, and is thus supported by administrators.

What Should Remain Standard

Some new versions of UNIX come without a C compiler. C is essential software at technical sites, so if your version of UNIX is missing one, you have no choice but to run out and buy one.

C compilers aren't the only missing UNIX software. Your site may well house piles of text created with ancient text-processing software (that always used to come with UNIX), such as nroff, troff, spell, and look. To keep each new version of UNIX backwardly compatible, OEMs should also include this software, but in some versions these older UNIX text utilities are being replaced with single, full-text systems like FrameMaker, Island Write, Island Paint, and Island Draw. All this new software is great, but we still need the old tools. How are we supposed to print our old, still viable, nroff format text files? (And how are we supposed to format and print manual pages, for Pete's sake?)

Add-on software like Xroff can replace nroff, but OEMs should do more research into the history of UNIX before they casually toss out classical UNIX utilities; all that software was put there for a reason!

What May Become Standard Some Day

Old UNIX was ASCII-based, and although some sites are still ASCII-based, many sites now use full graphics as well. Dot matrix printers have given way to laser printers, and quality scanners. But traditional UNIX doesn't have the tools to deal with all these developments, so new UNIX systems ship with at least one window manager on top of X Windows. Some OEMs have extended UNIX with graphics "editors" like FrameMaker and graphics software like Island Paint or Island Draw. Some consider this fancy graphics software necessary, but it is not yet standard.

There have always been a few missing pieces in UNIX, and some are technical tools that we really need on today's computer environments. For example, whereas UNIX has incredible built-in data manipulation tools like sed, awk, cut, paste, and sort, it has always come up short by not having a true data-base tool to finish the chain. OEMs would contribute greatly to UNIX if they added simple, straightforward data-base software like /rdb so that rows and columns of data could be quickly manipulated. /rdb is a simple solution because it requires little user training, and it is ideal for UNIX -- it is totally compatible with other UNIX commands because it uses only flat UNIX files. If sites require more complex data-base software, we can purchase it, but minimal data-base software like /rdb should become standard on UNIX.

UNIX's math software doesn't have awesome capabilities, and is not well known among users. A pure math-oriented language like Fortran 77 (or better) is a good start, but for the ultimate in mathematical manipulation consider a math package such as Mathcad or Mathematica. If you need only plotting, consider xplot from Dux. My users have been pleased with this specialty package, which does nothing but plot collections of data points.

Acquiring UNIX Software

A lot of UNIX software is free. You can get neat stuff such as the PERL version of /rdb and PERL itself by anonymous ftp. The public domain versions are not as complete or as well documented as the commercial versions, but the price is right! The University of California at Berkeley even distributes the source for a free version of UNIX for the X86 processor family.

When looking for free UNIX software, try the net. You can check news drops for the addresses of universities and bulletin boards. You can also use Archie, an Internet tool that finds software.

The Free Software Foundation, created by Richard Stallman, and the corresponding GNU project (Gnu's Not UNIX) also maintains and distributes free UNIX software. The GNU project has produced some first-rate software includeing nawk (the most advanced version of awk yet), and the GNU C compiler.

UNIX Software for Purchase

Obviously, all UNIX software is not free, and the good thing about software you pay for is that it is supported. Also, purchasing software gives you clout with vendors. If you are paying thousands of dollars in licenses, then you have the right to expect the vendors to listen to your suggestions and to answer your questions.

The Software Selection Process

As UNIX administrators, often we are expected to do more than simply install and support second-level software. For this class of user needs, administrators also may be expected to find the right software. Here's the basic selection process:

  • Look for software and vendors
  • Gather sales information
  • Ask for sample software
  • Run a 30-day trial
  • Select a product
  • Get purchasing approval

    The best sources of information are trade publications, so make sure you get lots! Also, request catalogs from computer vendors like IBM, SCO, and Sun.

    Unlike packages for DOS and Apple, you won't find UNIX software at handy little shops like Egghead Software. You can, however, turn to several mail-order shops that specialize in UNIX software. Two West Coast examples are Highland Digital and the Qualix Group. Some, like Highland, are value-added. In other words, they will sell you a product like FrameMaker and then provide first-level support and licensing. Others, like Qualix, will search for software for you, and they have tools that will help you search.

    Once a vendor has been located, getting sales information is easy: contact the vendor and ask. If you want a product in development, bear in mind that no "slick" information will be available yet. The more vendors you contact simultaneously, the better, because you can make comparisons. Also, getting active user involvement in the selection process is critical. If they don't like the software, you'll just waste money buying the thing.

    As soon as you find some promising packages, give the material to a group of trusted users and rely on their qualified opinions. If it looks good to them, ask for a copy of the software for a 30- to 90-day trial.

    Once several products have been tested, you will be ready to make a purchasing decision, and to start the purely bureaucratic process of getting purchase approval.

    Where Do You Put It?

    When you have finally located that precious software package, where do you put it? A lot of software manuals suggest /usr, but /usr is already overloaded on today's UNIX systems. You can install the package off to one side of /usr by mounting your own /usr/local or /usr/oem in /usr. Unfortunately, even this will become complicated if your server supports half a dozen architectures and versions. If you have had to supply a large-scale system with X Windows, you have already had to suffer with the reality of multi-architecture serving.

    There are several solutions, but they all involve creating separate mountable partitions on the server with names that are nearly the same, such as /usr/local.sun4, /usr/local.mips, /usr/local.86, /usr/local.decvax, /usr/local.6k and so on. You must mount these partitions via /etc/fstab or /etc/filesystems to /usr/local so that when you do a df you find /usr/local.aix mounted to /usr/local. Versions are handled the same way, the base names just get a little longer.


    While asking for new software don't forget to consider the media problem. Most freeware comes as compressed source. Especially when polling software from the net, be careful to get everything you need for a successful install, including the proper header files in /usr/include.

    Purchased software is complete, almost always compiled, and is never compressed. You need only select an appropriate medium; but even that can be a problem. Nine-track tape used to be standard, but is now a vanishing breed. Larger systems have QIC tape drives, but the drives and formats vary, so one manufacturer's drive may not read another's tape. Four- and eight-millimeter tape are becoming prevalent on servers, but are not yet being used as a distribution media. If you have to, you can read software on one server's tape drive and install it on another machine.

    As for PCs, 5-1/4-inch floppies are common on older systems, and 3-1/2-inch are common on the newer ones. Most vendors are standardizing on these PC formats:

  • 96 tracks per inch, double-sided, 15 sectors for 5-1/4-inch
  • 132 tracks per inch, double-sided, 18 sectors for 3-1/2-inch

    Summing Up

    As an administrator, your view of the UNIX software world will differ slightly from the views of others on your site. However, an administrator's perpective is unique and important, because over years of working with UNIX, we become intimately acquainted with the operating system. We know it from the inside out, and that perspective is valuable.

    About the Author

    Bruce H. Hunter is the co-author, with Karen Hunter, of UNIX Systems Advanced Administration and Management Handbook (Macmillan: 1991).