I was kindly sent these a while ago from an avid reader, and I tried to get them to boot up into anything useful and didn’t get anywhere. I’m sure emulators of today are probably up to task, be it Bochs/PCem/86Box or even Qemu.
This is a machine that is shroud in legend, and of course played an integral part of internet history but oddly enough almost all trace of it ever existing has vanished.
The release of BSD, aptly named the 4.3BSD TAHOE release was completed in June of 1988. However shortly after this release the makers of the CPU, Computer Consoles Incorporated abruptly exited the market killing off the platform. What is interesting though is that while CCI was manufacturing the TAHOE processor, they also sold it to 3 other OEM’s, Sperry (which merged with Buroughs, and re-branded as Unisys), and ICL Ltd. and Harris is the only other one to have picked up the CPU for inclusion in it’s own machines. Among them was the HCX-7, and the HCX-9.
The Harris HCX minicomputers were one of the possible machines that the CSRG team at Berkeley saw as a possible successor to the aging VAX line of minicomputers for their operating system. While this may not have been the first port of UNIX or BSD for that matter, it was the first port of a 32bit BSD, that was included into the main VAX BSD source, and as such could be redistributed with the BSD license (which at the time required an AT&T 32V license). The fundamental thing this did was to split out the VAX specific code as a mainstream port was to be rolled back into the main CSRG source, unlike any other 3rd party port at this point.
Indeed from the config file in 4.3BSD TAHOE, we see this:
GENERIC POWER 6/32 (HCX9)
And for quite some time, I’ve always been searching for a CCI POWER 6/32, meanwhile it appears that was merely a reference platform that became the HCX-9 as indicated from the machine config file. The evidence was hiding in plain sight, as always it was a typo that lead me here as I was searching for TAHOE processors, and came across people looking for GCC on the TAHOE, running BSD. And following their threads I noticed that they were running Harris minis’ which then lead me to make the connection that the TAHOE was a processor, not just a machine, and that other vendors sold their own machines with the CPU.
Future cut short
Needless to say, once CCI exited the market these machines evaporated so quickly that they are only remembered in legend in BSD. I’ve seen people debate if the machine actually existed, who put it out, or even what was it exactly? A workstation? Server? As we can see from the Harris models, it was meant to be a minicomputer, to compete with the likes of the Digitial VAX.
As we can see from this ad, with Oracle support and the official porting target of the CSRG the HCX-9 was expected to have a bright future. Instead it was cut so short there is barely any mention of it even existing.
Sadly this minicomputer target idea continued, as the CSRG sidestepped the commodity 32bit processors, namely the cheaper 68020 & 80386.
So this crossed my desk, from an anonymous source:
For those who like this kind of thing, here is a dmesg:
BSDI BSD/386 1.1 Kernel #0: Wed Mar 3 16:23:55 GMT 1999 [email protected]:/usr/src/sys/compile/GENERIC
cpu = Pentium (unknown speed) model 6, stepping 3
delay multiplier 8663
real mem = 68153344
avail mem = 65589248
buffer cache = 6774784
pccons0 at isa0 iobase 0x60 irq 1: color, 8 screens
com0 at isa0 iobase 0x3f8 irq 4: buffered
lp0 at isa0 iobase 0x378 irq 7
pe0 at isa0
xir0 at isa0 on lp0 (at 0x378)
fdc0 at isa0 iobase 0x3f0 irq 6 drq 2
fd0 at fdc0 slave 0: 1.44M HD 3.5
wdc0 at isa0 iobase 0x1f0 irq 14
wd0 at wdc0 slave 0
wdc1 at isa0 iobase 0x170 irq 15
npx0 at isa0 iobase 0xf0
vga0 at isa0 iobase 0x3c0 maddr 0xa0000-0xaffff
ne0 at isa0 iobase 0x300 irq 9: NE-2000, address 52:54:00:12:34:56
changing root device to wd0a
wd0: format error in bad-sector file
Yes it’s real! For those who don’t remember history, after the Net/2 release there was a company called Berkeley Software Design Inc (BSDi) that provided a commercial port of Net/2 that also included source. Add in the infamous 1-800-ITS-UNIX ad, and as they say the rest is history.
During this time frame it does get hard to track down as the name was in constant flux. BSDI, BSDi, BSD/OS, Internet Server… Mix in the fun with 386BSD and you get all around naming confusion.
This version, 1.1 is from 1994. The version timetable does get a tad bit confusing so here we go from what I can find:
1992, April – BSD/386 (BSDi) 0.3.1, first version
1992, June – BSD/386 (BSDi) 0.3.2
1993, March – BSD/386 (BSDi) 1.0
1994, Feb. – BSD/386 (BSDi) 1.1
1995, Jan. – BSD/OS (BSDi) 2.0
1995, June – BSD/OS (BSDi) 2.0.1
1996, Jan. – BSD/OS (BSDi) 2.1
1997, Feb. – BSD/OS (BSDi) 3.0
1998, March – BSD/OS (BSDi) 3.1
1998, Aug. – BSD/OS (BSDi) 4.0
1999, March – BSD/OS (BSDi) 4.0.1
1999, Dec. – BSD/OS (BSDi) 4.1
2000, Nov. – BSD/OS (BSDi) 4.2
2002, March – BSD/OS (Wind River) 4.3
2003, May – BSD/OS (Wind River) 5.0
2003, Oct. – BSD/OS (Wind River) 5.1
One can only hope that 0.3.1 from the apparent “300 customers” may eventually surface.
It’s not unresolved symbols, but rather deleted bodies…
From 22 years ago:
From: [email protected]
Subject: Re: 386's UNIX kernel source
Message-ID: <[email protected]>
Date: 11 Jan 92 08:24:27 GMT
References: <[email protected]>
Richard Tobin ([email protected]) writes:
: In article <[email protected]> [email protected] (Lee M J McLoughlin) writes:
: >I can't say for sure but in the second Berkeley networking release
: >there appears to be enough source for unix and enough 386 specific
: >code to actually get a system up and running.
: The following from kern_exec.c suggests otherwise:
: * Body deleted.
: return (ENOSYS);
: There are other similar functions. Also, the standalone stuff needed
: for bootstrapping is incomplete.
Routines which are thus missing from the kernel are:
acct(), sysacct(), execve() with friends, physio(),
minphys(), rminit(), rmalloc(), rmfree(), ptrace(),
procxmt(), profil(), cinit(), getc(), q_to_p(),
ndqb(), ndflush(), putc(), b_to_q(), nextc(),
unputc(), bufinit(), bread(), breada(), bwrite(),
bdwrite(), bawrite(), brelse(), incore(), getblk(),
geteblk(), allocbuf(), getnewbuf(), biowait(), biodone()
I have looked them up in the unix v7 sources, and they amount to
approximately 800 lines of code.
Some I cannot find there. They are:
minphys(), rminit(), rmalloc(), rmfree(), procxmt(), nextc(),
unputc(), bufinit(), allocbuf(), getnewbuf()
Do they really containt AT&T code, or were they just kicked out "by
In any case, unless there are more surprises, it should not be too
hard to rewrite these routines. Many are quite straightforward.
Most routines contain 10-20 lines of code. One only 2.
Some are ridiculusly simple. In fact, I wonder how they can be
rewritten to not be identical with the AT&T ones.
Now, I wonder, are these routines really identical to the Unix v7
routines, or are they modified by the BSD people?
That is, would it be possible to plug in the V7 routines, modify them,
and get it working, without having seen the actual bsd routines?
Internet: [email protected] Fidonet: Per Lindqvist @ 2:201/332
So that is probably why it ‘works’ but doesn’t work. Oops.