[net.unix-wizards] VMS is UNIX spelled backwards

mikec@hou2g.UUCP (#M.CONDICT) (11/28/84)

Those VMS-ites who enjoy denigrating UNIX should show some respect.  Virtually
every feature in the early versions of VMS that made it useable (barely!) was
copied from UNIX -- this is well known within the original development group,
which was headed by a UNIX-lover (gasp, gasp!).  In fact, Version 1.0 of VMS
was a system apparently designed by concatenating the RSX-11M Operating Sys.
manuals with the UNIX Version 7 manuals, then shuffling or deleting a few
pages.  I guess the idea was to be upward compatible with RSX while putting in
all the UNIX goodies as well.  Here are a few examples for your amusement:

o They saw the utility of a command processor as powerful and flexible as the
  Bourne shell, so they tried to put one in VMS.  Unfortunately, what they
  ended up with (DCL) was an interpreter for, roughly, a subset of FORTRAN.
  Whoopee!

o The notion of standard input and output was implemented through the use of
  logical names SYS$INPUT, SYS$OUTPUT.  Unfortunately, many standard commands
  do not read SYS$INPUT or write SYS$OUTPUT, and anyway they forgot to put
  any I/O redirection syntax into the shell.  Very useful indeed!

o Unix pipelines were implemented as VMS mailbox devices.  Unfortunately, they
  neglected to put anything in the shell that would automatically construct
  such mailbox-pipelines and connect commands through them.  In fact, by
  default, users are not even given permission to make such mailbox devices.

o Tree-structured file systems are wonderful, so they just had to have them
  in VMS.  Unfortunately, they attempted to overlay the notion on top of the
  RSX "two-dimensional array of directories" syntax, producing the wonderfully
  elegant notation  "DB0:[USER.GLERP]WHATEVER.FTN;13" for a file that in
  UNIX would be something like "/usr/glerp/whatever.c".  Also, to ensure
  compatibility with RSX and avoid frightening users, they restricted each
  name in a directory path to nine letters or digits, upper-case only, thank
  you very much.  Oh, and they forgot to put in the device-independent, single
  directory tree -- every file name must be preceded by the device-name on
  which the file resides, unless this device is the default.  Strange things
  are done with logical names in a futile attempt to relieve the user from
  knowing the full device name of various commonly used files and devices.

o They weren't impressed at all with the UNIX "&" construct for invoking
  background processes, so they ignored it, almost.  By writing a program
  you could get a parallel process started up, but don't ask the shell to do
  it for you (in fairness, they've since implemented a very badly designed
  "SPAWN" command, intended to serve this purpose).

o As in RSX, they had a facility for getting user-supplied arguments into
  user-written programs.  Unfortunately, as in RSX, the shell could not be
  induced to pass such arguments to such programs, which had to be invoked
  by saying "RUN program".  This also, apparently, was intended to avoid
  frightening users, most of whom were assumed to be FORTRAN-hacking engi-
  neers who don't trust software anyway.

The most recent time I was forced to use VMS, I promptly implemented a DCL
program that provided a UNIX-like shell, with I/O redirection, "echo" and
"read" commands, background processes, a history mechanism and even a
rudimentary pipe-line facility.  Its utility was somewhat limited by the
above-described brain-damage, however, and I eventually switched to Eunice.
I called the program DSH (for Dumb Shell) and it is still in use at NYU as
far as I know.

If I've made any statements that are not true of the latest and greatest
version of VMS, it is because I escaped from VMS at Version 3.0.  Please
forgive any such inaccuracies and may I roast in hell for defaming DEC's
finest operating system.

Michael Condict		...!{allegra|decvax}!hou2g!mikec
AT&T Bell Labs
Holmdel, NJ

pritch@osu-eddie.UUCP (Norman Pritchett) (11/29/84)

As a VMS hacker I suppose it is my duty (:-)) to give some sort of repsonse to
this article.  I thank Michael for saying which version of VMS he was using
because a lot of it sounded as if his only exposure to VMS was version 1.0.
I'd like to start out with just a couple of statements and corrections to
his comments about VMS and DCL.

>o They saw the utility of a command processor as powerful and flexible as the
>  Bourne shell, so they tried to put one in VMS.  Unfortunately, what they
>  ended up with (DCL) was an interpreter for, roughly, a subset of FORTRAN.
>  Whoopee!

