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.
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:
- 705, 710, 720, 730, 750 based on PA-7000 processors
- 715, 725, 735, 755 based on PA-7100 processors
- 712 apparently with serious issues, 715 based on PA-7100LC processors
- Internal single-ended and fast-wide different SCSI drives and tapes, RS232 serial, builtin Ethernet, GRX and CRX graphicss, Artist on 712/715 probably, HIL and PS/2 keyboard/mouse
- Unsupported: FDDI networking, EISA expansion cards and devices, parallel ports, audio, teleshare port on 712, floppy drives and all other 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.
SPP-UX
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:
- 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
- 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
- Extensions and features: Central management, open systems and standards like POSIX, specialized programming and development environment
- Lastly, the applications: Possible were
HP Series 700
(stock HP-UX),C Series
andMPP
applications
SPP/UX supported the following hardware:
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.
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.
References
- The Utah PA-RISC Code Snapshot Original webpage of the project. Mike Hibler (January 1996 [December 2002]: University of Utah. Accessed 21 March 2008)
- ftp://flux.cs.utah.edu/flux/mach/ALPHA/ (FTP) contains the snapshots sets for a complete systems, University of Utah (1994-2002. Accessed 21 March 2008)
- Installation on HP 700s Utah PA-RISC Code Snapshot installation instructions. Mike Hibler (n. d.: University of Utah. Accessed 21 March 2008)
- Frequently Asked Questions about the Utah PA-RISC Code Snapshot Mike Hibler (September 1995: University of Utah. Accessed 21 March 2008)
- HPE Spectrum, comp.arch, Bob English, Oct 17, 1990
- Exemplar Operating System (SPP-UX) (archive.org mirror), Hewlett-Packard Company (1997: mirror accessed January 2024)
- Convex Datasheet: Exemplar Operating System (SPP-UX) (archive.org mirror), CONVEX Computer Corporation (1995: mirror accessed January 2024)