HPE sets end date for hobbyist licenses for OpenVMS
legacyos.org
legacyos.org
It then took about two months for the thick envelope containing a booklet, some promotional material from a bunch of sponsors, and my membership card to reach me by snail mail. I'd given up hope by then -- the local post service is extraordinarily bad and I assumed they'd lost it.
I still carry my DECUS member card in my wallet, and it's getting harder and harder to explain what it is...
Edit: the world is a very small place. Many after that, it turned out that one of my colleagues at the time was also a DECUS Munich member. He was an extraordinarily bright German physicist, many years older than me, doing research at the same lab where I was working at the time. I don't know how many members DECUS Munich has, or had, but oh boy!
They of course had no idea what I was talking about, and after 5 cycles of (10: explain what I want, let me get someone technical for you, I don’t know what you’re talking about, go to 10)
I finally managed to get someone to point me at the OpenVMS hobbiest programs.
Eventually a managing to get the install media I got the system running and spend 2/3 years coding applications for this weird system, while also working on the Linux port for the alpha chips.
So much fun and positive memories, I’m sad to see the hobbiest program come to an end
I'm looking at you, IBM, and your restrictive z/OS licenses that prevent me from legally using anything newer than MVS 3.8j on Hercules.
As such, and a direct consequence of it, I will never advise my clients to go for anything IBM.
But nah. I am not touching it, until IBM gets their ducks in a row.
I'm not buying one (sadly it's a bit over my impulse buy threshold), but I'd love to play with one.
(Arca Noae is IBM's licensed purveyor of OS/2.)
I have no experience with VMS, but I always thought a similar limitation was weird on Windows. On Unix you can replace an active descriptor with dup2(2). On windows, whatever HANDLEs you have at CreateProcess you are stuck with forever. You can replace the CRT's integer descriptor or SetStdHandle, maybe they have freopen these days too, but these are usernode abstractions. Sometimes I would like to swap the kernel structure backing a HANDLE after it's created.
Not having dup2 is annoying though. With win32 you cannot make the change automatically propagate to child processes. You need to specify the handles in every CreateProcess call. Sometimes that happens deep inside a library and you can't modify it.
Assuming you know exactly what buffering everything in the process does. But you just mentioned a case of something that "happens deep inside a library".
I absolutely agree that dup2 should be possible; I only mentioned that replacing a "live" file descriptor isn't necessarily simple (unless your program is currently quiesced).
Well, if we're talking C, if you have the same libc as all your libraries [not true on Win32, but true on recent popular Unix-like OSs], you should be able to safely fflush and dup2, then call into any applicable library code ...
But anyway, I think the difficulties with it are much larger in the kernel than in user land.
I could very well imagine a scenario in which supporting dup2(2) required more locking and reference counting of kernel objects. I.e. any kernel thread currently operating against the data structure backing a descriptor must have that operation survive a dup2.
dup2() is there as well: https://docs.microsoft.com/en-us/cpp/c-runtime-library/refer...
Oh, and OpenVMS doesn't crash. Like, ever.
Windows Server has some of these features. The NT kernel has the same designer as VMS -- Dave Cutler, a man whose contempt for the Unix design philosophy is well documented.
It was an interesting OS. Some different ideas in there. But the idea that it never crashes is simply false.
At Digital's NCC booth in 1981 or 1982 (I forget) they were showing off clustered VAXes with the nodes named after colors. I jokingly typed ALLOC RED:: and discovered that allocating an entire node to yourself crashed the cluster.
Samba support is awful, though.
For things that OpenVMS is good at, it is REALLY good at. Everything else... is pretty antiquated.
Could poor TCP/IP performance have been a consequence of 'real asynchronous I/O support'?
Berkeley sockets is obnoxious [Example]. But the advanced user can get fine control over it. If you have a use-case that is vulnerable to back-pressure, with Berkeley sockets you can manage that away. Some friendlier API designs would have worse options.
Berkeley sockets is ubiquitous, and there is not much to compare it to. Insights from VMS would be interesting.
--
:Example. A selector indicates that a socket is ready for read/write. But what that actually means is contextual, depending on whether it was created as a client or server socket. You can't attach metadata to the socket to assist with that. Rather, you have to maintain parallel structures.
To put it differently, a modern 10 gig ethernet card likely generates too much traffic to be effectively handled by that code. And if you had more than one 10 gig card in a box, they would contend around that common spin lock.
As a bonus feature, if your VMS TCP/IP stack is configured to send ICMP replies when there is nothing there at the given port, you'll create even more grief because now the stack is busy trying to receive the blast you give it and send out replies too.
This provides an in-depth description of the VCI API which is used to write your own ethernet frame handler. Some descriptions of when IOLOCK8 is held.
https://rtk.mirrors.pdp-11.ru/_vax/openvms.org.ru/vci1.html#...
Funny you should say that. On a VMS build server, I was once cleaning up a build and ran a "DEL [...]* .OBJ;*" (HN auto-formatting doesn't allow me to display this properly without inserting a space after the first asterisk). I started to wonder why it was taking a very long time to complete when it hit me... I had run it from the root-level of DKA0:, not from the build directory. Needless to say, the entire OS had to be restored/rebuilt.
This is easily the biggest mistake I have made in my 20-year career as a sysadmin (or system manager as we call it in the VMS world). Don't get me wrong, I love VMS for many of the reasons you've stated, and more; I wish it was more widely used in the industry. But don't be fooled; you don't need to be on a Unix system to make mistakes of disastrous consequences. They can happen anywhere!
http://h30266.www3.hpe.com/odl/axpos/opsys/vmsos84/BA554_900...
This is the main VMS interprocess communication mechanism.
This is no longer true with io_uring.
The subject came up on StackExchange recently, with someone asking for the meaning of the Wikipedia claim. No-one could find it actually documented. There's documentation of an incident where M. Cutler showed contempt for people who were connected to DEC Ultrix, calling them "sorry excuses for engineers". However the source for that is an anecdote, related in a book years later, told by one of the very people so addressed, who might have had an incentive to thumb xyr nose at M. Cutler.
(Why "M."?)
The Armando Stettner named in https://en.wikipedia.org/wiki/Special:Diff/320396668 and other edits by the same person is the person who told the "sorry excuses for engineers" anecdote about xyrself, recorded in A Quarter Century of UNIX by Peter H. Salus.
The irony is that there is better, more specific, documentation of M. Cutler's opinion of OS/2 (specifically its mutex mechanism) than there is of M. Cutler's opinion of Unix.
I don't consider him a reliable source; he had a reputation for scandal mongering and misrepresentation.
It could still be taken out of context, which was a common tactic of Zachary's when he wanted to misrepresent something. Or the team member the quote purports to be from could have been misunderstanding or misrepresenting or exaggerating Cutler's actual views, and Zachary could have picked that particular team member to quote from because it fit the narrative he was trying to construct, and ignored other team members who were saying different things.
Posix is the junk operating system designed by committee, but given their advertising, I'm not surprised he would confuse the two.
I suppose that is also why this was posted here on HN: being tied to the grace of some commercial entity isn't exactly pleasurable.
BASF's STOP is another example of a very specific purpose operating system geared entirely around security.
Beyond that, AFAIK it didn't have pipes, which was a real limitation for creating, well, pipelines to stream process data far larger than available RAM.
I miss the days, but not the OS.
Coincidentally, a few minutes later, the 780 threw a fatal memory error and shut down. My 17 year old self assumed he had broken the VAX, returning to work (I was an intern) on Monday morning expecting to be fired.
Writing the trojan, which had to correctly implement all the terminal timeouts, responses to ctl-y and so on, was quite a challenge. Required me to understand $QIO, by reading the microfiche copy of the terminal handler BLISS-32 source code.
> In OpenVMS Version 7.1, the DCL PIPE command was introduced.
Ask me how I really know OpenVMS v6 doesn't have pipes.
[1] http://h30266.www3.hpe.com/odl/axpos/opsys/vmsos84/6489/6489...
For all this talk of fat fingering, you failed to mention that a simple purge is all it takes for all that file versioning to disappear...and you don't even have to type out the whole 5 letters. Besides, file versioning != revision control, and there are modern interoperability nuisances with it too.
Perhaps the most annoying thing with VMS is it'll allow you to set default (equivalent to cd for those unfamiliar with VMS CLI) to a directory that doesn't exist without even a courtesy warning. It was so batshit annoying that I wrote my own implementation of cd in DCL to ensure that never happened, along with updating command prompt to reflect current directory (just like Windows cmd) and certain bashisms like ~ for home directory, etc.
> Oh, and OpenVMS doesn't crash. Like, ever.
Yeah, sure...not really.
It had great shared/cluster filesystems, that came standard, that have only been replicated in about the last 5 years in Linux (see Gluster/Ceph/etc), and the Linux equivalents are (still!) less well documented with much higher admin overhead.
The downside was, of course, that all those great features worked only with VMS software and hardware, and only with specific combinations of the above.
While it kind of applies to Windows with C++/.NET Native, UNIX clones are relatively far from it. Although Apple and Google's forks are also moving into that direction.
Then the OS is relatively quite robust, there are several histories of uptimes measured in years with VMS systems.
At one point there was a paid app on Android that ran a VAX emulator. (A port of simh I think.)
A 1GHz phone ran the emulator faster than any real VAX ever was.
I once offered to set up a copy of an old corporate accounting "app" on said emulator for our accounting dept. (They occasionally needed to refer to old reports still available on the old VAX system.). On the chief accountant's own phone.
He said no.
The big downsides are: A) You have to reinstall/recreate the emulator image when it expires - they don't hand out new keys. B) No images for VAX (probably the most popular platform for emulation due to SIMH)
soon there will be an amd64 port, which should make emulation straightforward. Sad to see last vestiges of VAX going away though
If they want to see their whole life's work survive instead of fading into increasing irrelevance, they should just open source it under a 'freemium' model. With a bit of polish/tlc and focus on that area + maybe linux container emulation support to ease compatibility issues, it would make a pretty amazing basis for a 'cloud native' and 'iot' OS in addition to the ways that it's currently used.
BTW, I googled for info about the VSI Hobbyist program and found recent discussions on comp.os.vms! Nice to see someone still using newsgroups.
I wonder how much bitrot and technical debt there is now accumulating in openvms?
Reminds me of IBM and z/os where they are positively hostile. Then they wonder why they can't find young COBOL programmers etc. Especially those with workable familiarity with a platform and ecosystem.
So I don't think it's so much that HPE "doesn't want hobbyists" anymore as it is I'm guessing it's a natural (and probably contractual) part of HPE getting entirely out of the OpenVMS business.
The new company already has a new hobbyist program (although I much preferred how HPE did it): https://training.vmssoftware.com/hobbyist/
If not... VMS PAKs aren't hard to generate on your own. I always appreciated that HP provided a "legal" path, though.
> As we approach the end of the HPE OpenVMS V8.4 standard support period, HPE plans to conclude the HPE OpenVMS Hobbyist license program.
Boilerplate "fuck you and your contributions". Standard HP behaviour.
It looks like HP offloaded OpenVMS and future decisions to VSI, which doesn't appear to be an HP subsidiary. Am I missing something? HPE giving out licenses for another 2 years (end of 2021) is probably what was agreed with VSI.
> Users who wish to avail themselves of HPE OpenVMS long term licenses are encouraged to purchase permanent licenses at standard prices.
It seems like HP still have the ability to issue licenses, and from the VMS Software Inc. FAQ [0]:
> VMS Software, Inc. (VSI) is the sole provider of the OpenVMS operating system and layered products. In 2014, VMS Software, Inc. licensed exclusive rights from Hewlett Packard Enterprise Company (HPE) to develop new versions of the operating system.
Edit: after carefully re-reading, I get where you're coming from: HP sold off the exclusive rights, and the company who has the rights might not want to support hobbyists.
Well, if only HP had included a stipulation that hobbyist licenses remain available in their license terms, especially since "The community support OpenVMS has received over the years has been instrumental in the success of the product".
I expect they may retain the ability to issue licenses but surely not in a way that undermines VSI's business model, like giving them away for free. So they probably aren't allowed to undercut VSI in any way.
They also allow people to run their software under SIMH in the HP-1000 and 2100 emulators.
> > As we approach the end of the HPE OpenVMS V8.4 standard support period, HPE plans to conclude the HPE OpenVMS Hobbyist license program.
> Boilerplate "fuck you and your contributions". Standard HP behaviour.
It is not the first time they did this. It was the same with Apollo :(
Edit: https://github.com/rroart/freevms . It's definitely not big and professional like OpenVMS :-)
update : The reply was: He started a rewrite on L4, but it was too much for one lone guy; he could start it all again if some want to participate.
https://github.com/wazoox/FreeVMS
What's missing:
- L4 Pistachio is unsupported...
- Memory management (VMS style) is to be implemented.
- Drivers.
The website is still online somewhere, I hope to know the URL soon :) I'll add it to the github README.
I spent a few days peering at an old 'fiche reader figuring out how VMS stored user-defined account text in the process control block. We were doing chargeback you see...
The fun bit was the explanation of how a VAX booted VMS. The Cheshire cat was the mascot: the CPU was set up to have real and virtual addresses line up, then the VM bit was turned on, and...presto, no cat.
The term "open source" didn't come about until much later
Nice unique little systems. If I remember right, by the mid 80's the CPU was emulated on a PA-RISC chip. Also, at some point the HP-3000 ran MPE XL and the HP-9000 ran HP/UX using the same hardware. SPL (system programming language .. cr native name there) was .. interesting. I still have some of the OS manuals lying around attic.
I find it distressing there are no emulators for the CISC AS/400 side of the mini-computer tree. At least the 3000 is in SIMH...