[comp.unix.wizards] Need some help with UNIX debate

sefunix%sefe.decnet@nwc-143b.arpa (SEFE::SEFUNIX) (05/09/87)

	We are in the process of trying to obtain a supercomputer and have
reached a roadblock as far as operating systems/operating system interfaces
are concerned. The debate is over UNIX on a supercomputer and what are the
pros and cons. The following are viewpoints from two individuals expressing
their concerns over UNIX. Some of the comments tie to supercomputers and
some tie to UNIX in general. To set the stage, the majority of systems in
the center are DEC systems running VMS.

	To protect the innocent, I have replaced the participant's names
with identifiers (e.g., USERA, USERB, ...).

	We would appreciate any constructive input that the UNIX community
could provide. Your comments will help us not only with a supercomputer, but
its overall introduction to the center.

	Sorry, if you receive this both on INFO_UNIX and UNIX_WIZARDS.

-----------------------------------------------------------------------------
USERA'S DISCUSSION

     Last week I received a mail message from USERC about an incident on
the MIL/ARPAnet that was the result of some experimenting by a UNIX user. In
thinking about the incident, and speaking about it to others, it seems that
we have arrived at UNIX without having subjected that selection to any
rigorous evaluation. Why should we select UNIX over a hardware bidder's
default operating systems? What are the risks we incur in selecting this
operating system, when at this point, it is not available as the default
operating system on any SUPERCOMPUTER system? Given our likely environment,
(scientific computing) how well will UNIX serve us? 
     I don't have an axe to grind. As a matter of fact, since UNIX will be
the operating system on the MINISUPERCOMPUTER, and we will have over a year
of UNIX support and operations under our belt when the SUPERCOMPUTER is
installed, a superficial conclusion would be that UNIX makes sense for the
SUPER. But this follows only from the criterion of familiarity. If, on the
other hand, UNIX requires lower level support than other operating systems,
we could need more people to support two UNIX systems than one UNIX and one
proprietary out-of-the-box operating system, such as MVS, or COS. The point
is, we haven't bothered to develop factors that speak for and against UNIX
as the SUPER operating system, and contrast UNIX against proprietary operating
systems in terms of these factors.
     Before I go any further, here is a description of the MIL/ARPAnet
incident. An experienced UNIX system administrator at U.C. Berkeley,
discovered that a UNIX command might enable one to write a series of
characters to an unknown number of terminal screens on the MIL/ARPA net. So,
he tried it, apparantly deciding against an incremental experiment. And after
he had entered the command, he left his terminal and went off to do something
else. When he came back, he had written his character string to 70+ terminals
all over the net (including that of the Inspector General of the Network at
the Pentagon), so he stopped the job. His reaction, as posted on the RISKS
bulletin board was that he had found a "interesting" and "curious" problem.
Further, this guy had the documentation IN HIS LAP while he was working, but
the explanation, according to him, was so ambiguous that he didn't know WHAT
would happen. This spoke very clearly to me about the UNIX environment vis-a-
vis our own environment.
        The more examples I see of UNIX users finding new holes - or
features, if you will - in the operating system, the more I tend to discount
the opinions of those who advocate it for the large scale, operational, SUPER
environment at the center. There is no one in our code who has a deep
understanding of UNIX and of our user environment who is not an official
advocate of UNIX. How do we get to a clear idea of what we will have to do
to make UNIX fit the environment we plan to establish for the SUPER; and what
this will mean in terms of support over succeeding releases. Our one expert,
USERD, is an advocate. This is appropriate, given his charter, and under-
standable, given his background. Everyone else, whether advocate or opponent,
and that includes me, USERC, and USERD, doesn't know the first thing about
UNIX. So that the debate over UNIX is not over the internals of the operating
system itself, but other things.
     I personlly worry about UNIX from the standpoint of large scale
operations. I think I see the requirement for a much lower level of operating
system support than we have to furnish now. Compared to NOS or VMS, UNIX
syntax is cryptic and more difficult to master, the utilities and
documentation are thin to the point of transparency, and site-specific
routines have to be developed, maintained, and applied to new releases. This
translates into either more people or less support than we currently provide,
for an operating system that is more difficult for a user to recall and use
than VMS. Until DEC, IBM, CDC, or one of the other big hardware houses
masters their version of UNIX and provides it as the default operating
system, it's flat going to take more people to support than a proprietary
operating system. 
     What really gripes about this drive to UNIX is that it is, with the 
exception of USERD, led by people who do not know what our supercomputing 
environment will be, have never supported an operating system, and are so 
fixated on "trends in operating systems" (as if that meant anything at all), 
that they discount the opinions of those who ARE familiar with our environment. 
This Center has a reputation for off-the-shelf, no nonsense engineering; yet, 
here we are, rushing to buy a product that, on most systems, is a lightly-
supported option. What IS the hurry? What ARE we going to be left out of? 
What's to prevent us from buying the default operating system now and migrating 
to our vendor's version of UNIX once it has been designated as default, and we 
have talked to the HOARDS of happy users? If the vendor changes operating 
systems, he provides a migration path.
        With VMS, (or NOS and MVS, for that matter) we have an O.S. that was
