AA–OVMX2–TE · V0.2

Software Product Description · Open Source

Computing in the
VMS tradition.

OpenVMX brings the VMS way of working to modern hardware — the DCL command language, RMS record management, system services, and a real kernel executive. Open source, built from public specifications, and packaged to boot.

DCL · RMS · SYS$ services vms.ko executive via /dev/vms boots on QEMU
1.0

A real system, not an emulator skin

OpenVMX rebuilds the VMS environment as its own software — the command language, the file system, the system services, the executive — implemented from public specifications and released as open source.

The layers you know from VMS are here as their own libraries, built in dependency order: the freestanding syscall floor, process control blocks with ASTs and event flags, the SYS$ / LIB$ / STR$ run-time, logical-name management, an ODS-2 file system, and Record Management Services on top.

Above them sits DCL — the Digital Command Language shell — matching VMS behavior rather than bash, down to $ prompts, SHOW verbs, and VMS-format file specifications.

Underneath, a kernel module — vms.ko — provides the VMS executive: locks, event flags, ASTs, and access modes as genuinely shared system state, reached from userspace through /dev/vms. When the executive isn't present, services fail honestly with SS$_NOSUCHDEV — never a per-process fake reporting success.

2.0

System components

Each facility is a discrete library or module — you can read it, build it, and test it on its own.

SYS$ / LIB$ / STR$

System services & RTL

VMS run-time: descriptors, condition handling, logical names, event flags, ASTs. Every API returns a VMS status code — odd is success.

DCL

The DCL shell

Lexer, parser, executor, and built-in verbs that follow VMS DCL — not a bash reskin. External utilities dispatch the VMS way.

RMS · ODS-2

Records & files

FAB / RAB / NAM / XAB record management over an ODS-2 volume that a real VAX can MOUNT and read.

vms.ko

Kernel executive

The distributed lock manager, event flags, ASTs and access modes as shared system state — reached through /dev/vms.

IMGACT · LINK

Native toolchain

A VMS-faithful image activator and linker with symbol-vector activation — the road to building OpenVMX from inside OpenVMX.

SCS · NISCA

Cluster interop

An implementation of the VMScluster wire protocol, so OpenVMX nodes can join and serve storage as a cluster. In active research.

3.0

Supported architectures

Digital shipped VMS across four instruction sets in its lifetime. OpenVMX is building toward the same reach — including Alpha, the 64-bit machine Digital designed VMS's future around.

Table 3–1 · Architecture support matrix
ArchitectureWidthLineageStatus
x86-6464-bitPrimary development target SUPPORTED
aarch6464-bitARM · second first-class target SUPPORTED
Alpha / AXP64-bitDEC Alpha — first-class IN PROGRESS
VAX32-bitWhere VMS began ASPIRATIONAL

Itanium (IA-64) is out of scope. Alpha is where OpenVMX proves its 64-bit behavior — the architecture VMS was rebuilt around when it went 64-bit.

4.0

Build it, boot it

One runtime target: the real-kernel / QEMU path. Clone the source, build the bootable image, and bring up an OpenVMX VM.

terminalsh
# clone the source
$ git clone https://github.com/3dl-dev/vms.git && cd vms

# build the bootable distribution (all deps containerized)
$ docker build -f Dockerfile.bootable -o dist .

# boot OpenVMX as a QEMU VM — vms.ko is the executive via /dev/vms
$ ./distro/boot/run-qemu.sh dist/vmlinuz dist/initramfs-ovmx.cpio.gz

# at the login banner:  SYSTEM / MANAGER
$ SHOW SYSTEM

Prefer to work at the library level? A standard cmake -B build -DBUILD_TESTS=ON tree builds the shared libraries and the test suite with ctest. Full instructions live in docs/building.md.