Sunday, October 3, 2021

Shiner ESB, an Apple Network Server prototype, and what it did at Netscape/MCom

The Apple Network Server was, with the possible exception of the Apple Workgroup Server 95, Apple's first true server. I have a particular soft spot for the ANS because it was also my first server: an ANS 500 ran Floodgap (even before Floodgap in 1998 as stockholm.ptloma.edu and gopher.ptloma.edu) from 2000 until 2012, and stockholm is still in my collection. While Apple had the Workgroup Server line, these were merely contemporary Mac designs with value-added software or hardware options, and as such ran Mac OS. (The AWS 95 ran A/UX, Apple's SVR2 Unix-System 7 hybrid, though it could also run Mac OS — being really a rebadged, hopped-up Quadra 950 — with its custom PDS SCSI card removed.)

The ANS, however, was a real honest to goodness server with hotswappable drive bays and fans, and (its most notable feature) an award-winning lockable translucent door so you could keep the unwashed masses out of your drives but still watch the blinkenlights. If you bought the bigger model, you even got dual power supplies and additional rear bays.

Also notable about the ANS was that they weren't supposed to run Mac OS, and were never sold with it, not least of which because the classic Mac OS wasn't really up to the task of being a server. Unfortunately, while A/UX supported larger needs on the 68K-based Workgroup Servers that could run it, A/UX 3 couldn't run on Power Macs even under emulation. The plan with A/UX 4 was to use a new PowerPC-native OSF/1-based kernel and possibly to also integrate portions of IBM's AIX operating system, but this plan (along with Taligent and other doomed projects) stalled out with everything else in Apple around that period. For a time Apple even considered using Novell NetWare on PowerPC; the port actually existed, codenamed Wormhole, but its tepid reception eventually led to the release of the weird Workgroup Server 9150 which just ran Mac OS. Eventually, to get to market Apple reached for what was then the only professional-level Un*x running on the new PowerPC architecture, which was AIX itself. Three Apple Network Server models were developed but only two (the "Low End" 500 and "High End" 700) were released; the 3U rack 300 "Deep Dish" remained solely a prototype, which I'd still love to acquire if its current owner ever gets tired of it. Oddly, even though they were only ever sold as AIX machines, they were initially demonstrated running a custom version of MacOS which was never released with them (I'd love to see this release myself), further confusing potential customers who already didn't want to buy Workgroup Servers. Introduced in 1996 at a retail cost starting north of US$10,000, which didn't even include the AIX license, they were very poor sellers and the line was canned by Gil Amelio around a year later.

I got my ANS 500 barely used for the cost of some consulting work after Apple stopped supporting it; you can see some scanned Polaroids of when it was in production way back in 1998. Later, I acquired an ANS 700 which I use as a spare and was briefly in service while I diagnosed a hardware issue with the 500. More recently, however, I managed to land a Shiner HE prototype dated 1995 from a scrapper in San Rafael, California. That is the unit depicted in these pictures.

The codename "Shiner" is a brand of beer named for its town of manufacture in Texas, and was reportedly the favourite adult beverage of the 1990s Server Group Division based out of Apple's Austin offices, thus lending its name to the product. Although all of the boards within this machine are marked as EVT (engineering validation test) prototypes, they are very similar to production hardware save the labelling, and the machine itself is labelled with the unknown acronym "ESB." [drudru on lobste.rs suggests, keeping with the beer theme, that this might mean Extra Special Bitter. That makes sense!]

Appropriately, Apple Network Servers remained a significant portion of apple.com even after their commercial exit; reportedly some units were still in operation as late as 2005, well into the Xserve era and almost up to the Intel transition. However, this machine — unimaginatively named shiner — had a different path, where at its place of residence it seemed to function as a test server. The disk it came with was partially recoverable and we'll look at some goodies in a moment. Unfortunately, at some point after decommissioning it was improperly stored in a high moisture environment with the lithium PRAM battery still installed. Never do this with old Macs: the battery exploded and leaked all over the board, and when I acquired the unit it was no longer working. The door keys were also missing which required me to force the lock to get into the front bays. Despite the damage and the rough handling it's endured, the board markings and residual history nevertheless make it an interesting show-and-tell piece, so I present it here.

After the pictures we'll talk about what was on the hard disk ...

Portrait. Notice the badge doesn't say Apple Network Server like a production machine — it's just a plain Apple logo and blank where the text would go. The plastic is also not textured, although it does appear to be injection-moulded.

