The current version, HPBSD 2.0, is still largely based on 4.3bsd but has
the 4.4bsd filesystem and networking kernel code and utilities as well as
the ANSI-compliant C library.
This version was ``released'' in April 1993.
Since that time development has been on the back burner as our focus
changed to Mach and
Flux.
Improvements has been limited to bug fixes and
support for new hp700 CPUs that we have.
It is still the desktop operating system of choice inside the
Flux
and
Avalanche
research groups.
Technical Summary
HPBSD is based on the 4.3 release of BSD from CSRG at Berkeley
with additions from 4.4bsd and numerous local modifications.
It still looks and feels pretty much like a 4.3 system,
but configuring and building software packages is more 4.4bsd-like.
In a nutshell, HPBSD:
CPUs |
68020 based (318, 319, 320, 330 and 350)
68030 based (340, 345, 360, 370, 375, 400) 68040 based (380, 425, 433) |
DISKs | HP-IB/CS80 (7912, 7914, 7933, 7936, 7945, 7957, 7958, 7959, 2200, 2203) and SCSI-I (including magneto-optical and CD-ROM). |
TAPEs | Low-density CS80 cartridge (7914, 7946, 9144), high-density CS80 cartridge (9145), HP SCSI DAT and SCSI exabyte. |
RS232 | 98644 built-in single-port, 98642 4-port and 98638 8-port interfaces. |
NETWORK | 98643 internal and external LAN cards. |
GRAPHICS | Terminal emulation and raw frame buffer support for 98544/98545/98547 (Topcat color & monochrome), 98548/98549/98550 (Catseye color & monochrome), 98700/98710 (Gatorbox), 98720/98721 (Renaissance), 98730/98731 (DaVinci) and A1096A (Hyperion monochrome). |
INPUT | General interface supporting all HIL devices. (e.g. keyboard, 2 and 3 button mice, ID module, ...) |
MISC | Battery-backed real time clock, builtin and 98625A/B HP-IB interfaces, builtin and 98658A SCSI interfaces, serial printers and plotters on HP-IB, and SCSI autochanger device. |
Major items not supported include the 310, 332, 362 and
382 CPUs, 400 series machines configured for Domain/OS, EISA
and VME bus adaptors, audio, the centronics port, 1/2" tape
drives (7980), the PVRX/TVRX 3D graphics displays, and the
optional fast internal HP-IB (98625C) on 345 and 375 CPUs.
The 425e CPU has never been tested but should work.
Supported Hardware - HP700/800 (PA-RISC based)
CPUs |
original (705, 710, 720, 730, 750)
PA7100 (715/33, 715/50, 715/75, 725/50, 725/75, 735/99, 755/99) PA7100LC (712/60, 712/80, 715/64, 715/80, 715/100, 725/100) PA7150 (735/125, 755/125) PA7200 (C100, C110, J200, J210) |
DISKs | internal single-ended SCSI, internal fast-wide-differential SCSI, GSC based fast-wide-differential SCSI, and EISA fast-differential SCSI |
TAPEs | internal single-ended SCSI (DAT) |
RS232 | builtin |
NETWORK | builtin 802.3 and experimental SGC FDDI board (Medusa) |
GRAPHICS | Terminal emulator and raw frame buffer support for GRX, CRX and 712/715 builtin |
INPUT | HIL devices, PS/2 keyboard and mouse |
MISC | audio types 1 and 2 |
Major items not supported include
multiprocessor PA7200 machines (J200, J210),
builtin FDDI, EISA (other than FD SCSI), parallel port,
teleshare port, and PS/2 floppy.
Availability
Since HPBSD contains AT&T and HP proprietary code it is not freely available.
In the past, we made bootable releases to sites with the necessary license
agreements but we don't do that any longer.
There are freely available alternatives to HP-UX for both platforms. For the hp300 and hp400, you can get NetBSD/hp300.
For the hp700, you can get
our Mach4 and Lites port.
Though this port doesn't directly support the older hp800s,
it does include code that would be useful in doing such a port.
History
HPBSD was born in 1987 when
Mike Hibler
(me) was hired by the Systems Programming Group at the University of Utah.
My first project was to do a port of 4.3bsd to the hp320 and hp350 workstations
so that they would run an operating system similar to what was running on the
C.S. department's Vaxen and Suns.
At the time they were running HP-UX 5.17 (or thereabouts) which was a hideous
fusion of BSD and System 5.
Among other things, it lacked long (> 14 character) file names,
NFS, disk partitions, reasonable networking and BSD sysadmin tools.
The starting point was a 4.3-beta port for the hp200 done by David Davis (then in the CAD group at Berkeley--unrelated to CSRG) which included basic 68k locore support, device drivers, a PCC-based C compiler and many useful library routines. With that excellent base, the port was liming along within 1 month. The primary difference was support for a 32-bit x86-style MMU (the hp200 had 16-bit PTEs!).
From 4.3-beta, the port advanced to ``real'' 4.3bsd and then onto the version running on Utah's Vaxen which included the University of Wisconsin port of Sun's NFS. With the combined efforts of numerous individuals in the Systems Programming and PASS groups at the university as well as continued contributions from David Davis, HPBSD became increasingly robust and eventually replaced HP-UX on the 50+ hp320, hp350 and hp370 workstations in the department. One of the major reasons for its wide-spread acceptance was its ability to run HP-UX binaries such as HP Common Lisp and a third-party VLSI design tool. In some ways it ran them better than HP-UX since they could operate over NFS and use long filenames.
After informing HP of the project, they were extremely supportive, providing machines and technical documentation. In April of 1988 we made a release available to people with 32V and Sun NFS source licenses. This release was run by a number of universities, research institutions and even inside HP (as the basis for a Mach 2.0 port).
In December of 1988, with support and encouragement from HP, Mt Xinu picked up our then current source to merge into MORE/BSD for eventual release as a supported product.
In March 1989, with support and encouragement from HP, the CSRG at Berkeley adopted the hp300 as their standard platform and integrated our then current source (sans Sun encumbered NFS code) with their post-Tahoe code. This hp300 code was first included in the Reno release, the last release with the old vax-style VM system.
In April 1989, with encouragement from CSRG, I started the ``new VM project,'' integrating the Mach 2.0 VM system[1] into BSD. This was done in the context of our then current HPBSD. A reasonable prototype was done by November 1989 when I talked about it at the ``Berkeley workshop'' in Boulder[2]. Development on the new VM code in HPBSD continued off and on til May of 1990 when the VM code was merged into CSRG's source tree (what was to become net2 and later 4.4bsd).
During the summer of 1990, Donn Seeley did a Mach 2.5 port to the hp300 based on the HPBSD sources augmented with the new VM pmap module. This was a short-lived project sponsored by OSF. It never saw the light of day.
The addition of 68040 support in mid-1991 was the last major development in the hp300-specific code though I continued to make occasional fixes and enhancements to the hp300 4.4bsd sources after that.
Sometime in the fall of 1989, Jeff Forys started work on the hp800 (PA-RISC) port starting with a hybrid HP-UX/Mach kernel called ``Tut'' that was done as an experiment at HP Labs. By around February 1990 HPBSD was limping along on an hp835 and by later that year was running solidly on the PA.
For a short period of time in 1989-90, Mt Xinu also worked on the PA-RISC port. They actually produced the first usable part of the port, the boot loader, late in 1989. We used (and continue to use) this boot loader in our work.
In 1990, yet another Mach project was spun off of HPBSD. This was a Mach 3.0 + UX single server port for the 835 sponsored by HP and done primarily by Bob Wheeler. Around 1992, this port mutated into a Mach 3.0 + OSF/1 single server port for the 700 series (800 was dropped) and eventually became the Mach4 + Lites system that we distribute today (see the availability section).
Starting in May 1991, Leigh Stoller ported HPBSD to the ``snake'' (hp720) workstation. By the end of the year, we were using an hp720 as a server machine. In January 1992, the hp300 and hp800 kernels were merged into a common source tree.
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 our HPBSD machines had been converted. This version was known as HPBSD 2.0. Since this merge included the NFS implementation done by Rick Macklem, we were able to eliminate all Sun encumbered code. In April 1993, we made a semi-formal release of HPBSD 2.0 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 other than adding support for new hardware that we have received.
Final note: As of Summer 1999, there are less than 10 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. The good news is that there is active development on both Linux and OpenBSD ports. NetBSD may also be in the works. Good Luck to them all!
[1] ftp://reports.adm.cs.cmu.edu/usr/anon/1988/CMU-CS-88-106.ps is an online version of Avie Tevanian's original Mach VM thesis.
[2] http://www.cs.utah.edu/~mike/hpbsd/newvm-slides.ps is a copy of the slides I used for the presentation.
Original version: June 1996 Last update: July 1999