formally developed as a commercial product, so there is some sense of it's
limitations and holes, concern about it's bugs and features, and a corporate
entity that is responsible for providing real support for real money. UNIX 
grew like topsy and is constantly being discovered by it's happy community. 
That's great for those who view computers as an object of study, especially
if they're looking for a thesis topic. For those of us at this center that
view a computer as a tool, whether user or system manager, it's a less than
endearing feature.
        And the response I keep hearing, that UNIX can be changed on the fly
to suit any need, is not reassuring. First, because it's not clear WHO will
make the change(s), WHEN or HOW the changes will be maintained under each new
release, or WHY we should deliberately choose an operating system that
requires us to build and propagate patches for it. Second, because the idea
of an O.S. that can be easily altered makes me feel uncomfortable; if it's
that easy, it will be that much more difficult to troubleshoot a problem in a 
user's environment. Third, because it indicates to me that support for this 
software cannot be as deep as that offered with a default Operating System like 
NOS, MVS, or VMS. When it's 2:00 A.M. on Sunday and I'm trying to get the 
system going, I would rather not have to depend on bulletin boards for 
operating system support.
	When I really internalize the fact that there are NO UNIX super-
computers outside of BETA test sites, and that accounting and archiving
software will have to be written for our system immediately, I realize that
much of SUPER UNIX will be resting on the shoulders of ONE new center's
system programmer, and that makes me stare at the ceiling in the middle of
the night. All of us in support will have to provide some operating system
support on the SUPER, whether we help with FORTRAN, JCL, third party
products, or try to keep the system up. That's just the way it will work out.
Will we be able to sew this operating system up? Will USERD help us to write,
support, and propagate our home-grown routunes to suceeding releases of the 
O.S. until we are old and grey(er)?
------------------------------------------------------------------------------ 
USERB'S DISCUSSION

      USERA raises some significant questions concerning the choice of UNIX
for a supercomputer. How suitable is UNIX for our contemplated supercomputer
operation? Is UNIX an operating system for supercomputing?  What are risks
are their associated with UNIX? The progress of vendors toward a production
implementation of UNIX was overestimated. There is not a supercomputer under
consideration that is yet running a production version of UNIX. In viewing
the possible alternatives, the following list results:
 
      (1)  UNIX operating system interface  (IEEE 1003);
      (2)  UNIX operating system
      (2)  Vendor default operating systems;

It may be advisable to simply reserve judgment on which operating system to
select until it is seen which machine is chosen and how well their UNIX is 
working at that time.  If UNIX is not obtained initially, it is always an 
option to change operating systems later as company development efforts 
proceed and base utilization of ASECS evolves.
 
OS Criteria:
 
1.  Reliability-will we have frequent crashes due to the operating system? Is
there an extensive installed base through which bugs have been identified and
eliminated?
 
2.  Vendor support-will there be quick answers to any problems that may
arise? Is documentation adequate?  Does the vendor have adequate experience
with and commitment to the operating system?
 
3.  Completeness-will extensive local code have to be written to support
routine operations?  Are all necessary functions provided?  What will be the
effect on the systems support function? What utilities are available with a
vendor's UNIX to assist system management and operation?
 
4.  Software portability-is needed software available for the machine if this
operating system is installed?  How easy will it be to port desired programs
from other center machines?
 
5.  Communications-will the supercomputer talk to the other nodes in the 
center's network if this operating system is chosen?  How readily?
 
6.  Security-is the OS rated highly enough to allow jobs of the same
classification level to run together?  Is it possible to control hackers?
Are files adequately protected?
 
7.  Efficiency-how well does the supercomputer run with the operating system?
Are benchmarks affected?  By what percent?  Do we cut into our CPU charges
due to any inefficiencies?
 
8.  Familiarity-will we have other experience with this operating system that
will help us to work more readily with this machine?  Will experience with
this machine help us with others we will be getting?  Will users experience
additional difficulty due to a multiplicity of operating systems to deal
with?
 
9.  Competition-will competition be restricted through our specification of
the operating system?
 
10. Interactive processing-does the operating system provide an adequate
interactive capability?
 
11. Trends-is the trend of the SUPER industry toward this operating system?
 
12. Cost-will software costs be higher or lower with this operating system?
 
13. Permanence-if we select this operating system now, how easy is it to
change later if our workload distribution, bad experience, or product
improvements would dictate?
 
 
     
              A Rating of UNIX vs. Default Operating Systems {Strawman}
 
1.  Reliability: OS hangups and other problems may result from a choice of
UNIX at this time since its use is in such a preliminary stage.  Plan on a
buggy operating system that we will have to help fix!  There is no question
that the installed base is in the companies' own proprietary operating
systems. It would be a good idea to keep an eye on the UNIX sites to
monitor progress here.  There are no other UNIX supercomputer sites from any
vendor at present.
 
2.  Vendor support:  Cray is committed to support of UNICOS for the long
haul. We assume they will not change their minds.  The other vendors plan to
offer UNIX, but there is no evidence that UNIX will be their primary focus.
UNIX documentation is said to be obtained to some extent through E-mail
bulletin boards because manuals are notoriously terse.
 
