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.
Media
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).
|