There are two missing trays in the front. One was the hard disk it came with that I removed for safe storage, but the other came to me empty, and was probably part of the rootvg which we'll talk about later.

Close-up on the asset stickers. This machine is marked "Property of America Online" but its best documented operation appears to be earlier (again, more later). It also has a front sticker with its hostname showing it ran AIX 4.x (the hard disk I got was AIX standard JFS) and an IP that doesn't respond to anything. Also notice consistent with the pre-production plastic that there are no icons on the keyswitch for lock, unlock or service mode.
The rear has an FCC warning sticker and, on the backplate where the model and regulatory approvals would go, the simple legend "SHINER ESB H.E."
Sadly, with the logic board drawer pulled out, you can see the damage where the battery contents dripped down. You can also see the rather alarming amount of rust, er, oxidation on the fan bay. When I got the unit there wasn't anything installed in the slots except the processor card.
That said, even if the logic board were working, it would probably be somewhat anticlimactic: the money is in the markings, not in the layout, which looks very similar to my production 500 and 700. The EVT logic board is dated 1995 and the part number 820-0744-02 suggests a second revision (the production board is 820-0744-A). On this unit and the previous picture the chips themselves have their codenames on the EVT board; on the production board they are replaced with boring functional names.
For example, HAMMERHEAD and ZAX are printed on the EVT board, but the production board has their actual roles, i.e., MEMORY CNTRL (the memory controller) and DATA PATH. The appelation "SIM" on the cache and ROM slots does not appear on the production board. Hammerhead is limited to 512MB of RAM, but this was a lot in 1997, and it could accept FPM or EDO sticks. You really wanted parity in this thing, too: if all the RAM was parity, it would use 60ns timing, but if any of the DIMMs weren't, besides disabling parity it would slow RAM access to 70ns. Parity FPM RAM in particular was expensive as hell and almost impossible to find anymore. Apple sold parity FPM DIMMs in upgrade kits at typical Apple prices.
When the logic board drawer is closed, it mates with this slot on the mezzanine board which handles interconnects with the power supply, front panel and SCSI backplane. The mezz board has its own codename "HENDY." Hendy had a lot of changes as suggested by its part number 820-0713-07 but I'm not sure what they are. On the other hand, the SCSI backplane on the other side of the panel has no codename at all and is identical to my production 700 except for the 1995 date and pre-production part number.
The processor board also has its own code name ("FIGMENT"). ANS CPU boards came with a 132MHz (base 500), 150MHz (base 700) or 176MHz PowerPC 604 or a 200MHz 604e, along with a prototype dual-CPU card which was never released. The 132MHz and 176MHz cards use a 44MHz bus but the 150MHz and 200MHz cards run at 50MHz. The single-CPU boards differ only in the processor and speed resistors and use a common daughterboard otherwise. Other than markings it appears pretty much identical to production cards and appears to have had only one revision (this one is 820-0740-01; my production cards are 820-0740-A).
In particular the debugging jumpers are still on production cards (plus-minus actual contacts, but the holes are still present), just marked differently. There is hardware information on this picture and the previous one along with a bus speed and 604 power table "LEDGEND" [sic].

So, the hard disk.

The single hard disk it came with suffered the same external oxidation as everything else, but the drive itself powered up when I connected it. So I pulled the regular trays from my 500 as a precaution, installed this single tray, booted from the "Harpoon" AIX 4.1.5 CD and tried to mount it.

The bad news is that this disk seems to be only part of a larger JFS rootvg (in AIX parlance, this refers to the collection of logical hard disks that compose the default volume group), and attempting to bring it up as a standalone volume just caused a lot of errors. I suspect the missing tray contained the other disk (and, irritatingly, /). However, although Apple sold a RAID option for the ANS, this remaining disk didn't appear to be a member of an RAID array and I was able to get a sensible image of it with dd. Its hostname? shiner.mcom.com.

Yup. This ANS was at Mosaic Communications Corporation, though by this time it would have been fully converted to Netscape Communications Corporation.

strings, grep and less will get you a long way with digital archaeology on unencrypted drives. I found lots of old and new files, but overall after piecing them together the machine's primary task was running Netscape Collabra Server v3.01 21301. This was one of the all-singing-all-dancing enterprise server solutions then in vogue and was roughly contemporary with Netscape Navigator 3.0. These screenshots were extracted from its installation instruction document.