I'm not certain if you had the oppurtunity to fully explore , among other
things, the many neat lexical functions to perform string-handling, query
device and system status.  I'll admit there is a definite lack of structured
control statements like an ELSE for IF-THEN statements, DO-WHILE's and
-UNTIL's.  I'll consider this statement as being subjective; DCL has good
points and bad points and I'm happy to live with bad ones to have the good
ones.

>o The notion of standard input and output was implemented through the use of
>  logical names SYS$INPUT, SYS$OUTPUT.  Unfortunately, many standard commands
>  do not read SYS$INPUT or write SYS$OUTPUT, and anyway they forgot to put
>  any I/O redirection syntax into the shell.  Very useful indeed!

There is only one command that I've found which didn't recognize the
SYS$INPUT, or SYS$OUTPUT assignments -- the SHOW SYMBOL command.  All of the
others seem to consistently use those logical names.  There is another one
to consider: SYS$COMMAND which defines where command input as opposed to
data input is coming from.  Unfortunately, VMS utilities do not consistently
use SYS$COMMAND, they may use the assignment of SYS$INPUT instead. I'll
agree with the need for I/O redirection syntax in the shell.

>  ... to ensure
>  compatibility with RSX and avoid frightening users, they restricted each
>  name in a directory path to nine letters or digits, upper-case only ...

DEC's learning, version 4 now allows 31 characters and selected special
characters in a filenames and names in directory path's.  Filenames may also
have extenstions 8 characters long.

>o As in RSX, they had a facility for getting user-supplied arguments into
>  user-written programs.  Unfortunately, as in RSX, the shell could not be
>  induced to pass such arguments to such programs, which had to be invoked
>  by saying "RUN program".  This also, apparently, was intended to avoid
>  frightening users, most of whom were assumed to be FORTRAN-hacking engi-
>  neers who don't trust software anyway.