3.  Completeness:  UNIX is a bit sparse and the philosophy is that local
additions can be easily written in C. This requires a time commitment from
UNIX experts not now available at NWC - or a considerable committment from
our current expert, USERD. Furthermore, implementation of new versions of the
operating system could conceivably be a problem. To a great extent,
utilities for system management and operation are developed by the vendor for
his/her UNIX, so eveluation here is vendor specific; one generalizartion
is that UNIX has fewer utilities than proprietary operating systems. It would 
be good to see some of the public domain utilities ported over to, say our uVAX.
 
4.  Software portability:  At this point UNIX is not the customary
environment for supercomputer software development for any vendor. To the
extent that the code is OS independent this is not a factor.  UNIX
facilitates porting to and from other UNIX machines on base including the
MSCS.
 
5.  Communications:  Capabilities seem to be there for ethernet
communications regardless of the operating system, with the possible
exception of one Japanese company. 
 
6.  Security:  "'Secure UNIX' is a contradiction in terms."  COS has been
utilized which provides the benefit of a precedent. Other proprietary
systems provide better security than UNIX.  CTSS may be superior on this
score.  Details here should be carefully researched, because our ability to
run classified in certain ways may be restricted because of UNIX.
 
7.  Efficiency:  Since production UNIX is not available, no comparisons can
yet be made!  Should we blithely assume the superiority or parity of UNIX
here? In terms of system management and use of staff, operating a system with 
furnished utilities seems to be inheriently more efficient than writing our own 
routines or adapting public domain products.
 
8.  Familiarity:  One of the strong arguments for UNIX is that we would be
able to have a common interface to deal with at all levels of computing on
the base.  All proprietary systems would be unique to our supercomputer.
 
9.  Competition:  Will all vendors be able to bid a working UNIX system.
Everyone has a proprietary operating system with some reasonable installed
base, however.

10. Interactive processing:  COS is batch only.  The others would probably
allow interactive processing.  UNIX has a clear advantage here, although if
desired CTSS could be utilized for a Cray instead.
 
11. Trends: There is no question that there is some substantial momentum in
moving toward UNIX. Further, CRAY currently expects to discontinue
enhancement of COS. Remember, though, that CRAY is only one candidate
machine; and major computer vendors such as IBM, DEC, GOULD, DATA GENERAL,
and CDC offer UNIX only on part of their line, and only as an option.
Although there may come a day when UNIX will be standard, our enthusiasm
should be tempered by memories of "PASCAL, THE STANDARD PROGRAMMING LANGUAGE
FOR THE EIGHTIES" and other proposed all-purpose standards. Even if UNIX
becomes standard for supercomputing, will this be soon?  Lets face it, at
present, using any measure you care to choose (sites?, transactions?), the 
prevalence of UNIX is still more rhetorical than factual. What are we willing 
to sacrifice to help move the world to UNIX?
 
12. Cost:  UNIX costs are generally lower, but not by a high percentage for
supercomputer needs.
 
 
                             UNIX Risks
 
1.  RESERVED

2.  We may be restricted in our ability to do classified processing; single
job may be the only mode.
 
3.  We may end up with a buggy operating system and place a severe strain on 
our staff and our reputation.
 
4.  We could end up with problems from hackers.  Remember when the 50 
UNIX/VAX's at Stanford were siezed by a hacker? They didn't know who it was, 
where he/she was, nor could they do anything about it, short of shutting 
down the systems. Doesn't that sound problematic to you?
 
5.  Our machine could have reduced efficiency contributing to greater CPU
charges per job and limited capacity.
 
6.  We could end up with a need for additional systems analysts to deal with
the lack of utilities, resulting in greater costs.
 
7.  The otherwise superior choice may not yet be ready with UNIX.
 
8.  Major software packages may be written only for the proprietary OS.
 
9.  We could have inadequate system management resulting from inadequate
utilities, inadequate documentation, and inadequate budget for system 
analysts. We could also end up without accounting or archiving software, or, 
for that matter software for backups to the 3480 disks.
 
                            UNIX Benefits
 
