[Info-vax] OpenVMS Guide to... (was: Re: Making Open Source Tools Work for VMS)
Stephen Hoffman
seaohveh at hoffmanlabs.invalid
Mon Nov 22 14:04:44 EST 2021
On 2021-11-22 16:55:24 +0000, Jon Schneider said:
> I'd like to see a guide to
>
> * Interprocess (not network) communications
Use IP, or use TLS for sensitive traffic, or maybe use ICC
intra-cluster communications services.
The use cases for mailboxes and shared-memory sections and such do
exist, but are more limited in my experience, tend not to scale all
that well, and you can find yourself re-implementing IP networking and
locking and memory cache management and the rest and for little gain
over IP and with much added effort. I've done all this stuff with all
these mechanisms and with DECnet and and DLM-based comms and more,
and—until and unless IP ran out of performance—I'd use IP as the
baseline for even local communications.
TLS is a quagmire on OpenVMS too, as it's little better than a
bag-on-the-side, with no integrated root certificate list, and a whole
pile of command-line tooling to get anywhere. A framework to deal with
IPv4, IPv6, DNS, TLS, VPNs, and the rest has been discussed,
but—outside of some open source here—that won't happen until well after
OpenVMS x86-64 ships. If then.
> * Synchronisation
The distributed lock manager (the Linux distributed lock managers were
patterned on the OpenVMS lock manager, so it should look familiar),
interlocked bitlocks and interlocked queues. There's a chapter or three
in the programming concepts manuals on these topics.
And you'll want to read the processor architectural manuals for shared
memory caching, as Alpha memory caching and re-ordering is...
aggressive.
Or use IP.
> * The process model, debugging
That's not well documented anywhere, though the debugger manual is a
reasonable start. I once had some stuff on remote debugging and
debugging detached processes posted a whole while back, but that's all
been offline for some years now.
> * The (Files-11 I guess) filesystem
There's a manual or two on that in the doc set. Expect and assume
ODS-5, and expect to get derailed by some C feature logical name or
some ancient volume still stuck at ODS-2.
> * Clustering features (and no seeing somebody gaffer tape a load of
> Raspberry Pis together doesn't tell me much)
The cluster pricing rendered most cluster features infrequently
commercially used. There are a couple of manuals on this topic. One at
a higher level, one at a lower level. For programming, there's rather
less available in the docs. And app failover and the rest have
scattershot documentation.
> * Any features that are novel or handled quite differently in VMS
The only weird (useful) feature I can think of off-hand is software
RAID-1; Host-based Volume Shadowing. Pretty much the entirety of the
rest of the OpenVMS feature-set will have a corollary, analog, or
alternative on other platforms. Variously different, and variously
better. LDAP versus SYSUAF, for instance—outside of add-on
bag-on-the-side external authentication support, OpenVMS knows zilch
about LDAP. Which is just quaint from here in 2021.
> aimed at those with some knowledge of these thing in Unixen and MS Windows.
Trying to port over knowledge of Unix or Windows features and
expectations to OpenVMS tends to end badly, from a very long history of
folks trying to learn OpenVMS around here.
OpenVMS expects the developer to read much of the whole wall of
documentation, and doesn't really provide a cookbook-style
examples-based approach to app development. And there are gaps in the
docs that are less than fully visible to long-time developers. All of
which has been fodder for various previous discussions.
I've done day-long training sessions on these topics for various sites
and for experienced developers. But this whole area is one that starts
out very different from other platforms, and the resulting discussions
then go in myriad directions depending on local needs and expectations.
--
Pure Personal Opinion | HoffmanLabs LLC
More information about the Info-vax
mailing list