OpenPA.net

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:

  1. 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
    (Mach has been more or less abandoned since as a development/research project but was also used in the commercial NeXTSTEP 3.3 PA-RISC. For more information on Mach, cf. the Mach (kernel) page from Wikipedia.)
  2. 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
  3. BSD: HPBSD, based on a modified 4.3BSD with 4.4BSD modifications; from the University of Utah
  4. 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:

PA-RISC R&D operating systems timeline
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:

Supported Hardware

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

↑ up

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.

↑ up

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

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

↑ up

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

References:

↑ up

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

References

↑ up

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

↑ up

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.

↑ up

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.

↑ up