Collabra, you will recall, attracted jwz's apparently everlasting ire by being a Netscape acquisition that somehow managed to take over Netscape instead of the other way around. LDAP, NNTP and HTTP strings are present along with symbols that anyone familiar with Mozilla source code will recognize as old-school NSPR and NSS. I found part of what appears to be its configuration file:

NetsiteRoot /home2/Collabra/drd970801
Port 4444
User root
ErrorLog /home2/Collabra/drd970801/admin-serv/logs/errors
AccessLog /home2/Collabra/drd970801/admin-serv/logs/access
PidLog /home2/Collabra/drd970801/admin-serv/logs/pid
ServerName shiner.mcom.com
Backups 10
AdminUsers /home2/Collabra/drd970801/admin-serv/config/admpw
Hosts *.mcom.com
Addresses 206.222.228.86
ONEAclDir /home2/Collabra/drd970801/adminacl
ConfFile /home2/Collabra/drd970801/admin-serv/config/cron.conf
Dir /tmp
Status on

drd970801 sounds like a developer release path. This header appears on most of the control panel files:

* PROPRIETARY SOURCE CODE OF NETSCAPE COMMUNICATIONS CORPORATION
* Copyright (c) 1997 Netscape Communications Corporation. All Rights Reserved.
* Use of this Source Code is subject to the terms of the applicable license
* agreement from Netscape Communications Corporation
* author: jules@netscape.com

This guy wrote a lot of stuff, too.

The presence of LDAP and HTTP support notwithstanding, the scattered log fragments present on the machine suggest it was mostly doing NNTP (newsgroup) duty. For example, here's the administrator logging in via the web interface:

genesis.mcom.com - - [01/Aug/1997:14:29:12 -0500] "GET / HTTP/1.0" 401 223
genesis.mcom.com - nsadmin [01/Aug/1997:14:30:48 -0500] "GET /news-shiner-119/bin/pcontrol HTTP/1.0" 200 1341
genesis.mcom.com - nsadmin [01/Aug/1997:16:07:23 -0500] "GET /news-shiner-119/bin/index HTTP/1.0" 200 343

genesis.mcom.com, by the way, turns up in this Oracle discussion (allowed is not! is planet forbidden!).

And here's somebody from loaner.mcom.com posting and reading:

4 [97/08/01 16:07.20] nnrpd(0.13570):loaner.mcom.com post ok <5rtj5n$d822020@shiner.mcom.com>
4 [97/08/01 16:07.20] nnrpd(0.13570):loaner.mcom.com post ok <5rtj5j$d822019@shiner.mcom.com>
4 [97/08/01 16:07.20] nnrpd(0.13570):loaner.mcom.com exit articles 0 groups 0
4 [97/08/01 16:07.20] nnrpd(0.13570):loaner.mcom.com posts received 55 rejected 0
4 [97/08/01 16:07.20] nnrpd(0.13570):loaner.mcom.com posts received 55 rups 0
4 [97/08/01 16:07.20] nnrpd(0.13570):loaner.mcom.com times user 569.800 system 302.310 elapsed 4535.986

In fact, a generated report of the Top 10 Hosts by Number of Articles Posted only shows loaner.mcom.com. There's a reason for this we'll discuss in a moment.

As you would expect for a machine generally occupied as a news spool, various copies at various stages of the newsgroup active file are present. They include the default (example?) groups, like acl, control, junk, test and virtual (shown here in the administration interface),

but also some slightly suspicious internal newsgroups,

mcom.url 0000000000 0000000001 y
mcom.url.bad 0000000000 0000000001 y
mcom.url.bad.bad 0000000000 0000000001 y
mcom.url.bad.bad.bad 0000000000 0000000001 y
mcom.users 0000000000 0000000001 y
mcom.users.clue-impaired 0000000000 0000000001 y
mcom.white-trash 0000000000 0000000001 y
mcom.wreck 0000000000 0000000001 y
mcom.wreck.motorcycles 0000000000 0000000001 y

and most famously

mcom.bad-attitude 0000000000 0000000001 y

as subpoenaed by Microsoft in 1998, though sadly, as the numbers imply, no articles from any of these groups are actually present on the drive. Instead, what is present is a lot of test material. Rich Salz's 1991 post "Seeking beta-testers for a new NNTP transfer system" <3632@litchi.bbn.com> exists as a test file for INN; the real on-spool posts on the disk have headers like this:

Path: shiner.mcom.com!mewing@netscape.com
From: AutoPost@shiner
Newsgroups: kstress,pstress
Subject: AutoPost: shiner:119 18491-2-5
Date: 1 Aug 1997 19:54:26 GMT
Organization: Another Netscape Collabra Server User
Lines: 2216
Message-ID: <5rteti$d82102@shiner.mcom.com>
NNTP-Posting-Host: loaner.mcom.com
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="------------36A62DDA30E4"
X-Mailer: Mozilla 2.01 (X11; I; IRIX 5.3 IP22)
X-Mozilla-Status: 0001
Xref: shiner.mcom.com kstress:34 pstress:34

This is a multi-part message in MIME format.

--------------36A62DDA30E4
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="UsenetPast.jpg"

The posting agent is actually Netscape 2, which is interesting, from an IP22 Silicon Graphics machine (probably an SGI Indy: I was using an Indy myself in 1996 when I did an independent study block at the Salk Institute). Parenthetically, a fun hostname dredd.netscape.com turned up in a few places looking through the news spool, which seems to be the same system as dredd.mcom.com.

These newsgroups (kstress and pstress) appear to be strictly local. In fact, their very name alone indicates they were solely there for testing purposes. All the other articles on the machine are just big binary base64 blob posts, made by an mewing. There is an LDAP entry for this person (here represented in LDIF).

dn: cn=NewsHackers
objectclass: top
objectclass: groupOfUniqueNames
cn: NewsHackers
creatorsname: uid=nsadmin
createtimestamp: 19970407202758Z
uniquemember: cn=Mike Ewing
uniquemember: cn=splat poster
modifytimestamp: 19970505183057Z
modifiersname: uid=nsadmin
entrydn: cn=newshackers
parentid: 0

(They don't appear to be the system administrator, though. Here's that person's LDAP entry; no other users were obvious.)

dn: cn=Administrators
objectclass: top
objectclass: groupOfUniqueNames
cn: Administrators
creatorsname: cn=Directory Manager
createtimestamp: 19970407165907Z
modifytimestamp: 19970515174534Z
modifiersname: uid=nsadmin
uniquemember: cn=splat poster
uniquemember: cn=Gena Cunnanan
entrydn: cn=administrators
parentid: 0

mewing also appears in logs,

4 [97/08/09 04:01.02] news.daily:sending a copy of the daily report by email to mewing@netscape.com

and the Collabra junk group on this machine is actually called Mike's Junk. Assuming this isn't an oblique anatomical reference (there are a lot of binaries, after all), this person appears to have been the machine's primary user, and I thus conclude the machine's primary purpose — at least at that time — was as a test spool for the news server functionality of Collabra that this person was working on.

And that brings me to the most important question I wanted to answer: how long was this machine actually in service? The timestamps from the LDAP-LDIF entries are the earliest unambiguous dates I can find on the machine (April 4, 1997), and the most recent log entry I can find in the image is this one from September 4, 1997:

4 [97/09/04 12:46.32] indexsend:[8388] stop Thu Sep 4 12:46:32 1997

A solitary 1998 timestamp 29/Mar/1998:4:36:53 -0800 appears as an example in a help document, but that document has a 1997 copyright date, so it could just be illustrative.

That said, it's entirely possible and even probable that still more recent log entries were present on the other, missing drive. The machine had to be at Netscape through at least 1999 in order to pick up an America Online asset tag; AOL hadn't even announced it was acquiring Netscape until November 24, 1998, and the deal wasn't complete until March 17 the following year (for US$10 billion — in 2021 dollars, US$16.42b). Likewise, it wouldn't make sense for Netscape to pick up the machine as a beta test and then not do anything with it for nearly a year, unless it was a later used purchase (but that doesn't make sense either because in 1997 they would probably have just bought a production machine). It thus may have been paved over at some point, or alternatively it wasn't initially running Collabra.

After all that, and with the incomplete information at hand, best guess says this machine was at Netscape/Mosaic from 1995 or so to about 1999 where it performed at least a solidly documented several months of test work. That's not a bad run for an old beast that by then was no longer being supported by Apple at all.

Are you Mike Ewing or Gena Cunnanan, formerly of Netscape? Did I miss anything? Please post in the comments if you have any light to shed. Meanwhile, you can see some more pictures of the prototype, or just read more about the ANS, the best server Apple ever disowned.

1 comment:

  1. These deep dives are fantastic. So interesting and fun to read. Well done!

    ReplyDelete