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.
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, 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.
References
- The Utah PA-RISC Code Snapshot Original webpage of the project. Mike Hibler (January 1996 [correctly 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)