OpenPA.net

PA-RISC Other Operating Systems

With input from Mike Hibler (2008)

Overview

Several other operating systems have been ported to the PA-RISC platform over the time between the late 1980s and late 1990s. 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.

The main platforms described here:

  1. Mach (CMU)
    • Mach 3/UX, Mach 3 with AT&T System V Unix, by the University of Utah
    • Mach 4/Lites, Mach 4 with a port of 4.4BSD-lites Unix, by the University of Utah
    • MkLinux, Mach 3 with Mach 4 extensions with Linux 2.0; by OSF RI
    • HP Tut, Mach 2 with HP-UX 2.0; by HP Labs
    (Mach has been more or less abandoned since as a development/research project but was also used 1994 in the commercial NeXTSTEP 3.3 PA-RISC.)
  2. OSF Mach (OSF/1)
  3. BSD
    • HPBSD, 4.3BSD with 4.4BSD modifications, by the University of Utah
  4. Chorus microkernel (INRIA), similar to Mach
    • Chorus, Chorus v3.3/v3.4 with System V Unix (MiX), by the Oregon Graduate Institute

Only MkLinux and Mach 4/Lites were publically available, the other systems all required licenses for various commercial source code they contained. All of these ports were mostly suceeded by other open source systems in the early 2000s — PA-RISC Linux, OpenBSD/hppa and NetBSD/hppa.

Timeline for these projects (approx.):

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

Mach 3/UX

The Mach 3 port 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 also done at Utah University and probably Mach 3/OSF/1 (MK-PA) from OSF.

There might have been a separate University of Utah OSF/1 to PA-RISC porting effort (Mach 3/OSF/1), some sources suggest a short-lived project to port Mach 3.0 and OSF/1 1.0.4 to PA-RISC.

↑ up

Mach 4/Lites

The University of Utah Flux Research Group ported the original Mach microkernel with a 4.4BSD-Lites server to the PA-RISC architecture, around 1994, based on the work of the Mach 3/UX project. 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. Some parts of the PA-RISC source code of it were later (mid-2000s) actually used in the ports of modern open source operating systems, such as OpenBSD/hppa using 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 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 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 part 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 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

↑ up

MkLinux

MkLinux was a research project from the mid-1990s by the Open Group/OSF to port a Linux kernel as server onto a Mach microkernel (the Open Group pmk1.1). The project built on the previous MK-PA (OSF Mach 3/OSF/1) port. Other parts were integrated from the PA-RISC kernel sources from the Utah University, including Mach 3/UX and Mach 4/Lites. The prot 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) onto it, replacing BSD/Lites from the previous efforts. 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 the various Mach ports, which suffered from unfinished development and a lot of bugs on PA-RISC. However, the system was rather slow, did not support shared libraries, software support was rather rudimentary and at the time of its active development PA-RISC workstations were not largely available to private end-users.

Supported Hardware

References

↑ up

HP Tut

Tut was a project by HP Labs around 1988-89 to port HP-UX onto a Mach microkernel. The project probably never suceeded very far and moved on to merging parts of Mach 2.0 under HP-UX 2.0 to get something close to resembling Mach on PA-RISC. Tut was the basis for various other porting efforts.

↑ up

HP OSF/1

Around 1990 an internal HP project ported an early version of OSF/1 (OSF/1 1.0) 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 port was apparently independent of OSF’s own later OSF/1 to PA-RISC port, MK-PA, which started several years later.

HP OSF/1 was developed by ex-Apollo staff, after Apollo was bought by HP, and ported Mach 2.0 (macrokernel) to the early HP 9000/700 workstations, 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 never widely distributed and sold commercially only for a short time and was withdrawn quickly (probably due to not complete/competitive hardware and software support when compared to the market). It was apparently used widely at the University of Utah.

↑ up

MK-PA (OSF/1)

The OSF RI Open Group Research Institute ported OSF/1 Unix to PA-RISC in the mid-1990s, with OSF/1 1.3 on top of Mach 3. 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 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 apparently was similar between HP-UX and MK-PA at that time. 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 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 port of Linux onto OSF Mach, MkLinux.

Supported Hardware

References:

↑ up

HPBSD

HPBSD was developed between the late 1980s and mid 1990s at the University of Utah (Mike Hibler), it grew out of a port of 4.3BSD to the 68k-based HP 9000/300 and 400 systems. HPBSD contains AT&T (Unix) and HP (HP-UX) source code and 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 the University of Utah was very limited.

HPBSD is an original 4.3BSD with additions from 4.4BSD and local modifications:

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 100 Mbit ethernet driver.

References

↑ up

Chorus

Chorus was a micro-kernel operating system by INRIA, started in 1979. A development effort was made to port it to PA-RISC in 1990-1991 at the Oregon Graduate Institute (OGI).

The porting effort, a funded research project (Jonathan Walpole), was based on the Chorus v3.3 nucleus (kernel) with the Chorus/MiX v3.2 on it for the HP 9000/834 system. Hardware support was rather limited, with apparently no network interfaces or disk devices supported and console I/O depending on PDC and IODC (PA-RISC BIOS) routines. Code from various earlier projects was used, including from HP-UX 2.0 and HP Tut (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 (a popular target for OS/Unix porting efforts at that time). The port did not progress very far, as it supported few device drivers. 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.).

References

↑ up