1.  We move toward a standard OSI at the center. (But DEC VMS is here to
stay, it appears!  A version is being developed for parallel and vector
hardware that completely compatible. DEC should not be expected to stand
still, and VMS offers some very fine features, which make it less than
desirable for many codes at the center to switch away from.
 
2.  Cray has committed to UNIX for the future for system upgrades. What
about the status of other vendors. (Will this be provided for discontinued
supercomputer lines?)
 
3.  There will be some cost savings.(#$?)
 
4.  Higher levels of portability, interactivity, and communications will be
    obtained.  (degree?)
 
5.  As long as satisfactory operation is provided, no OS changes will be
required at a later time.
 
6.  We will already have UNIX experience on the minisuper.
---------------------------------------------------------------------------

					Thanks,
					Gene Guglielmo
					sefunix@nwc-143b.arpa

					Naval Weapons Center
					China Lake, Ca.

------

mike@BRL.ARPA (Mike Muuss) (05/09/87)

Gene -

Your message raises a lot of issues.  These happen to  be issues that
the Army SuperComputer program wrestled  with several  years ago, and
which to a certain extent are still discussed.  If you don't know me,
my name is Mike Muuss, and  I'm the  leader of  the Advanced Computer
Systems Team (ACST) at the U.  S.  Army Ballistic Research Laboratory
(BRL) in Aberdeen Maryland.  In addition to our primary task of doing
advanced research, my team is also responsible for the support of the
installed UNIX "system software", as well as the design,
implementation, and support of BRLNET,  our TCP/IP (MILSTD-1777,1778)
campus network.   For SuperComputers,  we presently  have installed a
Cray XMP48,  with  three  processors  running COS,  and one processor
running UNICOS (UNIX SysV), all  in "production"  status.   We are in
the process of implementing a conversion to full  UNICOS operation on
the XMP.  In addition, our Cray-2 should be installed in July, and it
will run only UNICOS.

BRL installed it's first UNIX machine (an 11/70) in May  of 1978, and
in the early 1980s  standardized on  UNIX as  the preferred operating
system at the Laboratory,  long before  UNIX became  fashionable.  In
1983 BRL adopted TCP/IP as  the protocol  family for  BRLNET, the BRL
campus network.  In both cases,  we have  derived tremendous benefits
from having identified emerging trends early on:   we are  now on our
5th generation  of  UNIX  machines,  and  our  3rd  generation of LAN
technology, yet  the  user  interface  to  the  systems  software and
network has remained  substantially unchanged  in nearly  a decade of
operation.  With  a staff  of nearly  800, the  "force multiplier" is
substantial.  This period has not been without  difficulties, but the
difficulties we had have generally been minor in nature.
(Insignificant in comparison to, say, VMS 3  to VMS  4 conversion, or
similar "vendor transitions").

I'll try to tackle some of  your specific  questions (at  the risk of
attempting to  write a  small book  :-) ),  but first  there are some
statements that I would like to make.

INITIAL STATEMENTS.

*)  Army procurements for SuperComputer systems are competative, and
permit any hardware to be offered.  However, the operating system
must be UNIX, and TCP/IP must be supported.  The first system was
a Cray XMP48, the second and third were Cray-2 systems.  Two more
systems will be acquired next year, also requiring UNIX and TCP/IP.

*)  NASA's NAS project recently acquired a SuperComputer.  They too
specified that the operating system must be UNIX, and TCP/IP must be
supported.  They selected a Cray-2.

*)  You will find that UNIX is usually considered the preferred
operating system for interactive computing by many government
agencies, mostly because the widespread availability of UNIX prevents
sites from suffering "vendor lock-in".

*)  Price/performance.  Most interesting new hardware runs UNIX.
For about $500k I can (and have) bought super-minicomputers with
speeds 50-100 * VAX11/780 performance.  How fast is your VAX 8800,
and what did it cost?  How about your IBM 4381?

*)  Look for some absolutely mind boggling workstations (running
UNIX, of course) to come on the marketplace next year.  Some are
domestic, some are foreign.  I'm not allowed to say more.

*)  Cray has announced that no new features will be added to COS
after the next release (116), and that support for COS will start to
be phased out in 5 years.

*)  Cray has also announced that for the forseeable future, UNIX will
be their standard (and in the case of the Cray-2 and Cray-3, only)
operating system.

*) Amusingly enough, I/O performance on an XMP is better under UNICOS
(native0 than it is under COS; 3-10% on disk I/O, 10-200% on SSD.
Computational performance  is  identical  for compute-bound programs.
Something to do with the enormous size of  COS.   Each "module" takes
more than  a  box  of paper  to print.   Did  you know  that a source
listing of COS stands nearly 3  stories tall?   It  topples from it's
own weight.

*) There  is  a  lot  to  be  said  for being  able to  have the same
environment on  all  your  computers,  *especially*  when  developing
supercomputer applications.   I  have UNIX  on my  Sun workstation, I
have UNIX on my Silicon Graphics IRIS workstation, I have UNIX on the
VAXes, Goulds,  and Alliants  I use,  and I  have UNIX  on the Crays.
Even though  these systems  are not  identical, they  are very close.
I'm tempted to claim that they are 99.44%  compatable, realizing that
83% of all statistics are worthless.  Being able  to develop software
on any machine, and run it on any machine  allows me  to choose which
system is best for the task I'm attempting.  For example, it would be
pointless to run  our Command&Control  software on  the Cray, because
it's highly  interactive  and does  little computation;  on the other
hand, I  have  to  be very  patient when  I run  my ray  tracing on a
workstation; it's more fun on an Alliant or Cray.

ANSWERS TO YOUR QUESTIONS.

*) Is  UNIX  good  for  scientific  computing?     For  compute-bound
programs, the choice of operating system  is nearly  irrelevant.  For
programs written  in  portable languages  (eg, FORTRAN-77  and C) and
avoiding vendor  extensions,  the  choice  of  operating  system only
affects the  I/O  portions  of   the  program   (typically  the  OPEN
statements).  Nearly any operating system gives  you this  much.  For
the rest  of  the  picture,  consider  the  development and debugging
environment.  Generally,  UNIX  is  considered  to  be  an  excellent
interactive development and debugging environment.

