From: "#M.CONDICT" Newsgroups: net.unix-wizards Subject: VMS is UNIX spelled backwards (almost) Message-ID: <378@hou2g.UUCP> Date: 28 Nov 84 19:29:05 GMT To: unix-wizards@BRL-TGR.ARPA 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 -------