Research PA-RISC Operating Systems
With input from Mike Hibler
Several other operating systems have been ported to the PA-RISC platform over the time. Most of them only reached development state and have long been not maintained anymore. Documentation is rare and getting sources or distributions even more so. These systems were based on four kernels/platforms:
- Mach (CMU) microkernel
- Mach 3/UX, based on Mach 3 with AT&T System V Unix on top; from the University of Utah
- Mach 4/Lites, based on Mach 4 with a port of 4.4BSD-lites Unix on top; from the University of Utah
- MkLinux, based on Mach 3 with Mach 4 extensions with Linux 2.0 on top; from OSF RI
- HP Tut, based on Mach 2 with HP-UX 2.0 on top; from HP Labs
- OSF Mach microkernel — OSF/1
- HP OSF/1 based on Mach 2 with OSF/1 1.0 on top; from HP/ex-Apollo
- MK-PA (OSF/1), based on OSF Mach 3 with OSF/1 1.3 on top; from OSF RI
- BSD: HPBSD, based on a modified 4.3BSD with 4.4BSD modifications; from the University of Utah
- Chorus microkernel (INRIA), similar to Mach: Chorus, based on Chorus v3.3/v3.4 with System V Unix (MiX) on top; from Oregon Graduate Institute
Only MkLinux and Mach 4/Lites were publically available, the other systems all required proper licenses (which almost nobody had) for the various commercial sources contained in them. All of these ports were basically suceeded by the current open source systems — PA-RISC Linux, OpenBSD/hppa and, maybe, NetBSD/hp700.
For the sake of clarity of the development process, a timeline of these projects:
| Year | HP | Utah | OSF | Other |
|---|---|---|---|---|
| 1988 | HP Tut | |||
| 1989 | HP Tut | HPBSD | ||
| 1990 | HP OSF/1 | HPBSD | Chorus (835) | |
| 1991 | HP OSF/1? | Mach 3/UX | Chorus (720) | |
| 1992 | ||||
| 1993 | HPBSD 2.0 | |||
| 1994 | Mach 4/Lites | MK-PA 6.0 | (NeXTSTEP 3.3) | |
| 1995 | MK-PA 6.3 | |||
| 1996 | Mach 4/Lites II | MK-PA 7.x | ||
| 1997 | MkLinux |
HPBSD
Architecture: 4.3/4.4BSD
Released: 1989 (original work), 1993 (HPBSD 2.0)
Mike Hibler’s HPBSD was the first non-commercial OS for the PA-RISC platform. Developed at the University of Utah, it grew out of a port of 4.3BSD to the 68k-based HP 9000/300 and 400 systems. Since HPBSD contains AT&T (Unix) and HP (HP-UX) source code it was never freely available. Organizations with the necessary license agreements with HP and AT&T were able to obtain bootable releases but distribution outside of University of Utah was very limited. Active work mainly happened during the early and mid-1990s, with only small fixes commited afterwards.
HPBSD is an original
4.3BSD with additions from 4.4BSD and local (Utah) modifications.
Summarized:
- 4.4BSD C library and include files
- 4.4BSD filesystem code (includes Macklem/CSRG Berkely NFS; FFS; MFS)
- 4.4BSD networking code
- 4.3BSD filesystem layout
- 4.3BSD VM system
Supported Hardware
- 705, 710, 720, 730, 750 (based on PA-7000 processors)
- 715, 725, 735, 755 (based on PA-7100 processors)
- 712, 715, 725/100 (based on PA-7100LC processors)
- J200, J210[XC], C100, C110 (based on PA-7200 processors)
- Early HPBSD: HP 9000/835 server (PA1.0 NS-1 processor) — support dropped later on after the advent of PA-RISC 1.1 systems
- SCSI (internal single-ended, internal fast-wide-differential, GSC based fast-wide-differential, and EISA fast-differential) drives and DAT tapes, RS232 serial, builtin Ethernet, SGC FDDI board, Video (GRX, CRX and Artist), HIL and PS/2, audio
History
Taken from the original HPBSD webpage, and modified, with permission from Mike Hibler
HPBSD for 68k-based systems was born in 1987 when Mike Hibler started a port of 4.3BSD to the HP 9000/320 and 350 workstations at the University of Utah. Major development lasted until about 1991 with the final addition of Motorola 68040 support.
In the fall of 1989, Jeff Forys started work on a HP 9000/800 port based on the hybrid HP-UX/Mach kernel called Tut done as an experiment at HP Labs. By around February 1990 HPBSD was running on an 9000/835 and later that year was running solidly on the PA-RISC. For a short period of time in 1989-90, Mt Xinu also worked on the PA-RISC port and produced the first usable part of it, the boot loader, late in 1989. HPBSD used this boot loader. In 1990 another Mach project was spun off of HPBSD — the Mach 3/UX single server port for the 9000/835 sponsored by HP and primarily done by Bob Wheeler. Starting in May 1991, Leigh Stoller ported HPBSD to the HP 9000/720 workstation, after which support for PA-RISC 1.0 and the 9000/800 platform was dropped.
The last major development to HPBSD was the addition of the 4.4BSD kernel filesystem and networking code and the 4.4BSD ANSI-compliant C library. Jeff Forys started this in April 1992 and by early 1993 all of the University of Utah’s HPBSD machines had been converted. This version was known as HPBSD 2.0. Since this merge included the NFS implementation done by Rick Macklem, all Sun encumbered code could be eliminated. In April 1993, a semi-formal release of HPBSD 2.0 was made to the 2-3 sites which had the necessary agreements with HP (necessary to obtain the PA-RISC specific code). Since that time, active development of HPBSD had pretty much stopped. As of Summer 1999, there were less than ten HPBSD machines left: one 68k and the rest PA-RISC. The last significant efforts were to bring HP-UX compatibility up to 10.20 (to run the JDK) and to port a 3Com EISA 100Mbit ethernet driver.
References
- HPBSD: Utah’s 4.3bsd port for HP9000 series machines Original homepage of the HPBSD project. Mike Hibler (July 1999: University of Utah). Accessed 04 Oct 2005.
Mach 3/UX
Architecture: Mach 3/System V Unix
Released: 1991 (development)
One of the various Mach microkernel ports to PA-RISC (in this case Mach 3) was done in 1991 by Bob Wheeler of the University of Utah. This port should accomplish what the HP Tut project probably failed — a proper port of Mach to PA-RISC. The sole target system at the time was the HP 9000/835 server.
Ported were the Mach 3 microkernel, with a proof-of-concept
AT&T-encumbered
Unix (System V) kernel (personality
) running as user-level server (the Unix
part was originally done by CMU).
The Mach 3/UX port never got very far, but code wound up later in the
Mach 4/Lites port also done at Utah University and
probably the Mach 3/OSF/1 (MK-PA) port from OSF.
It is unclear if there was a separate University of Utah OSF/1 to PA-RISC porting effort (Mach 3/OSF/1) — some sources suggest there was a short-lived project to port Mach 3.0 and OSF/1 1.0.4 to PA-RISC.
Mach 4/Lites
Architecture: Mach 4/4.4BSD-lite
Released: 1994 (original), 1996 (snapshot II)
The University of Utah Flux Research Group ported the original Mach microkernel (based on the
work of the Mach 3/UX project) with a
4.4BSD-Lites server on it to the PA-RISC architecture, under the direction of Jay Lepreau.
The operating system was developed in the early to mid-1990s and released
from 1994-1996.
There was never real support for and no enhancements made, thus it was quickly discontinued in favor of other
projects (both at Utah University and elsewhere — for example the
MkLinux port and others).
The project was seen from the beginning not as a complete operating system but rather as a snapshot for developers:
“We refer to this as a snapshot and not a release as the provided code is not robust, does not provide a complete application environment, contains minimal bootstrap capability, and has practically no documentation. Hence, we recommend that you do not run this, unless you are a hard-core O.S. hacker who has an interest in, and knowledge of, the PA architecture. Later true releases, with help from you O.S. hackers, will allow the more faint-at-heart to run an alternative O.S. on their HP workstations.”
Some parts of the PA-RISC source code of it were later actually useful in the ports of modern open source operating systems; OpenBSD/hppa used parts of the source code as reference and the later relicensed HP spmath floating point emulation library.
Supported Hardware
- 705, 710, 720, 730, 750 (based on PA-7000 processors)
- 715, 725, 735, 755 (based on PA-7100 processors)
- 712 [apparently last-minute changes to the snapshot prevent it from running/booting correctly on the otherwise supported 712s], 715 (based on PA-7100LC processors)
- Internal single-ended and fast-wide different SCSI drives and tapes, RS232 serial, builtin Ethernet, GRX and CRX graphics (Artist on 712/715 probably too), HIL and PS/2 keyboard/mouse
- Unsupported: FDDI networking, EISA expansion cards (and devices), parallel ports, audio, teleshare port (on 712) and floppy drives
Details
Taken from the original Utah webpage, and modified, with permission from Mike Hibler
Mach 4/Lites features support for the PA-RISC 1.1 (HP 9000/700
) platform with the following components:
freely distributable source, binaries, and boot image for a complete Mach kernel that includes some of Utah’s
then-recent research (though not exploited), 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.
A fairly complete 4.4BSD-lite user environment is also provided. The entire system was self-built on Mach 4/Lites.
The operating system kernel is based on a Mach kernel, with the source
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 RPC (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 portion includes all the necessary interrupt, exception, and system call handling code
(locore
), 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 source is HP-proprietary, and the distributed spmath library
could not be used for commercial purposes (later changed).
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. The code is either part of Utah’s earlier HP 9000/800 series PA-RISC 1.0 Mach 3/UX, HP 9000/700 OSF/1 ports (HP OSF/1 by HP) or Utah’s 4.3/4.4 hybrid BSD system (HPBSD). 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. It was developed by Johannes Helander 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 Mar 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 Mar 2008.
- Installation on HP 700s Utah PA-RISC Code Snapshot installation instructions. Mike Hibler (n. d.: University of Utah). Accessed 21 Mar 2008.
- Frequently Asked Questions about the Utah PA-RISC Code Snapshot Mike Hibler (September 1995: University of Utah). Accessed 21 Mar 2008.
MK-PA (OSF/1)
Architecture: Mach 3/OSF/1
Released: 1994, 1995, 1996
The OSF RI (Open Group Research Institute) did a port of their OSF/1 Unix to PA-RISC — they ported OSF/1 1.3 onto Mach 3, with OSF/1 running as a server on top of the Mach microkernel. The results of the porting efforts were OSF MK6.0-PA (1994), MK6.3-PA (July 1995), MK7-PA (Jan 1996) and MK7.x-PA (March 1996).
Hardware support focused on the newer PA-RISC 1.1 700s workstations, support for the 800s
PA-RISC 1.0 servers was dropped (from the original Mach 3/UX code base).
MK-PA had as its main objectives:
establish the PA-RISC as an OSF RI reference platform,
performance parity between HP-UX and MK based system,
HP-UX binary compatibility,
high-speed networking capability
(and others).
Performance tests showed that for low to moderate loads
the performance of MK-PA
and HP-UX was similar while under heavy loads MK-PA achieved better results, probably
due to VM enhancements.
The MK-PA version 7.1 introduced real-time support to PA-RISC, including Kernel preemption, Real-time clock
and an Event Trace and Analysis Package (ETAP).
HP-UX compatibility was provided for HP-UX 9.05 on the MK-PA 7.1 release; compatibility for HP-UX
10 was apparently achieved with MK-PA 7.2.
The version of Mach 3 used by the OSF porting effort contained several of the Mach 4
enhancements of the University of Utah (in-kernel servers and migrating threads) and
probably used parts of the Mach 3/UX PA-RISC codebase.
Parts of the MK-PA port were used as the base of the OSF’s port of Linux onto the OSF Mach microkernel — MkLinux.
Supported Hardware
- 710, 720, 730 (based on PA-7000 processors)
- 715, 725, 735, 755 (based on PA-7100 processors)
- 712, 715, 725/100 (based on PA-7100LC processors)
- J200, J210[XC], (based on PA-7200 processors)
- Additionally to standard hardware: Interphase FDDI board, EISA Ethernet boards, HP Labs GSC bus Myrinet board
References:
- An HP-UX compatible microkernel based Operating System (FTP) The Open Group (1998 [Central Iowa (Model) Railroad mirror 2008]. Accessed 30 Mar 2008)
- MK-PA Project Update (FTP) James Loveluck (1996: The Open Group [Central Iowa (Model) Railroad mirror 2008]. Accessed 30 Mar 2008)
MkLinux
Architecture: Mach 3 with Mach 4 extensions/Linux
Released: 1997
MkLinux was a research project done in the mid to late-1990s by The Open Group/OSF
to port a Linux kernel as server on top of a Mach microkernel (the Open Group’s pmk1.1).
The project built on the previous porting effort of OSF RI of the OSF/1 operating
system to Mach on PA-RISC — the MK-PA (OSF Mach 3/OSF/1) project.
OSF took various parts of the PA-RISC kernel sources from the Utah University,
including the Mach 3/UX and Mach 4/Lites
projects, improved the underlying OSF PA-RISC/Mach kernel (the Open Group RI Microkernel pmk1.1 from MK-PA)
and put a Linux kernel (2.0.32) as server (personality
) on it (replacing BSD/Lites).
Included were X11R6 patches, the GNU ELF compiler and debugger and complete /usr and /var directories.
MkLinux was the first free operating system that truly ran on PA-RISC hardware (in contrast to Mach, which suffered from unfinished development and a lot of bugs on PA-RISC). However, the system was quite slow (with some blaming it on the underlying Mach microkernel), software support was rather crude and at the time of its active development PA-RISC workstations were not really largely distributed to private end-users. It also did not support shared libraries.
Supported Hardware
- 705, 710, 720, 730, 750 (based on PA-7000 processors)
- 715 (no /33), 725, 735, 755 (based on PA-7100 processors)
- 712, 715, 725/100 (based on PA-7100LC processors)
- C100, C110 (based on PA-7200 processors)
- SCSI (internal single-ended, internal fast-wide-differential, GSC-based fast-wide-differential, and EISA fast-differential), RS232 serial, builtin Ethernet, Video (GRX, CRX and Artist), HIL and PS/2, audio
References
- ftp://ftp.cirr.com/pub/hppa/mklinux (FTP) Mirror of the MkLinux sets at ftp.cirr.com
- Release Notes for MkLinux on HP PA-RISC (FTP) Descriptions on MkLinux and extensive installation instructions. The Open Group (1997 [Central Iowa (Model) Railroad mirror 1999]). Accessed 05 Oct 2005.
Chorus
Architecture: Chorus/System V Unix (MiX)
Released: 1990 (development original project), 1991/92 (development follow-on)
Chorus was a micro-kernel (similar to Mach) based operating system, developed at INRIA in France starting in 1979. A development effort was made to port Chorus to the PA-RISC architecture and hardware in 1990-1991 at the Oregon Graduate Institute (OGI).
The porting effort, a funded research project lead by Jonathan Walpole,
was based on the Chorus v3.3 nucleus (kernel
) with the Chorus/MiX v3.2 on it
and targeted the then recent HP 9000/834 workstation
(PA-RISC 1.0 NS-1 processor).
Hardware support was quite limited however, as apparently no network interfaces or disk devices
were supported and all console I/O depended on PDC and IODC (PA-RISC BIOS
) routines.
Code from various earlier projects were used, including source code from HP-UX 2.0 and
the HP Tut project (HP-UX on 2.0 Mach).
The port succeeded up to the stage that Unix shells and various system calls worked,
but no access to file systems was possible.
A later porting project was started by Jon Inouye (also from Oregon Graduate Institute) to port
the Chorus/MiX v3.2 with the newer v3.4 nucleus to the PA-RISC 1.1
9000/720 workstation (which was quite a popular
target for OS/Unix porting efforts at that time).
The port did not progress very far, as it supported very few device drivers; it
was apperently used for virtual memory experiments.
In contrast to the earlier (9000/834) port it used HP-UX 8.0 as a base.
Both ports were never distributed as they contained various copyrighted/licensed source code (from HP, Chorus, USL, etc.).
Chorus/MiX in the version 3 was a complete System V Unix (both SVR32 and SVR4) compatible
distributed operating system, however based on micro-kernel and with additional real-time
and multi-threading features.
The system is divided into the nucleus which is the underlying operating system
core which handles scheduling, memory management, real-time events, and communications.
The nucleus is quite tiny (typically only 50 to 60 KB in size
) and the only truly
platform-dependent part of the system.
The rest of the operating system are implemented as servers (including device drivers,
the Unix environment, Unix job and memory control, network support and sockets, etc.) that
sit on top of the nucleus and communicate with each other and the kernel by passing messages.
MiX is in this case a group of subsystems/servers that implement the aforementioned
System V compatible Unix on top of the Chorus nucleus.
References
- Porting Chorus to the PA-RISC: Project Overview (PDF, 0.1MB) Walpole, Jonathan, et al. OGI Technical Report No. CS/E-92-003 (January 1992: Oregon Graduate Institute)
- Porting Chorus to the PA-RISC: Overall Evaluation (PDF, 0.1MB) Walpole, Jonathan, et al. OGI Technical Report No. CS/E-92-003 (January 1992: Oregon Graduate Institute)
- Modularity and Interfaces in Micro-Kernel Design and Implementation: A Case Study of CHORUS on the HP PA-RISC (PDF, 0.1MB) Walpole, Jonathan, et al. In Proceedings of the Usenix Workshop on Micro-Kernels and Other Kernel Architectures (Seattle, WA) April 1992
- The Chorus Microkernel Pountain, Dick. BYTE magazine (January 1994)
- Re: Chorus Ports - comp.os.chorus Jon Inouye (November 1994: USENET posting. Accessed March 2008)
HP Tut
Architecture: HP Mach 2/HP-UX
Released: 1988/89 (development)
Tut was the name of project at HP Labs done at 1988-89 to get HP-UX running on a Mach microkernel. The project possibly never suceeded very far and switched to merging parts of Mach 2.0 (VM and tasks/threads?) into/under HP-UX 2.0 to get something close to resembling Mach on PA-RISC (1.0). It was the basis for various other porting efforts.
HP OSF/1
Architecture: HP Mach 2/OSF/1
Released: 1990 (development), 1991-1992 (product?)
Around 1990 an internal HP project started a port of an early version of the OSF/1 (OSF/1 1.0) operating system to PA-RISC. OSF/1 was the proposed Unix operating system by an alliance of DEC (Digital), IBM, HP and others to compete with AT&T’s and Sun’s System V Unix. The HP project was apparently independent of OSF’s own later effort to port OSF/1 to PA-RISC (MK-PA, which started several years later).
HP OSF/1 was developed by ex-Apollo staff, after Apollo was bought by HP
(at the times there were also rumours of OSF/1 for 68k-based HP/Apollo systems).
They ported the Mach 2.0 (macrokernel
) to the early HP 9000/700 workstations
(PA-RISC 1.1 based), resulting in a fairly complete operating system, with proper
hardware support and a usable desktop environment (Motif and other OSF/1 applications).
The port was however never widely distributed and only sold for a short time as a commercial
product, which was withdrawn quickly (probably due to not complete/competitive hardware
and software support when compared to internal and external competitors).
It was however used widely at the University of Utah.