*) What  are  the  security implications  of the  Sun-RPC based "wall
daemon" incident?   Very few,  except to  point out  that many system
administrators do not  take the  time to  familiarize themselves with
the capabilities of their systems.  In  this case,  they accepted the
default configuration  of  the  Sun-NFS  package to  run the "network
write all  users"  daemon.   At BRL,  we run  the wall  daemon on our
workstations (to find our when fileservers are going  down, etc), but
do NOT  run  it  on  our large,  general-user machines,  to keep from
pestering lots of people who are probably uninterested.  I wonder how
many other  configuration options  the "affected"  sites neglected to
consider?  Most sites seem to spend weeks choosing all the
configuration options for their  DEC and  IBM systems;  why do people
believe that UNIX can be installed and configured without thought?

*) What  are  the  tradeoffs between  UNIX and  a vendor-specific OS?
Generally, it is believed that vendor-specific operating systems will
be more efficient on  their own  hardware than  some portable system.
Surprisingly, UNIX tends to perform as roughly as well  as the vendor
OS on  a  given  piece of  hardware.   If the  vendor OS  is an older
system, UNIX  often  performs  much  better.   The  efficiency of the
compilers being used is also an issue.  When most people bring up the
"UNIX performance problem", if you look deep enough, you usually find
out that they heard that  the AT&T  VAX FORTRAN-77  compiler for UNIX
generates code that is substantially slower than the  VAX VMS FORTRAN
compiler.  (This  is  roughly  the  same  compiler  that  you find in
Berkeley UNIX for the VAX).  Note that the key phrase  here is "VAX".
The compilers provided by Gould, Alliant, Sun, SGI, Convex, and other
vendors are  often  quite  good;  I  know  the  Alliant  one produces
*excellent* code, and the Convex one is also reputed to be excellent.

*) What level of support does UNIX require?   First,  this depends on
how you  define  support.   I prefer  to divide  support into several
categories (a) user consulting, (b) troubleshooting,  (c) bug fixing,
(d) evolution (eg, new releases, adding devices, etc), (e)
operations.  [a]  The  amount of  user consulting  services your site
will need  will  varry  only  slightly  with the  choice of operating
system, as  the  users  are  likely  to  encounter similar conceptual
difficulties regardless of the OS.  However, some OSs  make it harder
to do simple things than others.  UNIX was originally  designed to be
"expert friendly"  --  to  not  frustrate  the sophisticated computer
users.  One aspect of this is that commonly used  commands have short
names, to  reduce  the  amount of  typing required.   However, casual
users of  UNIX  systems  tend  to  be intimidated  by it's terseness,
economy of  expression,  and  command-language  power.   Novice users
quickly come to appreciate these advantages.  Persistant casual users
sometimes find it irritating.  [b] troubleshooting a
non-network-attached UNIX system tends to  be fairly straightforward.
Functionality is distributed among the various processes in a logical
manner.  Often  the  hardest  problems  to  troubleshoot  are  RS-232
terminal wiring/configuration problems, because there is so much more
than just the computer involved, but UNIX isn't  the difficulty here;
UNIX actually  simplifies  this  somewhat.    Network  attached  UNIX
systems require  much  more  configuration,  and there  are lots more
opportunities for trouble; keeping  mail flowing  across the InterNet
is often  the  most  challenging task  on UNIX  systems, because your
local problems convolve with problems  on the  receiving machines (of
all OS varieties) to  create tangled  difficulties.   UNIX makes this
fairly easy to debug as well.  The ballance of  difficulties you will
encounter are  usually  simple  configuration   errors,  or  hardware
problems.  [c] If you get  vendor support  for your  UNIX system, bug
fixing isn't something you have to worry about.   Due  to UNIX's long
history, it tends to be  fairly bug-free,  although sometimes vendors
introduce surprises  when  they  "port"  UNIX to  their own hardware.
Vendors selling UNIX on their hardware tend to support it  as well as
they support their own proprietary system, and sometimes they support
it even better.  If you don't feel  like depending  on vendor support
for your system software, you need to shell out  $16k (government) or
$40k (commercial) for  an AT&T  source license,  plus whatever source
fee your  vendor  requires.    This  gives  total  control,  but most
facilities are  likely  to  prefer  the  safety  and  stability  (and
slowness and  expense)  of  vendor  support.   [d]  Evolution of UNIX
systems tends  to  be remarkably  painless.   Installing new software
packages is  easy,  and  even  upgrading  to  a  new  release  of the
operating system  is  non-traumatic  (although  some  vendors like to
provide some vendor-specific trauma for  their customers).   [e] UNIX
systems were designed to operate without  an online  operator.  Other
than handling tape mounting for file backup and file recovery, feeding
the printers,  and  rebooting  the  machine   after  power  failures,
operators don't have much to do on UNIX systems.

*) What is the state of UNIX documentation?  We currently provide our
users each with a 1 foot stack of paper for their  basic manual, very
little of which was added  at BRL  -- the  rest is  excerpts from the
manuals that  our  vendors  provide  us.    One  set  of  manuals  is
sufficient for  most  uses  of  any  our   our  machines;  additional
machine-specific manuals are  available as  well.   Most users simply
can't deal  with  that  much  information,  and  many sometimes  wont
bother looking things up, again not  a fault  of UNIX.   In addition,
UNIX has become a very  popular subject  among authors,  and there is
quite a selection of commercial  textbooks about  UNIX, available for
quite a  variety  of target  audiences.   UNIX courses  are taught by
numerous professional  training  companies,  and UNIX  courses can be
found in most  colleges and  universities.   The investment  of a few
days of  study will  pay off  handsomly; for  our users  at BRL, that
investment has  already  paid  off,  in terms  of 4  new systems that
didn't have to be learned as we moved  through 5  generations of UNIX
hardware (4 of which are still in active use).

