kodiak

Sun Microsystems SPARCstation 20

This machine started it all for me. I had long resisted buying old hardware because I felt like emulation was the better solution for preservation but I found the state of emulation for machines in the “golden age” of UNIX workstations to be lacking. To me, the SPARCstation 20 represented the peak of the desktop UNIX workstation. A few years after it was released, commodity Intel hardware and Windows NT/2000/XP completely obliterated the market for expensive cutting-edge RISC hardware running UNIX.

When I was younger (I think around 1994) I recall going to a computer show at a local college with my dad. The big event at the show was a demo of the upcoming Windows 95 (then still codenamed “Chicago”), but what caught my attention was a group of Sun workstations on an ethernet network with connectivity to the internet. At this point, dial-up was the norm, and these sleek machines with huge monitors could run Mosaic at speeds that felt like they were from the future, which I guess in some ways was true. These machines of course cost 10-20x as much as a normal PC and at this point in time you got what you paid for.

By then I had been running Linux on my 486 machine at home for about a year so UNIX-like operating systems were no stranger to me, but the sheer speed of SPARCstations combined with their sleek low-profile desktop form factor stuck with me, but of course owning one was completely out of the realm of possibility.

I had mentioned to a friend with similar interests that if I was going to take up room in my house with any “vintage” computer it would probably have to be a SPARCstation 20 because of that experience I had back in the 90s. It just so happened that he knew someone who was looking to get rid of one and was just asking to cover shipping costs; I was in.

This machine was manufactured in 1994 or 1995 and houses two HyperSPARC 125MHz CPUs with 1MB secondary cache each and 448MB RAM. Of course it didn’t ship that way originally. It came to me with a single 60MHz SuperSPARC which I upgraded.

Hardware

  • 2x ROSS HyperSPARC 125MHz/1MB Cache CPUs (RT620C - Colorado 3 - SPARC V8)
  • 448MB RAM (7 x 32MB)
  • 8MB VSIMM - SX Framebuffer (24-bit graphics)
  • HME (Happymeal) Wide SCSI/Fast Ethernet SBus card
  • OpenBoot PROM 2.25r (custom burned EEPROM)
  • Seagate Savvio ST936701LC 36.7GB 10krpm 2.5” SCA SCSI Disk

Peripherals

  • Sun UNIX-Layout Type 5C Keyboard
  • Sun Type 5 ball mouse
  • Sun L7ZF LCD Display

Software

  • Solaris 2.6

psrinfo -v

Status of processor 0 as of: 07/06/17 13:32:01
  Processor has been on-line since 07/06/17 13:01:34.
  The sparc processor operates at 125 MHz,
	and has a sparc floating point processor.
Status of processor 2 as of: 07/06/17 13:32:01
  Processor has been on-line since 07/06/17 13:01:38.
  The sparc processor operates at 125 MHz,
	and has a sparc floating point processor.
System Configuration:  Sun Microsystems  sun4m
Memory size: 448 Megabytes

prtconf

System Peripherals (Software Nodes):

SUNW,SPARCstation-20
    packages (driver not attached)
        disk-label (driver not attached)
        deblocker (driver not attached)
        obp-tftp (driver not attached)
    options, instance #0
    aliases (driver not attached)
    openprom (driver not attached)
    iommu, instance #0
        sbus, instance #0
            espdma, instance #0
                esp, instance #0
                    sd (driver not attached)
                    st (driver not attached)
                    sd, instance #0 (driver not attached)
                    sd, instance #1 (driver not attached)
                    sd, instance #2 (driver not attached)
                    sd, instance #3
                    sd, instance #4 (driver not attached)
                    sd, instance #5 (driver not attached)
                    sd, instance #6
            ledma (driver not attached)
                le (driver not attached)
            SUNW,bpp (driver not attached)
            SUNW,DBRIe (driver not attached)
            SUNW,hme, instance #0
            SUNW,fas, instance #0
                sd (driver not attached)
                st (driver not attached)
                sd, instance #15 (driver not attached)
                sd, instance #16 (driver not attached)
                sd, instance #17 (driver not attached)
                sd, instance #18 (driver not attached)
                sd, instance #19 (driver not attached)
                sd, instance #20 (driver not attached)
                sd, instance #21 (driver not attached)
                sd, instance #22 (driver not attached)
                sd, instance #23 (driver not attached)
                sd, instance #24 (driver not attached)
                sd, instance #25 (driver not attached)
                sd, instance #26 (driver not attached)
                sd, instance #27 (driver not attached)
                sd, instance #28 (driver not attached)
                sd, instance #29 (driver not attached)
    obio, instance #0
        zs, instance #0
        zs, instance #1
        eeprom (driver not attached)
        counter (driver not attached)
        interrupt (driver not attached)
        SUNW,fdtwo, instance #0
        auxio (driver not attached)
        power (driver not attached)
        cgfourteen, instance #0
    memory (driver not attached)
    virtual-memory (driver not attached)
    eccmemctl (driver not attached)
    Ross,RT625 (driver not attached)
    Ross,RT625 (driver not attached)
    SUNW,sx, instance #0
    pseudo, instance #0

Benchmark

kodiak ~$ openssl speed md5 sha1 sha256
Doing md5 for 3s on 16 size blocks: 115823 md5's in 3.00s
Doing md5 for 3s on 64 size blocks: 90856 md5's in 3.00s
Doing md5 for 3s on 256 size blocks: 54301 md5's in 2.98s
Doing md5 for 3s on 1024 size blocks: 20958 md5's in 3.00s
Doing md5 for 3s on 8192 size blocks: 3107 md5's in 2.98s
Doing sha1 for 3s on 16 size blocks: 61293 sha1's in 3.00s
Doing sha1 for 3s on 64 size blocks: 42743 sha1's in 3.00s
Doing sha1 for 3s on 256 size blocks: 26276 sha1's in 3.00s
Doing sha1 for 3s on 1024 size blocks: 10460 sha1's in 3.00s
Doing sha1 for 3s on 8192 size blocks: 1587 sha1's in 3.00s
Doing sha256 for 3s on 16 size blocks: 66556 sha256's in 2.96s
Doing sha256 for 3s on 64 size blocks: 36992 sha256's in 3.00s
Doing sha256 for 3s on 256 size blocks: 15666 sha256's in 2.98s
Doing sha256 for 3s on 1024 size blocks: 4772 sha256's in 3.00s
Doing sha256 for 3s on 8192 size blocks: 638 sha256's in 3.00s
OpenSSL 1.0.2j  26 Sep 2016
built on: reproducible build, date unspecified
options:bn(64,32) rc4(ptr,char) des(idx,cisc,16,long) aes(partial) idea(int) blowfish(ptr) 
compiler: gcc -I. -I.. -I../include  -I/usr/tgcware/include -fPIC -DOPENSSL_PIC -DZLIB_SHARED -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -mcpu=v8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
md5                617.72k     1938.26k     4664.78k     7153.66k     8541.12k
sha1               326.90k      911.85k     2242.22k     3570.35k     4333.57k
sha256             359.76k      789.16k     1345.80k     1628.84k     1742.17k