VMS stability back in the day (was Re: NuTek Mac comes)

Ethan Dicks ethan.dicks at gmail.com
Fri Jul 15 10:07:44 CDT 2016


On Fri, Jul 15, 2016 at 10:44 AM, Swift Griggs <swiftgriggs at gmail.com> wrote:
> On Fri, 15 Jul 2016, Ethan Dicks wrote:
>> It was a huge deal in the late 80s and into the 90s.  I was on both
>> sides, so mostly, I watched.
>
> This thread has definitely been the most civil discussion and set of
> anecdotes I've seen when folks discuss VMS and Unix in the same thread. I
> usually don't bring up VMS because I'm not that well versed in it, and
> when I make one mistake in the nomenclature or some other triviality,
> someone usually gets butthurt and tries to make a fool out of me or just
> scream bloody murder. However, folks have been nice this time, for which I
> breathe a sigh of relief.

Indeed.  As you've seen, I use both.  No need to be all "Commodore vs
Atari" about it.  ;-)

>> How well do you think it would go if all you had was SLIP and PPP?
>
> Do you mean versus some other point-to-point protocol or versus just using
> serial terminal emulation?

I mean vs ethernet-type networking.  The physical layer stuff has
fewer variants to worry about with Ethernet vs serial (3mbps vs 10mbps
vs 100mbps, and 10Base5 vs 10Base2 vs 10BaseT vs flavors of fiber as
opposed to all the parameters one has to match up to get any two
machines talking over a serial link).

Where this matters is that all our modern gear was developed in an
environment where nearly everything being transported across it is
TCP/IP.  Try pushing DDCMP over the wire.  ISTR there's now some TCP
wrappers to get gear to be willing to handle these packets, but that
just adds to the complexity and frustration.  With serial DDCMP, we
just hooked up two sync serial ports up with a modem eliminator (which
provides the baud-rate clocking for both hosts) and it "just works"
(since there are few options to configure at that point).  All the
configuration is a layer or two up as you set up the logical nodes in
your network.  Entirely unlike TCP/IP and Unix networking in terms of
workflow and type/quantity.

This is not a "A is better than B" argument - it's just some
descriptions of the elements of the process and how they are
different.

>> It would be a fairer comparison to develop a complex app in Perl vs DCL
>> (Perl would win, but it has a lot going for it).
>
> Feature wise, I don't see much of a comparison. Perl would trounce DCL in
> a comparison involving functionality.

Sure.  Absolutely no argument.  Just pointing out that comparing DCL
to shell isn't exactly apples-to-apples either.  If anything, measured
in arbitrary units, DCL is a half-step over shell scripting and a
half-step below Perl (etc.) scripting.

> However, you don't have as many opportunities to write line-noise
> in DCL (joke!).  :-)

Have you ever seen a string of ''' used to dereference DCL args?
Definitely the hardest thing about getting a working complex DCL
script.

>> Much stronger.  There are dozens of privileges you can grant so someone
>> can do their job and not overstep things.  UNIX says, "all or nothing.
>> Don't screw up."
>
> Well, while I agree VMS is much stronger when we talk about it in the
> context of the 1990s. However, it's certainly not "all or nothing" even in
> older UNIX variants. There *are* 'group' and 'other' permissions, not just
> 'owner'.

I don't mean file permissions, I mean system privileges.  Some UNIX
filesystems have ACLs (VMS has _very_ well developed ACLs, but that's
not what I mean).  I mean "I am root" or "I am not root" in UNIX land
becomes, "what system object/resource do you wish to access?  Read or
write?  Do you have one of the following privileges: NETMBX, TMPMBX,
GROUP, GRPPRV, ACNT, ALLSPOOL, BUGCHK, EXQUOTA, GRPNAM, PRMCEB,
PRMGBL, PRMMBX, SHMEM,ALTPRI, AUDIT, OPER, PSWAPM, SECURITY, SYSLCK,
WORLD,DIAGNOSE, IMPORT, MOUNT, SYSGBL, VOLPRO, READALL,BYPASS, CMEXEC,
CMKRNL, DETACH, DOWNGRADE, LOG_IO, PFNMAP, PHY_IO, READALL, SETPRV,
SHARE, SYSNAM, SYSPRV, UPGRADE?

Want to mount a disk?  In Unix, a user is told "must be root".  In
VMS, you need MOUNT.  You can give someone MOUNT and none of the other
privs, meaning this user can mount disks or tapes but not necessarily
read physical memory or bypass file permissions or write to device
registers or any of the other privileged tasks.  It's not
all-or-nothing; you grant the level of access required and no more.

(http://www.mi.infn.it/~calcolo/OpenVMS/ssb71/6015/6017p014.htm#vms_privileges_tab)

>> OTOH, I learned a *lot* porting utilities and games from
>> comp.sources.unix and comp.sources.games to VMS.  Some things were a lot
>> harder than others.
>
> I think the biggest stumbling block is the lack of fork() in VMS.

Yes.  That was one I just dodged.  If stuff I was porting did a
fork(), I just found something else to port instead.  The workarounds,
as you point out, are non-trivial and don't map 1:1 to what fork()
does.

-ethan


More information about the cctech mailing list