*) How many bugs does UNIX have?  UNIX is a system  which has existed
in it's  modern  form since  1976; the  changes since  then have been
fairly evolutionary.  The basic utilities have been stable for a long
time.  Bugs,  when  encountered,  tend  to  be in  little used system
calls, and newer facilities  (like  shared  memory  and  networking).
However, most vendor-supplied, binary-only UNIX machines  that I have
worked with  have  astonishingly  few  bugs,  and  no  show stoppers.
Considering the richness of the tools provided,  this is significant.
Of course, some vendors have created  badly botched  versions of UNIX
(I know of two), so as always, you must be a smart shopper, or confer
with your more experienced friends.

*) How reliable is UNIX?  UNIX systems on the  whole tend  to be very
reliable, as  you  would  expect  from  any  mature operating system.
Hardware problems and power failures tend to be the  two major causes
of system crashes.  Some hardware is  more reliable,  and the quality
of power varies from place to place,  but it  is quite  common to see
systems that only go down once a month (for full dumps); systems that
don't go down for full dumps stay up as long as the power does.  Your
local conditions and practices can affect this, and  your mileage may
varry.  Void where prohibited or taxed.

*) How many features of UNIX will surprise people?   A  great many of
the features should be a pleasant surprise, few should be
astonishing.  However, I expect that this  question was  asked in the
context of the "remote  wall daemon".   If  your system administrator
does not take the time to read the manuals and exercise  some care in
preparing your  configuration,  expect to  be unpleasantly surprised.
This feature is not unique to UNIX either.  (Nobody  would *think* of
turning on  a  500W  laboratory  laser  without careful  study of the
manuals; why do people think an expensive computer  is any different?
Computers have  not  (quite) reached  the stage  of being commodoties
yet).

*) Is UNIX easier or harder to use than NOS, VMS, COS, or  MVS?  This
depends a lot on your individual perspective.   If your  desire is to
run some big (debugged) batch programs  over and  over with different
data, UNIX is about the same as any other system.   If  you desire to
interact with the system, or  to perform  complex file manipulations,
UNIX is much easier to use that NOS, COS, or MVS, and similar to VMS.
If you want to perform truely difficult file manipulations, then UNIX
is (at least somewhat) superior to all other systems I have used (and
I have  personally  used most  of them).   No  JCL, no
	REWIND,DN=FROB.
statements, no
	//DATAFILE DD DSN=SYS1.BRLCAT.MIKE.DATA,RECFMT=FB,UNIT=TAPE, ....
crap.   Of all the alternatives, VMS comes the closest  to being   as
easy  to use as UNIX, with  TOPS-20  right  behind  it,  and all  the
rest  vastly outdistanced.

*) What are the trends in operating systems?   Well, they  seem to be
getting larger.    Aside  from  that,  most  small  and  medium sized
companies with a new hardware offering that is  unlike their previous
offerings are  likely  to  use  UNIX.   It  is possible  for a small,
ambitious company to do a very solid port of UNIX to a new machine in
something like 5 man-years, which contrasts sharply  with the roughly
O(1000) man-years that building a new operating system would require.
Thus, economics will result in very few new vendor-specific operating
systems being created, with most of  those probably  comming from the
large multi-national corporations.  On the other hand,  as the $2,000
32-bit workstation becomes reality next year, I predict that you will
see no new faces, with the great majority running UNIX.   Allow a few
years to pass, and  UNIX Personal  Computers will  be ubiquitous, and
the youth of America will be spared the ravages of MS/DOS.

