# Software Engineers Handbook/Operating Systems/VMS

Formatting to be added at a later time.
VMS Is an operating system introduced in 1978 by Digital Equipment Corporation which ran on their VAX Minicomputer. The VAX was the upgrade to the successful PDP-11. Its processor (VAX-11/780) supported five different levels of operation: 1. PDP-11 emulation mode. In this mode the processor would run PDP-11 code in a native environment. 2. User mode. This is the mode in which applications would work. They could not affect higher levels, other process spaces, etc. 3. Supervisor mode. This is the level at which the command line interface (CLI) also nowadays referred to as a shell would run. 4. Executive mode. This mode provided enhanced and lower level access to file and record management systems. 5. Kernel mode. In this mode running code had full access to the system.
By making the processor protect the level of the running process, true interprocess security and buffer overrun exploits became impossible.
The VAX-11/750 offered a scaled-down version of the same. The VAX-11/730 offered an ever lower version, and finally the VAX 11-720 was the lowest of the low.
Following this successful series, DEC released the VAX-8600 series (later upgraded to include the 8650).
DEC's first VMS supporting systems that did not do PDP-11 emulation mode were the 8700/8800 series, and eventually an entire line of MicroVAXen, VAX workstations ("VAXstations"), etc.
VMS relied on the multiple levels of access to automatically prevent exploits the rest of the world had yet to encounter.
VMS used memory mapping with virtual page tables (now used in Windows 2000, and Windows XP) with page table entries ("PTEs") indicating the virtual to physical page mapping, status (paged out, paged in, valid, ready to read or write, etc.) and when a process ran out of the amount of memory it was allowed to occupy (its "working set") it would put its memory into the swapfile on disk, a process called "swapping."
Device drivers started simple in the PDP-11 emulation days and became two-layer in the 90s. Drivers that had multiple physical layers were broken into "port/class" drivers. A class driver was a higher layer driver that implemented the common functionality across the differing ports. A port class driver specifically addressed a particular port type. Exemplifying this is the TTY driver, which was recoded as a CLASS (serial terminals) driver and PORT drivers (serial port, telnet port, console port, port over DEC's LAT protocol, etc.)
While the VMS CLI (DCL, "Digital Command Language") was not multitasking per process, a software product produced by David Kashtan and Kenneth Adelman called "Eunice" offered a replacement CLI ("shell") for VMS which provided Unix-functionality. Pipes, redirection, forking, etc., were all available in a standard shell. This product was bought by The Wollongong Group.
VMS was the first major OS to actually restrict its users and processes when resources were still available. This prevented unexpected DoS due to lack of resources, and yet led to many efficiency discussions about best use of resources.
VMS was ported to the Alpha architecture in 1991, and DEC entered the 64 bit age. They shortly collected a lot of money from Microsoft as they discovered Windows/NT had a VMS4.0 kernel equivalent in it, courtesy of recently departed DEC Engineer Dave Cutler. DEC was purchased by Compaq in 1998. In 2002 Compaq and Hewlett-Packard merged.
Banks, hospitals, and other highly mission-critical application users rely on OpenVMS daily in 2008.