Mach on PA-RISC
Overview
Several ports of Mach microkernel operating systems to PA-RISC were developed between the 1980s and 1990s. Mach on PA-RISC was developed mainly at the University of Utah and in HP research projects but was also commercialized in products like SPP/UX and NeXTSTEP.
The University of Utah was a center of PA-RISC operating system research in the 1990s, Mach 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 later 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. Interest in Mach died down after the 1990s and ports were suceeded by open source projects in the early 2000s, which borrowed from their code and documentation.
Mach 3
The Mach 3 port to PA-RISC was called Mach 3/UX, developed by Bob Wheeler of the University of Utah around 1991. It was one of the first 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 was 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. Mach 3/UX never got very far, but code wound up later in Mach 4/Lites and probably MK-PA from OSF. There were no public releases known.
There was apparently another, separate University of Utah research project for OSF/1 on PA-RISC with a Mach 3.0 microkernel and OSF/1 1.0.4 server used for threading research.
Mach 4/Lites
The University of Utah ported the original Mach microkernel with a 4.4BSD-Lites server on top, released as Mach 4/Lites.
It was based on the work of the Mach 3/UX project and developed and first released in 1994.
It took the Mach microkernel with a Unix server
on top – in this case Lites for 4.4BSD Unix.
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.
Mach 4/Lites was the mid-1990s public and freely available offspring of earlier, closed efforts of OSF/1 from the Open Group and HPBSD from the University of Utah. It was never a fully functional operating system and more of a coding and research project, meant to open source Mach and PA-RISC developments.
Supported hardware
Mach 4/Lites supported PA-RISC 1.1 HP 9000/700 workstations from the early to mid-1990s. In addition, there are several other PA-RISC-related device drivers, kernel components and utilities and a fairly complete 4.4BSD-lite user environment.
- HP 9000 705, 710, 720, 730, 750 based on PA-7000 processors
- HP 9000 715, 725, 735, 755 based on PA-7100 processors
- HP 9000 712 (with serious issues) and 715 based on PA-7100LC processors
- Devices: 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
Releases
Mach 4/Lites was released in Alpha status with freely distributable source, binaries, and boot images. This was for a complete Mach kernel that includes some of Utah’s operating system research, the Lites BSD-based single-server, include directories and libraries, and a complete GNU toolchain for the ELF object format.
The following releases
were available as source from FTP mirrors.
- Mach 4/Lites (alpha): Support for few PA-RISC 1.1 workstations (1994)
- Mach 4/Lites (snapshot2): Fixes for HP-UX compatibility for Netscape 1.2, with some late breakage in newer systems (1995)
- Mach 4/Lites (snapshot3): probably released but not sure (1995)
Source of Mach 4/Lites were used extensively in newer BSD operating systems such as OpenBSD/hppa during their early development. The entire Mach 4/Lites system was self-built on Mach 4/Lites. Sources and binary releases are still available at mirrors, although performance and stability can be lacking.
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)
HP Tut was an internal HP Laboratories research project in 1988-89 to port early HP-UX Unix onto a Mach microkernel, which apparently never suceeded far with that effort. It moved on to merging parts of Mach 2.0 microkernel under a HP-UX 2.0 userland (server) to get something close to resembling Mach on PA-RISC. HP Tut was the basis for various other porting efforts and PA-RISC Mach research projects.
Very few information is left on HP Tut, with some machine-dependent sources apparently having been used by the Chorus port to PA-RISC.
Chorus
Chorus was an early micro-kernel operating system, started as research project by the French research institute INRIA. It was commercialized in the 1980s by a spinoff, Chorus Systems. Chorus was ported to a few RISC architectures and used parts of System V Unix userland. Apparently, it was used by Unisys for a while in the 1990s, before Chorus was bought by Sun.
A development port to PA-RISC was done between 1990 and 1991 at the Oregon Graduate Institute (OGI) for the HP 9000 834 system, based on Chorus v3.3/MiX v3.2. The port was supported by HP and Chorus and done by two PhD students with some help.
For the PA-RISC port at OGI, none of the team members had performed an operating system port before, neither did they have any experience working with the PA-RISC or Chorus.
Later on, an attempt to port Chorus/MiX V.3.2 (v3.4 nucleus) to an HP 9000 720 workstation was made at OGI, the 720 being a popular target for OS/Unix porting efforts at that time.
Hardware support
Hardware support and functionality of Chorus on PA-RISC 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, Mach 2.0.
Releases
Chorus on PA-RISC was never released publically, since it used HP source code from HP Tut (Mach) and HP-UX and the USL.
The following releases
were available as source from FTP mirrors.
- CHORUS v3.3: Support for HP 9000 834 (1991)
- Chorus/MiX V.3.2: Support for HP 9000 720 (1994?)
Documentation
- The Utah PA-RISC Code Snapshot Original webpage of the project. Mike Hibler (2002: University of Utah)
- ftp://flux.cs.utah.edu/flux/mach/ALPHA/ (HTTPS mirror) contains the snapshots sets for a complete systems, University of Utah (1994-2002) lip6.fr
- Installation on HP 700s Utah PA-RISC Code Snapshot installation instructions. Mike Hibler (University of Utah.)
- Frequently Asked Questions about the Utah PA-RISC Code Snapshot Mike Hibler (September 1995: University of Utah)
- HPE Spectrum, comp.arch, Bob English, Oct 17, 1990
- Exemplar Operating System (SPP-UX), Hewlett-Packard Company (1997: mirror accessed January 2024) archive.org
- Convex Datasheet: Exemplar Operating System (SPP-UX), CONVEX Computer Corporation (1995: mirror accessed January 2024) archive.org
- Lites - The 4.4 BSD Lite Server, Helsinki University of Technology (1997, Johannes Helander) archive.org
- Lites - The 4.4 BSD Lite Server, 1994 OSDI BOF (1994, Johannes Helander) archive.org
- Porting Chorus to the PA-RISC: Project Overview Porting Chorus to the PA-RISC: Project Overview, 1992 Oregon Graduate Institute of Science & Technology (1994, J. Walpole, J. Inouye et al.) pdxscholar
- Porting Chorus to the PA-RISC: Overall Evaluation, 1992 Oregon Graduate Institute of Science & Technology (1994, J. Walpole, J. Inouye et al.) pdxscholar
- comp.os.chorus Frequently Asked Questions (FAQ), 1998, FAQS.org pdxscholar
- Chorus Ports: comp.os.chorus, Jon Inouye Nov 29, 1994, google groups
- PA-Chorus, Oregon Graduate Institute (OGI) (1999 archive) archive.org
- Modularity and Interfaces in Micro-Kernel Design and Implementation: A Case Study of Chorus on the HP PA-RISC, Proceedings of the USENIX Workshop on Micro-Kernels and Other Kernel Architectures 1992