*) Are migrations from one operating system to another easy?  Rarely.
If you are changing operating systems without  changing hardware, the
brunt of  the  change  is  in  "job control"  (JCL, procedures, shell
scripts, whatever), while applications programs that stay  out of the
operating systems's knickers should port painlessly.   (An example of
this is the switch from COS to UNICOS.  We should be able  to pull it
off in less than 6 months). When you change the OS and the hardware at
the same time, more work is required (eg, moving from IBM  MVS to DEC
VMS).  Vendor-specific programming practices are uncovered in all but
the most carefully written applications  programs.   File opening and
naming conventions tend to be wildly differnt.  Binary I/O and binary
datasets tend  to  be  handled  differently.   The  list of potential
pitfalls is substantial.  In any case, the worst part  of a migration
is usually  not  your  core  set of  applications --  their users are
likely to have a  big interest  in switching,  and there  are not too
many such applications.  The real cost will  come from  the effort of
moving the hundreds of less frequently used applications.   The sheer
quantity of code is likely to be  staggering, and  the user community
will usually be much less interested in  having to  cope with change,
since all those programs are, individually, fairly unimportant.  But,
even having to invest a half a day for each one can  eat man-years in
mindless conversion work.  If you have  the opportunity,  plan with a
long view,  and  invest  in  UNIX  now,  rather  than  waiting  to be
overtaken by events.  I suspect that BRL will have painlessly evolved
through ten or more generations of UNIX hardware before the successor
to UNIX is identified.  (I'll keep my eyes peeled for it!)

*) "With VMS, (or NOS and MVS, for that matter) we have an O.S.  that
was formally  developed  as  a commercial  product, so  there is some
sense of  it's  limitations  and holes,  concern about  it's bugs and
features, and a  corporate entity  that is  responsible for providing
real support  for  real  money."    Three  topics  here,  (a)  formal
development, (b)  vendor  concern,  and (c)  standard vendor support.
[a] I'm not certain that claims  of OS/360,  NOS, or  VMS having been
"formally developed"  by  large  hordes  of  people   makes  me  feel
especially reassured.    I'm rather  more comforted  by the knowledge
(and the results!)  of the fact that UNIX was designed  in large part
by Dennis  Ritchie  and  Ken  Thompson  at  Bell  Labs,  and that the
remainder is due to such Computer Science greats  as Aho, Weinberger,
Kernighan, and the rest of the crew at Murry Hill.   Their vision was
to create  a  system  that  would  be  easy and  productive for their
favorite scientists to use -- them.  They succeeded.  [b] There is no
reason to believe that a vendor who sells you a lump of hardware with
UNIX on it will support their UNIX software significantly differently
than they support their own proprietary  software.   I'm certain that
there are examples of this, but DEC is a good counter  example.  They
seem to  be doing  comparable jobs  providing support  for ULTRIX and
VMS.  For many new products, UNIX is the  only offering,  and if that
vendor wants to survive, you can be certain that  they will emphasise
support.  [c] If you expect your vendor to always  fix everything for
you in a hurry,  you have  succumbed to  the myth  of Standard Vendor
Support.  If you expect your vendor to  help you  find workarounds to
your bugs,  and  fix  some of  them when  the fabled  Next Release is
delivered, then you have a more reasonable expectation.   This too is
true regardless of who your vendor is, and what OS you are running.

*) Given that UNIX is easy to change and extend, WHO,  WHEN, HOW, and
WHY should it be changed or extended?  Early in my  UNIX career, back
in the V5 and V6 days, I spent a lot of time  modifying and extending
UNIX, partly for additional performance  or features,  partly for the
fun of it.  These days, there is very little  about UNIX  that I  get
very interested in  working on.   Modern  versions of  UNIX are "good
enough" to do the most demanding applications on.  We  now invest our
energies more  towards  investigating  network protocols, distributed
operating systems, distributed applications, and real science.  While
we at BRL take each new UNIX  system we  obtain and  add some special
security features, and  port over  the hundreds  of locally collected
utilities (including  our  bag  full  of  favorite  editors),  it  is
certainly the case that these days  an "out  of the  box" UNIX system
(System V Release 2 or above, or Berkeley 4.2 BSD or  above) is "good
enough" that it can be just configured, installed, and used.   If you
introduce CHANGES to your UNIX system (as opposed to  just ADDING new
programs), you run the risk of having a system that diverges from the
main streams of UNIX, and you may  face additional  work when porting
your software to more ordinary versions of UNIX.

*) Does  the  ease  of  modifying  UNIX  make  it  more  difficult to
troubleshoot a user's problem?  In general, no.  Unless you engage in
serious kernel work, in which case your kernel errors  may induce all
manner of bizzare behavior.

*)  Are there any production supercomputers running UNIX?  All except
one of the 9 Cray-2s manufactured to date are running UNIX.  Of the
XMPs: Bell, Berkeley, Apple, BRL, and Cray (Mendota) run UNIX.

*) Is UNIX an operating system  for SuperComputing?   Yes.   Why not?
If all you are doing is crunching, the choice of  operating system is
not significant.  If you expect more out of your OS, then why not use
a powerful, modern, portable  operating system?   And,  for better or
for worse, you are  unlikely to  see VMS  on a  SuperComputer in this
lifetime, and VMS is the only other reasonable choice.

*) What are the risks of using UNIX?  The worst  risk is accidentally
buying your UNIX from a bad vendor.  Another risk is  that UNIX might
not do something  that you  have become  very accustomed  to, or very
dependent on, on some other system,  and the  difference might really
bug you.

*) What are the file backup and file migration  capabilities of UNIX?
The standard utilites DUMP and RESTORE are quite good for normal file
backup and  recovery.    Standard UNIX  does not  presently have file
migration, partly because of the notion that UNIX machines don't have
online operators.  However, there is at least  one commercial concern
that is  offering  a  file  migration  package for  a very reasonable
price.  Also,  Cray is  currently working  on a  fancy file migration
package for some future release of UNICOS.   And, NASA  Ames and some
of the  NSF Supercomputer  sites are  doing some  interesting work on
file migration as well.  (Ask me about this again in a  month when we
get BRL's plans for our MASSTORE systems firmed up).

*) Portability.    (a) is  UNIX software  portable?   (b) is existing
software portable  to  UNIX?   (c)  are needed  packages available on
UNIX?  [a] Well written UNIX software is the most portable software I
have encountered.   The worst  difficulties in  porting UNIX software
are usually caused by code (in  any language)  that makes assumptions
about the sizes of the various data types.  Excessive cleverness with
pointers can also cause troubles.   These  things are  usually due to
carelessness, or uninformed attempts at  optimization.   This type of
difficulty has  fortunately  become  less  common.   The UNIX utility
"LINT" goes a long long way to identify these problems  in your code.
Having UNIX  running on  two rather  different hardware architectures
(eg VAX & 68000) and making sure that your software works  on both is
a pragmatic way to eliminate any portability difficulties that remain
after LINT is happy.  [b] Existing FORTRAN software tends to port
very well to UNIX, assuming that vendor-specific language extensions
and vendor-specific library routines were not used.  [c] Many of the
popular packages are available on UNIX.  One of the most common packages
that is not well supported on UNIX is DISPLA.  However, there are good
alternatives, and ISSCO got bought out and seems headed for troubled
times.  (If you want color graphics, as opposed to plotting, can I
interest you in a free copy of the BRL CAD Package?).

