OpenVMS - saprykin/plibsys GitHub Wiki

Configurations

Version Compilers Status Tests
8.4 (FreeAXP) HP C 7.3-009 Compiled 25/28
8.4-1H1 (IA-64) VSI C V7.4-001 Compiled 25/28
9.2-2 (x64) VSI C V7.5-009 Compiled 25/28

About

OpenVMS is a proprietary operating system originally developed by the DEC, continued by Compaq and HP. For now it is developed and distributed by VMS Software, which consists of veteran developers from the DEC. OpenVMS has several unique features like clustering, integrated database support (see RMS), high security level, multiple programming languages support and more, which makes it still popular among enterprise customers.

Porting

OpenVMS supports several hardware architectures:

  • VAX
  • Alpha
  • Itanium (IA64)
  • X86-64

VAX platform is not supported by the library for several reasons:

  • No support for 64-bit integer types.
  • Lacks reliable threading support (i.e. kernel threads).
  • Quite old compilers.
  • Almost zero support: no POSIX calls available for Alpha and IA64 versions, barely updated (if any) by HP or VMS Software.

One of the major problems to port software on OpenVMS is a different environment which is not a UNIX-like. It has its own command-line interpreter called DIGITAL Command Language (DCL) which is completely different from the bash. It is possible to install the bash and some other GNU utilities and libraries through the GNV which can make your life a bit easier. But it also creates a huge dependence for building software.

According to numerous discussions regarding CMake on OpenVMS for now there was no success in bootstrapping CMake on this system. That's why we have to use our own DCL build script to compile the library and tests.

Though OpenVMS starting from version 8.4 has support for POSIX and System V named semaphores, they are actually broken, which is an essential thing for several library modules. Because of that, the following modules of the library are broken (but compiled fine):

  • Named semaphores.
  • Shared memory.
  • Shared memory buffer.

Building

Refer to build instructions for detailed information about building the library on OpenVMS.

Community license

VMS Software provides a community license for the x86-64 port, which includes a VMDK image for virtual machines. One should refer to installation guide in order to start using the image. It is important to properly configure a terminal emulator like Putty, refer to the tips given in OpenVMS Boot Manager User Guide. When using VirtualBox on Windows, make sure do disable Hyper-V completely if there are any issues with the XSAVE instruction.

References

Also some useful manuals which could be easily found:

  • OpenVMS DCL Dictionary.
  • OpenVMS User's Manual.
  • OpenVMS System Manager's Manual.