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
- HoffmanLabs is one of the best sources of information about OpenVMS.
- OpenVMS Hobbyist Portal where you can find help and lot of people with OpenVMS experience.
- comp.os.vms group to ask questions and discuss everything related to OpenVMS.
- HoffmanLabs FAQ is one of the best and most comprehensive FAQs.
- Commands FAQ is an easy starting point for new OpenVMS users.
- An OpenVMS Programming FAQ
- OpenVMS: VAX + AXP + IA64 contains a lot of information about OpenVMS and historical aspects of its development.
- VMS Software Inc.
- Community license for X86-64
Also some useful manuals which could be easily found:
- OpenVMS DCL Dictionary.
- OpenVMS User's Manual.
- OpenVMS System Manager's Manual.