*) How well does UNIX communicate ?  AT&T UNIX, ironicly enough, does
not communicate very well at all, unless running UUCP and KERMIT over
terminal lines qualifies.  Berkeley UNIX,  and all  AT&T UNIX systems
with vendor-added TCP/IP capability, communicate very well indeed.  I
assume that  TCP/IP  capability  is  important  to  you.   If you are
looking for other procotol support,  there are  numerous vendors that
provide X.25 and SNA boards and softare.  And, both DEC and Sun offer
UNIX systems  that  can  communicate  with  DECNET.   Network Systems
supports NETEX for UNIX, and Cray even supports STATION (ugh).

*) Can UNIX be used to  run Classified  work?   Yes, using  UNIX in a
"system-high" processing mode works very well.  At present, there are
no supercomputers  that  have  NSA  appoval  for  multi-level  secure
operation.  Don't expect this to change anytime soon,  it's not easy.
However, system-high operations  combined with  period processing (if
you need more than  one classification/compartment  at your facility)
are workable.  Call for more information.

*) "Is it possible to control hackers" [on UNIX]?   Certainly.  There
are two  categories  of  attack:   (a)  attack from  outside, and (b)
attack from an existing user.  With proper safeguards and
administrative controls,   it   is  possible   to  provide  excellent
resistance to outside attach.  This includes addition  of logging and
disconnect policies, required  pasword change  intervals (standard on
SysV), and a more  restrictive version  of the  password changer that
refuses to allow "dumb" passwords, including those in 4 dictionaries.
The attack from a user already authorized to log into  your system is
harder to deal with, because the system has no easy way  to know what
actions are  benign  blundering,  and  what   is  attempted  hacking.
However, if your systems has been installed at all  carefully, and is
occasionally checked  for  glaring  system  administrator oversights,
cracking UNIX security is very difficult indeed.  In this department,
UNIX is at least as secure as it's peers, and typically much more
secure.  (If your VMS machine runs DECNET and you believe it's
secure, guess again.  I have these friends...).

*) Is UNIX file protection adequate?   Adequate,  yes, exemplary, no.
The Read/Write/Execute  for  Owner/Group/World   is  quite  adequate.
However, the simplicity of this approach means it tends to be used well.
There are occasions where access  control lists  would be  better.  I
have a copy of  an implementation  of ACLs  for UNIX,  but have never
felt the need to try and install it.

*) Will specification of UNIX restrict competition?  No.  In fact, in
order to  foster  true competition  while still  requiring a specific
operating system,  you  only  have  two  choices:    UNIX,  or an IBM
operating system.  Otherwise, by specifying the operating system, you
have specified  the  vendor.    However, *not*  specifying a specific
operating system  may  open  you  to  the  possiblity  of  getting an
operating system that you are wildly unhappy with.   And, these days,
software costs tend to dominate the hardware costs, so  this could be
an expensive mistake.

*) Does  UNIX  have  fewer  utilities than  proprietary OS offerings?
Almost ceratinly not.   Standard UNIX  systems come  with hundreds of
utilities that range from the usual file tools and edit/compile/link/
debug tools to sophisticated source code control systems (SCCS, RCS),
compiler-compiler and lexical analysis utilities, MAKE, and many many
other programs.  Then, in addition to that, there  is a  vast body of
public domain software that is readily available.  Finally, there are
quite a  few  commercial  concerns  that   offer  specialty  software
packages for UNIX.  As the costs of small UNIX workstations  continue
to plummet, the  supply of  "cottage industry"  software offering for
UNIX will soar.

*) Is UNIX interactive?  Yes!  There is nothing quite as wonderful as
running an interactive  scientific application  on a  Cray and having
your commands  result  in  immediate  color graphics  sent across the
network to  your  workstation.    Closely  coupling  the  power  of a
supercomputer to your scientists, with good visualization tools, will
lead to  significant  increases  in  scientific productivity.   It is
working for NASA/Ames, and it is working for BRL.

Best,
 -Mike Muuss

(301)-278-6678
  AV  298-6678
  FTS 939-6678

ArpaNet:  <Mike @ BRL.ARPA>

Postal:
  Mike Muuss
  Leader, Advanced Computer Systems Team
  Systems Engineering and Concepts Analysis Division
  U.S. Army Ballistic Research Laboratory
  Attn: SLCBR-SECAD (Muuss)
  APG, MD  21005-5066