[Info-vax] OpenVMS Development Annoyances
Stephen Hoffman
seaohveh at hoffmanlabs.invalid
Mon May 6 11:51:39 EDT 2019
On 2019-05-06 02:21:08 +0000, Dave Froble said:
I do not find OpenVMS easy to develop for and I do have a passing
familiarity with same, what with the extra effort and state of the
development tooling meaning trade-offs around money and/or development
time and/or features and/or added code.
As for SYSUAF and logical names, I've been working with far better
approaches than what those provide, and for many years. And logical
names are commonly misused for app configuration data. So... not
selling it. Not selling it to me, that is. As was mentioned.
> Just what is so horrible? If it was hard to use, then I would not like
> it. Do I need to post examples to show just how easy it is to use?
The surprise to me here was in seeing how little glue code was needed
for similar tasks on other platforms, and seeing vendor efforts toward
reducing even that amount of glue code. I had habituated to that glue
code on OpenVMS, too.
On OpenVMS, itemlists shove a whole lot of complexity and overhead of
the flexible API—and a whole lot of source code glue—into the user
code, as part of maintaining API compatibility.
As for examples? I know well how to use itemlists. I routinely
encounter and routinely write pages of source code to do a few simple
system service API calls, too.
And the itemlist APIs can fail at even that upward-compatibility task,
with fixed-length buffers being ubiquitous. Which means a two-pass
call, with added memory allocation and deallocation glue code.
We all always get all of our memory allocation and memory deallocation
entirely right, too. I'm not the only one that's ever made mistakes
here, whether leaks or missing access checks—itemlists are really fun
across mode changes. And I know I'm not alone here with these
mistakes, having fixed various leaks and itemlist parsing written by
other folks. It's forty years in and we still don't have a freaking
itemlist parser-generator? Ah well, what I'm using elsewhere
eliminates this mess, and is a whole lot less glue code for callers to
write.
As for the DLM, it's a wonderful low-level API—discussions of itemlists
and the rest of the mess aside—but it's far from obvious to new users,
and it's not as easy to use as it should be for some of the most common
tasks.
Process management using DLM, for one. Some better APIs for typical
usage would be helpful, both to new users and to experienced users.
The DLM doc needs a whole lot of help here, too.
One of the pinnacles of the OpenVMS API design is ACME. That API can
do everything. Downside: that API can do everything, and it's hard to
use to do simple and common tasks.
One of the most common tasks being password verification.
And ACME callers still routinely embed hard-coded buffers such as that
for the password hash buffer.
(Why am I even dealing with the blasted password hash buffer? Whole
'nother question, that one.)
> Usable from Basic?
Spent many years in BASIC. It works well, but it really needs to be
dragged forward a couple of decades in terms of features and
capabilities. The last notable changes to BASIC were in the last
millennium. UTF-8 has been mentioned before, as have other extensions.
OO is a good fit here, too.
> Logicals are great, if used appropriately.
Logical names are a limited and volatile key value store—discussions of
itemlists and the rest of the mess aside—and are routinely one of the
most misused APIs on the platform.
> OO is overrated ....
On various other platforms, OO is what the OpenVMS-style calling
standard looks like now.
> Primitive? If [BACKUP] "just working" is primitive, then I'm all for
> primitive. It's also "just there".
...
> Available, yes. Part of the base OS distribution? Not that I'm aware
> of. I'm still unable to copy a WEENDOZE system disk.
macOS completely blows away BACKUP. Utterly. Completely. You can
boot the equivalent of Standalone BACKUP directly from firmware and
remotely over the internet, and access and download an installation kit
remotely over the internet, and install it.
The analog to Standalone BACKUP contains tools to back up, to recover,
to initialize disk volumes and to restore a local copy of the system
environment from a network-attached storage server.
Among other options. And the backup tools can restore a complete
backup to a different system, and the backup tools can also restore
(just) the user files to a newly-generated installation.
What Microsoft offers with Windows, I'm not familiar. If you're
pondering copying an install to a different system, that once commonly
ran afoul of Microsoft licensing, but it's been a while since I've
dealt with Windows at this level. And as I've stated before, comparing
against a bad option might look good to a marketeer, but it's a poor
choice as the foundation for an end-user feature discussion, or as the
foundation for a feature-implementation discussion among developers.
Windows has some really good ideas. And some bad ones. The Windows
File History feature does look better than what OpenVMS offers with
BACKUP, though.
> Not VMS Clustering. A few may have shared everything capabilities, but
> most don't.
macOS does, with Xsan. As for network-attached storage and file
shares, that's far more common. OpenVMS offers NFS there, but the rest
of the world is largely using SMB for file sharing.
> RMS is always there on VMS.
Which was a great selling point many years ago.
Now? PostgreSQL and SQLite and MariaDB and MySQL are quite commonly
used, and various platforms integrate one or more of those databases.
> Are you sure about that time? Just how long of a password is needed
> for that? Perhaps one where you fall asleep before finishing typing?
10 to 12+ characters is a typical recommendation against brute-forcing,
with a filter of common passwords customized to local usage.
nómithepri — Niccoló Machiavelli The Prince. Or NóMiThePri1513 if
you're working with older password recommendations.
> Regardless, the time doesn't matter, if it can be done.
Usual calculation is one of cost. How much somebody is willing to
spend on the effort, and whether there are better targets for the
breach either within the organization, or in other organizations.
Modern password hashes can take years to brute-force—and variously much
longer—using higher-end gear. Select argon2, scrypt, bcrypt, etc.
Purdy is far to efficient.
https://gist.github.com/epixoip/a83d38f412b4737e99bbef804a270c40
https://eprint.iacr.org/2016/104.pdf
Somewhat related, it looks like the cost of generating SHA-1 hash
collisions has dropped below a half million dollars or so, thanks to
the cryptocurrency crash.
--
Pure Personal Opinion | HoffmanLabs LLC
More information about the Info-vax
mailing list