PA-RISC information - since 1999

Mach on PA-RISC

Overview

Several ports of the Mach microkernel operating system were developed between the late 1980s and 1990 to PA-RISC. Mach on PA-RISC included research projects at HP and universities but also a few commercial products.

The University of Utah was a center of early PA-RISC operating system research in the 1990s. The Mach microkernel was ported in Utah to PA-RISC with Mach 3 in 1991 and Mach 4 in 1994, both of which were developed in parallel to the more conservative HPBSD port.

Mach was commercialized for workstations eventually with NeXTSTEP on PA-RISC in 1994, and iconic Mac OS X, itself based on Mach and influences from NeXTSTEP. SPP-UX, the Unix variant for Convex Exemplar scalable computers was based on Mach as well, with HP-UX compatibility.

Interest in Mach died down after the 1990s and the ports were suceeded by open source ports in the early 2000s, which borrowed heavily from their code and documentation.

Mach 3

The Mach 3 port to PA-RISC called Mach 3/UX, from 1991 by Bob Wheeler of the University of Utah was one of the various Mach microkernel ports to PA-RISC. This port was supposed to accomplish what the previous, HP-internal HP Tut project aimed for — a proper port of Mach to PA-RISC. The sole target system was the HP 9000/835 server.

Ported were the Mach 3 microkernel with a proof-of-concept AT&T Unix System V kernel (personality) running as user-level server, with the Unix part originally done by CMU. The Mach 3/UX port never got very far, but code wound up later in Mach 4/Lites and probably MK-PA from OSF.

There apparently was a separate University of Utah OSF/1 on PA-RISC research project, using a Mach 3.0 microkernel and OSF/1 1.0.4 server used for threading research.

↑ up

Mach 4/Lites

The University of Utah Flux Research Group ported the original Mach microkernel with a 4.4BSD-Lites server around 1994 to the PA-RISC architecture, based on the work of the Mach 3/UX project, and called it Mach 4/Lites. There was not much support provided and few enhancements made over the years, and it was quickly discontinued in favor of other projects both at Utah University and elsewhere, for example the MkLinux port. The project was seen from the beginning not as a complete operating system but rather as a snapshot for developers.

Mach 4/Lites supported the following hardware:

Taken from the original Utah webpage, modified, with permission from Mike Hibler

Mach 4/Lites supported the PA-RISC 1.1 HP 9000/700 platform with freely distributable source, binaries, and boot image for a complete Mach kernel that includes some of Utah’s then-recent (though not exploited) research, the Lites BSD-based single-server, include directories and libraries, and a complete GNU toolchain for the ELF object format. In addition, there are several other PA-RISC-related device drivers, kernel components and utilities and a fairly complete 4.4BSD-lite user environment. The entire system was self-built on Mach 4/Lites.

The operating system kernel is based on a Mach kernel, derived from CMU’s (Carnegie Mellon University) MK83 release, and is loosely referred to as Mach 4. It contains some initial work done at Utah as part of the ARPA-funded Fast and Flexible Mach Systems work. In particular it contains a prototype implementation of migrating threads and a basic framework for signature-based remote procedure calls, a fundamental component of the presentation/interface work. None of these features is used either by the Lites server or within the kernel itself.

The PA-RISC-specific part includes all the necessary interrupt, exception, and locore system call handling code, a pmap module, and device drivers for the VSC and GSC bus based workstations. The only kernel or server component provided only as a binary library and not in source form is the floating point emulation code which handles operations and exceptional conditions not done in hardware. The libmach and libcthreads libraries are also included with the necessary changes for PA-RISC support.

Also included is additional code never integrated into Mach 4, that was part of Utah’s earlier Mach 3/UX and HPBSD ports or HP OSF/1. The former includes bus configuration and rudimentary device drivers for the CIO bus based workstations and servers as well as a remote kernel/task debugging facility developed by Convex. The latter includes some basic EISA support and alternative LAN drivers.

The Unix which runs on top of the Mach kernel is Lites, an 4.4BSD-lite Berkeley Unix operating system personality provided by the Lites server/emulator. Lites is a user-mode, single-task implementation of BSD Unix which runs on top of a Mach micro-kernel, developed at Helsinki University of Technology HUT in Finland.

↑ up

SPP-UX

Convex SPP1000
© Convex 1994

The Exemplar Operating System, SPP-UX, was a scalable Unix based on Mach developed by Convex for its SPP1000 and SPP2000 mainframe computers with up to 128 or 512 processors. SPP-UX implemented a distributed architecture that was supposed to look like (emulate) HP-UX for developers but was very different below the userland. It probably was released between 1993 and 1999?

The SPP-UX kernel and architecture was based on a Mach 3.0 distributed microkernel and was taken over by HP during the acquisition of Convex and its Exemplar SPP computers. Each hypernode of the SPP computers ran an independent instance of the Mach microkernel There were three (four) main layers for SPP-UX:

  1. Distributed kernel: Based on an enhanced Mach 3.0 microkernel, supposedly OSF 1/AD Mach from OSF RI, that was targeted for coupled SMP systems to support highly parallel applications; message-passing paradigm for NUMA computers
  2. HP-UX compatibility: Second operating system layer compatible to HP-UX, to enable running HP-UX applications on SPP-UX, supposedly emulated HP-UX APIs and ABIs; management of distributed resources, processors, simultaneous users, process scheduler; supported parallel jobs as well as multiprocessing of single-thread
  3. Extensions and features: Central management, open systems and standards like POSIX, specialized programming and development environment
  4. Lastly, the applications: Possible were HP Series 700 (stock HP-UX), C Series and MPP applications

SPP/UX supported the following hardware:

↑ up

HP Tut (Mach 2)

An internal HP research project was HP Tut from around 1988-89 to port HP-UX onto a Mach microkernel. The project apparently never suceeded far and moved on to merging parts of Mach 2.0 under HP-UX 2.0 to get something close to resembling Mach on PA-RISC. HP Tut was the basis for various other porting efforts and PA-RISC research projects within and outside of HP.

↑ up

Chorus

Another micro-kernel operating system was Chorus by INRIA with a development port to PA-RISC done in 1990-1991 at the Oregon Graduate Institute (OGI) for the HP 9000/834 system, based on based on Chorus v3.3/MiX v3.2. Hardware support and functionality was limited, with apparently no network interfaces or disk devices supported and console I/O depending on PDC and IODC routines. Code from various earlier projects was used, including from HP-UX 2.0 and HP Tut, HP-UX on 2.0 Mach. A later project ported Chorus v3.4 to the 9000/720 workstation a popular target for OS/Unix porting efforts at that time.

↑ up

References

↑ up