Hate to say this but the shell can be induced into passing arguments.  You
can tell the shell to run a program by having a symbol defined as the
program name preceded by a `$' (as an example: foo :== $myprogram).  After
you make that definition you merely type the symbol name and the program is
run.  If you wish to pass arguments from command line just put them after
the symbol name ( e.g. foo  THESE ARE MY ARGUMENTS)

>Those VMS-ites who enjoy denigrating UNIX should show some respect.  

This is my real message; If I at all appeared to be anti-UNIX here please
forgive me for leaving the wrong impression.  I personally do not enojoy
seeing anyone put down any operating system.  Each is a tool which is good
at doing sometings well and somethings not so well.  I actively use VMS,
Unix and Tops-20.  In times past I used RSTS/E and RSX-11.  Each had
features which I found particularly appealing and some which are not. You
will not find me saying anyone of these is worse than the other (excepting
RSuX).

The people that I know who continually put down one system or another tend
to be those who try to use things that their system does best on a different
system.

It is probably very naive of me to expect this, but I wish that everybody
would stop complaining about everbody else's operating system.  If you don't
like the way a certain system handles things then why don't you try doing
the things it's good at instead or find an operating system which does what
you want?


-- 
----------------------------------------------------------------------
					Norm Pritchett
					..osu-dbs!pritch

joe@fluke.UUCP (Joe Kelsey) (11/30/84)

> From: mikec@hou2g.UUCP (#M.CONDICT)
> Those VMS-ites who enjoy denigrating UNIX should show some respect.  Virtually
> every feature in the early versions of VMS that made it useable (barely!) was
> copied from UNIX -- this is well known within the original development group,
> which was headed by a UNIX-lover (gasp, gasp!).  

Well known by whom?  I personally heard a very detailed description of
the history of VMS, and not a single person involved with version 1.0
of VMS had ANY experience with UNIX.  In fact, I believe that their
only knowledge was that a couple people had read the Communications
paper, and that was it!

> In fact, Version 1.0 of VMS
> was a system apparently designed by concatenating the RSX-11M Operating Sys.
> manuals with the UNIX Version 7 manuals, then shuffling or deleting a few
> pages.  I guess the idea was to be upward compatible with RSX while putting in
> all the UNIX goodies as well.  Here are a few examples for your amusement:

VMS was derived 80% from RSX, with a few UNIVAC and MULTICS concepts
thrown in at random.  Dave Cutler (father of RSX and almost any
worthwhile product from DEC, bit-twiddler extrodinaire) had the most
influence on VMS in the early days, and since he parctically wrote RSX
single-handedly, VMS was very much influenced by his preferences.  Dave
was known as one of the major UNIX-phobes at DEC, although he may or
may not have overcome some of his phobia since writing the VAX-11 C
run-time library.

> here he proceeds to give examples of UNIX things VMS bungled.

The only thing that anyone who developed VMS admits was influenced by
UNIX was the mailboxes.  None of your other examples have any validity
as being anything related to UNIX, except maybe by hindsight.  Every
single one of them was based on RSX ideas.

I don't really mind people who choose to say that UNIX or VMS is better
and then give reasons.  I just wish that if you are going to claim
something about history that you would check your facts.

Personally, I can see no reason to choose either system.  Both have
major flaws, along with major plusses.  When you compare actual
operating system capabilities, it comes out as a wash.  Neither is my
favorite operating system, no matter which viewpoint you use:  user,
application programmer, systems programmer, system administrator, etc.
Unfortunately, my current favorite is now destined to become a
dinosaur: TOPS-20.  Sigh.

/Joe

pc@unisoft.UUCP (Paul Campbell) (12/01/84)

[slurp]

  I too must put my 5c in ... (first a bit about my background ... I port Un*x
for a living, I have also spent the last 4 years as a VMS hacker ... so I feel
I have a good view of both worlds).

  I feel the main reason for the 'enemity' between VMS and Un*x people is
a lack of knowledge and experience (here I mean YEARS of experience, what
you need to really understand an operating system's environment and feel
comfortable using it) on both sides. Here are my feelings about them ...

	1)	EDT vs vi - they are relatively similar in power for normal use

		vi:	good points - better search facilities, can work on
				almost any terminal
			bad points - impossible to learn/teach
		EDT:	good points - you can teach a novice computer user to
				use it in 15 minutes
			bad points - you have to use a DEC compatible terminal

	2a)	kernel hacking - VMS provides more 'hooks' than Un*x, but then
			you don't have the source (or objects) to reconfigure
			VMS, on the other hand allocation of system resources
			and the loading of device drivers is done dynamicly
			either at boot time or while the system is running.
			If you have the sources you can do 'anything' in Un*x,
			but in VMS you have the fiche and it is not necessary
			to change the kernal to do kernal things ... there are
			ways for a user program to get into kernal mode to do
			these things. Un*x does a few simple things well, VMS
			does these things and as well provides you with the 
			hooks do do many operating system things (page mapping
			signals, interrupts etc). I had to implement virtual 
			Un*x machines on VMS (with the Un*x kernal running in 
			Supervisor mode, each running with its own virtual
			disk (so we could give students 'virtual disk crashes'
			for them to recover from)) all the operating system
			things that you require are there, they are not in Un*x
			and I don't see how I could possibly do the same without
			a lot of Un*x kernal modification!

	2b)	kernel hacking cntd - I feel that the fact that VMS sources are
			not readily available is a major reason why people don't
			do more hacking, however DEC do give a good course on
			VMS internals and once you learn how to read the fiche
			you can do almost anything. Even though much of the
			VMS kernel is written in assembler there is no reason
			why you can't use almost any language for kernel code
			(I have used Pascal and FORTRAN). Bugs, DEC's support
			is really very good, it can take time for patches to
			arrive but if they are really critical they will get
			them to you express (I come from the furthest reaches
			of the world, the deep south of New Zealand).

	3)	portability - Un*x is portable, VMS is not (FULL STOP).
			
	I could go on for pages more ... but as a summary ... I feel that they
	are both good operating systems, each with a different emphasis and 
	that there are good reasons for using either one. Most of the points
	raised by both sides are probably to some extent valid and at the 
	same time can be shot down in FLAMES by the oposition. Finally just
	be glad you don't have a 43xx/370 etc, then we could all argue about
	the merits of many different operating systems rather than just two.

		Cheers

		Paul Campbell (ZL4TFW)   	..!ucbvax!unisoft!paul	

fouts@orville (Martin Fouts) (12/02/84)

Hmm, interesting comments.  And what were you smoking at the time?

----------

geoff@desint.UUCP (Geoff Kuenning) (12/02/84)

In article <378@hou2g.UUCP> mikec@hou2g.UUCP (Michael Condict) writes:

>Those VMS-ites who enjoy denigrating UNIX should show some respect.  Virtually
>every feature in the early versions of VMS that made it useable (barely!) was
>copied from UNIX -- this is well known within the original development group,
>which was headed by a UNIX-lover (gasp, gasp!).

The way I remember it (I was in the 11M group at the time) is that Dave Cutler
headed the VMS group.  He was a tried-and-true Deccie, the author of 11M, and
not what I would call a UNIX-lover.  I also remember the name of Peter
somebody (can anybody help me?).  I cannot believe that a true-blue UNIX
lover at the head of the VMS group could have produced anything so hard to
use, even given the influence of various committees and other groups within
DEC.

>In fact, Version 1.0 of VMS was ... apparently designed by concatenating
>the RSX-11M ... manuals with the UNIX Version 7 manuals, then ... deleting a
>few pages.  I guess the idea was to be upward compatible with RSX while
>putting in all the UNIX goodies as well.  Here are a few examples for your
>amusement:

I think you give them too much credit.  RSX-11M compatibility *was* a
specific goal, and some people had read a few UNIX manuals.  There probably
were a few peon-level UNIX-lovers around too, but they didn't have much
influence.  That's probably why it wound up the way it did -- UNIX ideas
got interpreted by people who had never seen UNIX, and so they didn't
understand which parts were the important one.

>o They saw the utility of a command processor as powerful and flexible as the
>  Bourne shell, so they tried to put one in VMS.  Unfortunately, what they
>  ended up with (DCL) was an interpreter for, roughly, a subset of FORTRAN.
>  Whoopee!

DCL was (is?) a committee product, was strongly influenced by the need to
hang it on top of both TOPS-20 and RSX, by the existing IAS command interface,
and by the RSX-11M "indirect processor".  The design of this last was motivated
largely by the RSX-11M sysgen upgrade project.  If there was Bourne shell
influence in the first DCL spec I saw, it was sure well hidden.

[I am going to leave out several things I agree with wholeheartedly]

>o Tree-structured file systems are wonderful...[but the syntax is the]
>  elegant notation  "DB0:[USER.GLERP]WHATEVER.FTN;13"...

To be fair, this is partly because RSX-11M had tree-structured file systems.
"WHAT?" you say, "This guy's *nuts*."  Actually not.  I went to put
tree-structured file systems in 11M (the file system is implemented largely
in a user-mode library, so it's remarkable what a person with sources can
do without touching the kernel).  Imagine my surprise when I discovered that
most of the work was in removing restrictive checks for recursive directory
references.  It was obvious that the person who did it originally had heard
of directory trees and had left the hooks all over the place.

For those of you who have never had the misfortune to use 11M:  I have often
praised its real-time performance and marketplace success.  But the human
interface -- you thought UNIX had a wierd, non-intuitive, inconsistent
human interface?  You ain't seen nothing yet until you've seen:

PIP DB0:[101,124]ALPHA.DAT/NV/ME=DK1:[123,321]BETA.TXT;3,.DOC;7,;9,.C;*,GAMMA

(say what?)

(For you innocent unbloodied ones:  that's

cat /usr/joe/beta.{txt,doc*,c*} /usr/joe/gamma.c* >/usr/mary/alpha.dat

assuming you keep old versions in .co and .doco, or some such. At least you
could put blanks in for readability if you had room [80-character input
buffers, you know..])
-- 

	Geoff Kuenning
	...!ihnp4!trwrb!desint!geoff

mark@elsie.UUCP (Mark J. Miller) (12/04/84)

VMS was probably (surly) not a direct result of UNIX influence. However,
many UNIX - inspired ideas (tree-structured filing systems, pipes,
redirected-IO) had certainly found their way into the computer psyche by the
time the  VMS project got rolling, and this probably best explains whatever
similarities there are between the two systems.

Now that DEC supports ULTRIX, it will be interesting to see, in the years to
come, if VMS and UNIX will ever be able to merge into a single compatable
system.

-- 
Mark J. Miller
NIH/NCI/DCE/LEC
UUCP:	decvax!harpo!seismo!elsie!mark
Phone:	(301) 496-5688

gwyn@brl-tgr.ARPA (Doug Gwyn <gwyn>) (12/05/84)

Right on, Norm!  Let's stop this silly VMS-vs-UNIX debate, which is
only meaningful to VAX users anyway (most of us are not).

ron@BRL-TGR.ARPA (12/10/84)

Actually, I've found that a couple of hours using our Cyber make me
really appreciate the elegance of our other mmachines including VMS,
UNIX, and OS/1100.

-Ron