Installing VMS on Your RaspberryPi

What is more pure than young love? And my first love in high school was for VMS, Digital Equipment Corporation's operating system from the late 70's. Sure, Unix (tm) and it's derivatives are the work-horses of modern computing, but VMS was the first "real" operating system I used. Using VMS in the modern era makes me a bit of an anachronism, but there were plenty of features I still kind of miss from the old days:

  1. A sane default editor. Sure, I love emacs and vi, but you have to admit, their obscure key-commands create a bit of a learning curve. VMS's default edit command used arrow keys to move around and saved changes by default. (okay, this is more of a nit than a real feature, but still...)
  2. Versioned files. VMS's file system, FILES-11, allowed you to save multiple revisions of the same file. When you created a file with an existing name, the default behavior was to create a new revision. If you made a total hash of things, reverting was as simple as deleting the most recent version.
  3. Pervasive Help Files. Help files were managed centrally and IMHO thought out a little better than the Unix man page system. Also, the command to get help was help, which is more intuitive than "man."
  4. Logical directories spanning devices. While not as "pure" as "union directories," it was possible to set the current working directory to a list instead of a single location in the file system. This had the effect of letting many commands search for files in multiple directories.

But the most important reason for using VMS these days is it's fun to challenge your status quo and try new things. And besides, I had a lot of fun with some of those old MicroVAXes, so this brings me back to a fun time in my life.

Setting up a VMS system is relatively easy (even for a novice.) The good people at trailing-edge.com distribute an open source VAX Emulator (and btw, the simh emulator emulates many other old systems.) Hewlett-Packard, the current owners of VMS, offer downloadable VMS install media free of charge for non-commercial hobbyists. And Phil Wherry has put together a really top-knotch guide for installing VMS on the simh emulator.

So if you want to join me in VMS-style retrocomputing, it should be as easy as downloading and installing the emulator, requesting a hobbyist license from HP and following Phil's install instructions.

A few things have changed since Phil wrote his install guide, so here are a few notes you may want to read to avoid frustration:

  1. Don't use a wireless network as your primary network interface. Unless you use the TUN/TAP bridge described in the 0readme_ethernet.txt file in the simh source distribution, you may encounter issues placing your wireless network device into promiscuous mode.
  2. HP no longer requires you to buy physical install media; you can download the files you need to install VMS directly from the web. You still need to enroll as a hobbyist with HP, but the process is a little easier and takes considerably less time than it used to. HP requires you to be a member of a properly sanctioned users group before handing out licenses, but if you've forgotten your DECUS subscriber information (like I have) you can apply for a free online account with DECUSERVE.ORG. Once you're signed up with them, head over to openvms.org for more info on how to create the account.
  3. After you register, you'll get a license file from HP. Search for the VAX-VMS entry; it should look like this:
    1. $! This PAK issued on DD-MMM-YYYY HH:MM
    2. $ Call CheckLicense "VAX-VMS" "DD-MMM-YYY"
    3. $ IF ($STATUS .EQS. "%X107880D3") .OR. ($STATUS .EQS. "%X107880CB")
    4. $ THEN
    5. $!
    6. $ LICENSE REGISTER VAX-VMS -
    7. /ISSUER=DEC -
    8. /AUTHORIZATION=HOBBYIST-VA-KEYxxxxx-xxxxxx -
    9. /PRODUCER=DEC -
    10. /UNITS=0 -
    11. /TERMINATION_DATE=DD-MMM-YYYY -
    12. /ACTIVITY=CONSTANT=100 -
    13. /CHECKSUM=y-yyyy-yyyy-yyyy-yyyy
    14. $!
    15. $ LICENSE DISABLE VAX-VMS/LOG/PRODUCER=DEC/ALL
    16. $ LICENSE UNLOAD VAX-VMS/LOG/PRODUCER=DEC
    17. $ LICENSE ENABLE VAX-VMS/LOG/PRODUCER=DEC/AUTH=HOBBYIST-VA-KEYxxxxx-xxxxxx
    18. $ LICENSE LOAD VAX-VMS/LOG/PRODUCER=DEC
    19. $ ENDIF
    20. $ !
    21. When it's time to enter the license info during installation, enter only the fields that are listed in the license:
    22. Issuer [DEC]: DEC
    23. Authorization Number []: HOBBYIST-VA-KEYxxxxx-xxxxxx
    24. Product Name []: VAX-VMS
    25. Producer [DEC]: DEC
    26. Number of Units [1]: 0
    27. Version []:
    28. Product Release Date []:
    29. Key Termination Date []: DD-MMM-YYYY
    30. Availability Table Code []:
    31. Activity Table Code []: CONSTANT=100
    32. Key Options []:
    33. Include Node []:
    34. Product Token []:
    35. Hardware-Id []:
    36. Checksum []: y-yyyy-yyyy-yyyy-yyyy

At the end or the process, you should have a perfectly serviceable VMS System. Enjoy!