OpenPA.net
PA-RISC information - since 1999

Mach on PA-RISC

The University of Utah was a center of early PA-RISC operating system research in the 1990s – projects at that time were ports of the Mach microkernel 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.

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 was commercialized eventually with NeXTSTEP on PA-RISC in 1994, and iconic Mac OS X, itself based on Mach and influences from NeXTSTEP.

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, and 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

References

↑ up