# Ultrix

Ultrix (officially all-caps ULTRIX) is the brand name of Digital Equipment Corporation's (DEC) discontinued native Unix operating systems for the PDP-11, VAX, MicroVAX and DECstations.

## History

The initial development of Unix occurred on DEC equipment, notably DEC PDP-7 and PDP-11 (Programmable Data Processor) systems. Later DEC computers, such as their VAX, also offered Unix. The first port to VAX, UNIX/32V, was finished in 1978, not long after the October 1977 announcement of the VAX, for which – at that time – DEC only supplied its own proprietary operating system, VMS.
DEC's Unix Engineering Group (UEG) was started by Bill Munson with Jerry Brenner and Fred Canter, both from DEC's Customer Service Engineering group, Bill Shannon (from Case Western Reserve University), and Armando Stettner (from Bell Labs). Other later members of UEG included Joel Magid, Bill Doll, and Jim Barclay recruited from DEC's marketing and product management groups.
Under Canter's direction, UEG released V7M, a modified version of Unix 7th Edition (q.v.).
In 1988 The New York Times reported that Ultrix was POSIX compliant.

### BSD

Shannon and Stettner worked on low-level CPU and device driver support initially on UNIX/32V but quickly moved to concentrate on working with the University of California, Berkeley's 4BSD. Berkeley's Bill Joy came to New Hampshire to work with Shannon and Stettner to wrap up a new BSD release. UEG's machine was the first to run the new Unix, labeled 4.5BSD as was the tape Bill Joy took with him. The thinking was that 5BSD would be the next version - university lawyers thought it would be better to call it 4.1BSD. After the completion of 4.1BSD, Bill Joy left Berkeley to work at Sun Microsystems. Shannon later moved from New Hampshire to join him. Stettner stayed at DEC and later conceived of and started the Ultrix project.
Shortly after IBM announced plans for a native UNIX product, Stettner and Bill Doll presented plans for DEC to make a native VAX Unix product available to its customers; DEC founder Ken Olsen agreed.

### V7m

DEC's first native UNIX product was V7M (for modified) or V7M11 for the PDP-11 and was based on Version 7 Unix from Bell Labs. V7M was developed by DEC's original Unix Engineering Group (UEG); work was done primarily by Fred Canter and Jerry Brenner, with their teammates Stettner, Bill Burns, Mary Anne Cacciola, and Bill Munson. V7M contained many fixes to the kernel including support for separate instruction and data spaces, significant work for hardware error recovery, and many device drivers. Much work was put into producing a release that would reliably bootstrap from many tape drives or disk drives. V7M was well respected in the Unix community. UEG evolved into the group that later developed Ultrix.

### First release of Ultrix

The first native VAX UNIX product from DEC was Ultrix-32, based on 4.2BSD with some non-kernel features from System V, and was released in June 1984. Ultrix-32 was primarily the brainchild of Armando Stettner. It provided a Berkeley-based native VAX Unix on a broad array of hardware configurations without the need to access kernel sources. A further goal was to enable better support by DEC's field software and systems support engineers through better hardware support, system messages, and documentation. It also incorporated several modifications and scripts from Usenet/UUCP experience. Later, Ultrix-32 incorporated support for DECnet and other proprietary DEC protocols such as LAT. It did not support VAXclustering. Given Western Electric/AT&T Unix licensing, DEC (and others) were restricted to selling binary-only licenses. A significant part of the engineering work was in making the systems relatively flexible and configurable despite their binary-only nature.
DEC provided Ultrix on three platforms: PDP-11 minicomputers (where Ultrix was one of many available operating systems from DEC), VAX-based computers (where Ultrix was one of two primary OS choices) and the Ultrix-only DECstation workstations and DECsystem servers. Note that the DECstation and the later DECsystem products (as opposed to DEC's original DECsystem line) used MIPS processors and predate the much later Alpha-based systems.

### Later releases of Ultrix

The V7m product was later renamed to Ultrix-11 to establish the family with Ultrix-32, but as the PDP-11 faded from view Ultrix-32 became known simply as Ultrix. When the MIPS versions of Ultrix was released, the VAX and MIPS versions were referred to as VAX/ULTRIX and RISC/ULTRIX respectively. Much engineering emphasis was placed on supportability and reliable operations including continued work on CPU and device driver support (which was, for the most part, also sent to UC Berkeley), hardware failure support and recovery with enhancement to error message text, documentation, and general work at both the kernel and systems program levels. Later Ultrix-32 incorporated some features from 4.3BSD and optionally included DECnet and SNA in addition to the standard TCP/IP, and both the SMTP and DEC's Mail-11 protocols.
Notably, Ultrix implemented the inter-process communication (IPC) facilities found in System V (named pipes, messages, semaphores, and shared memory). While the converged Unix from the Sun and AT&T alliance (that spawned the Open Software Foundation or OSF), released late 1986, put BSD features into System V, DEC, as described in Stettner's original Ultrix plans, took the best from System V and added it to a BSD base.
Originally, on the VAX workstations, Ultrix-32 had a desktop environment called UWS, Ultrix Worksystem Software, which was based on X10 and the Ultrix Window Manager. Later, the widespread version 11 of the X Window System (X11) was added, using a window manager and widget toolkit named XUI (X User Interface), which was also used on VMS releases of the time. Eventually Ultrix also provided the Motif toolkit and Motif Window Manager.
Ultrix ran on multiprocessor systems from both the VAX and DECsystem families. Ultrix-32 supported SCSI disks and tapes and also proprietary Digital Storage Systems Interconnect and CI peripherals employing DEC's Mass Storage Control Protocol, although lacking the OpenVMS distributed lock manager it did not support concurrent access from multiple Ultrix systems. DEC also released a combination hardware and software product named Prestoserv which accelerated NFS file serving to allow better performance for diskless workstations to communicate to a file serving Ultrix host. The kernel supported symmetric multiprocessing while not being fully multithreaded based upon pre-Ultrix work by Armando Stettner and earlier work by George H. Goble at Purdue University. As such, there was liberal use of locking and some tasks could only be done by particular CPUs (e.g. the processing of interrupts). This was not uncommon in other SMP implementations of that time (e.g. SunOS). Also, Ultrix was slow to support many then new or emerging Unix system capabilities found on competing Unix systems (e.g. it never supported shared libraries or dynamically linked executables); and a delay in implementing bind, 4.3BSD system calls and libraries. The absence of memory-mapped file support was regarded as a particular deficiency with Ultrix in comparison to its competitors in the early 1990s.$^{:50}$

### Last release

As part of its commitment to the OSF, Armando Stettner went to DEC's Cambridge Research Labs to work on the port of OSF/1 to DEC's RISC-based DECstation 3100 workstation. This was released in 1991 with a Mach-based kernel for the MIPS architecture. A port of Ultrix to Alpha was carried out during the initial development of the Alpha architecture, but was never released as a product. Later, DEC replaced Ultrix with OSF/1 on Alpha, ending Unix development on the MIPS and VAX platforms.
The last major release of Ultrix was version 4.5 in 1995, which supported all previously supported DECstations and VAXen. There were some subsequent Y2K patches.

## Application software

WordMARC, a scientifically oriented word processor, was among the application packages available for Ultrix.
The following shells were provided with Ultrix:
* C shell
* BSD Bourne Shell
* System V Bourne Shell
* KornShell