Tuesday, June 30, 2020

Bill Shannon RIP

Last Thursday my friend Bill Shannon lost a long battle with cancer. The Mercury News has his obituary. I thought to create a Wikipedia page for him as I did for my friend John Wharton. But, true to Bill's unassuming nature, he left almost no footprint on the Web. The lack of reliable sources attesting to his notability made such a page impossible. The brief account below the fold, compiled with invaluable assistance from many of his friends, will have to do instead. Comments with memories of Bill are welcome.

The image is Bill's card from the deck of playing cards the Usenix Association created for the 25th anniversary of the Unix operating system in 1994.

Bill started programming early, spending hours in the computer lab at his high school, and with a Boy Scout group that used computers at NASA's Lewis Research Center in Cleveland.

He graduated from Case Western with a Masters in Computer Engineering. His 1981 thesis involved a significant degree of difficulty: porting Unix V7 to the Harris/6, a 24-bit word addressed machine with a 18 bit address space and a 16 bit program counter. He used a compiler built by Sam Leffler for his companion thesis, and the shell ported by Rob Gingell.

He joined Digital Equipment's Unix Engineering Group with Armando Stettner. They worked on bringing up AT&T's UNIX/32V and 4BSD on Vaxen:
Shannon and Stettner worked on low-level CPU and device driver support initially on UNIX/32V but quickly moved to concentrate on working with the University of California, Berkeley's 4.0BSD. Berkeley's Bill Joy came to New Hampshire to work with Shannon and Stettner to wrap up a new BSD release, incorporating the UEG CPU support and drivers, and to do some last minute development and testing on other configurations available at DEC's facilities. As an aside, the three brought up a final test version on the main VAX used by the VMS development group. No comments were heard from the VMS developers whose terminals greeted them the next morning with a Unix login prompt... UEG's machine was the first to run the new Unix, labeled 4.5BSD.
Tim Bray was there:
The DEC Unix group was pretty small; it featured the talents of Armando Stettner and Bill Shannon. They ran this one big VAX that was really central in the UUCP what-came-before-the-Internet network, called decvax. Bill, a classically geeky redhead, held our hands and helped debug the customer's weird ioctl() calls and get the thing running,
decvax was really important and it was Bill and Armando's baby:
Name of site:

What the site is all about:
 Main system for the DEC Unix Engineering Group

Name of contact person at site:
 Bill Shannon

Electronic mail address of contact person:

U.S. Mail address of contact person:
 Bill Shannon
 Digital Equipment Corporation
 Continental Blvd.
 Merrimack, NH  03054
decvax was key to the explosion of UUCP networking and USENET news groups:
The explosion was the direct responsibility of Armando Stettner and Bill Shannon of Digital Equipment Corporation. Someone at the USENIX meeting complained about the telephone bills run up by transcontinental calls. Armando and Bill said that if they could get a feed to decvax in New Hampshire, they'd pick up the Berkeley phone bill. (Stettner subsequently covered the news feeds to Europe, Japan, and Australia.)
Courtesy of Karen Shannon
This all led to the classic New Hampshire "Live Free Or Die" UNIX license plate:
Shannon's New Hampshire "Live Free or Die" Unix license plate has become not only a geek icon, but a rallying cry for people who related to the source-code-sharing ideas that helped Unix spread.
While working at DEC he met Bill Joy, and was eager to become employee #11 at Sun Microsystems. He was a fixture there through its entire history, and was one of the survivors when it was acquired by Oracle.

Courtesy of Karen Shannon
When Bill and Karen moved to the Bay Area they discovered that the license plate UNIX was taken, so he upgraded to the blue California VMUNIX license plate that adorned his M-series BMWs.

Starting in 1982 Bill Shannon was largely responsible for transforming Bill Joy's special pre-release of  4.2BSD (called 4.1c) into the first version of SunOS. He also made significant contributions to the virtual memory code of 4.2. Shannon had a VAX/750 to run 4.1c on while porting it running to the Sun/1. The rumor is that Shannon asked for the VAX/780 he was used to but Joy said a /750 is all you get - I want you incentivized to get a Sun/1 running it faster than the /750 ASAP. I was an early user of Shannon's work when I joined Carnegie-Mellon's Andrew project.

His work led to the immortal kernel panic() that Tim Bray encountered:
My only contact was once in 1988, standing in front of a Sun box at the University of Waterloo when it crashed, the console printing out Shannon says this can't happen.
Among Bill's contributions was C Style and Coding Standards for SunOS. The abstract provided an elegant justification for venturing into this often controversial area:
This document describes a set of coding standards and recommendations that are local standards for programs written in C for the SunOS product. The purpose of these standards is to facilitate sharing of each other’s code, as well as to enable construction of tools (e.g., editors, formatters) that, by incorporating knowledge of these standards, can help the programmer in the preparation of programs.
Bill was perhaps the central figure in the activities at Sun that evolved Sun UNIX to SunOS and onward. He was the anchor of the culture Sun developed that led to an extremely productive and creative period in which Sun emerged from start-up to industry leader. He was the primary author of few papers, but was an author/contributor to the work many of those papers described. At the summer 1987 Usenix conference this was captured best in his public acknowledgement by Howard Chartock as the "Sheriff of Kernel County", intended as a label of respect and admiration. He was a leading light of the group of SunOS Distinguished Engineers through the AT&T deal that, after years of struggle, merged it with System V to create Solaris. Bill then led the effort to re-target Java to be an application server environment as Java EE.

I have Scott McNealy's permission to quote what he wrote to Bill:
There are 235,000 former Sun folks and countless others who partnered with us in the amazing journey we had. There are a few who were there at the beginning and created the culture that was unique and special to the Valley and to Tech. You were a defining cog and driver of that culture. Your modest, soft spoken but determined voice for what was technically right, economically right, but more importantly what was humanly right was always there at just the right time and tone.

It is no exaggeration to say your influence on the Valley and Tech is oversized and under appreciated, though us Sun folks know what you have done for us all. And no one feels more gratitude for your contributions than me. Always in awe of your tech prowess and prolific work ethic. And your loyalty to all of us.

I am proud to say I worked for you. And learned from you.

Your efforts will live beyond us all. Sun culture has spread everywhere internationally. Our technology still drives the network computing landscape. And your work and impact will outlive all of us who worked at or with Sun.
An enduring mystery surrounds the identities of the perpetrators of Sun's notorious early April Fool's pranks, such as:
  • Eric Schmidt's office in pond (1985)
  • Volkswagen in Eric Schmidt's office (1986)
  • Bill Joy's brand new Ferrari in pond (1987)
  • Golf course in Scott McNealy & Bernie Lacroute's offices (1988)
But there are press reports placing Bill at the "scenes of the crimes".

When I joined Sun in September 1985 to work on window systems with James Gosling I was immediately inducted into the Thursday "windows lunch". Bill was a founding member of this group of engineers, which was initially devoted to complaining about (and trying to improve) Sun's vestigial early user interface.

'86 trip courtesy of Rob Gingell
In the early days, the "windows lunch" also organized an annual ski week at Vail. Part of the ritual was the drive from Denver to Vail and back in a pair of rented Lincoln Continentals. Somehow we believed they were the ideal vehicles to tackle snow and ice. These trips were a testament to Bill's driving skill.

More that a third of a century later five of us are still meeting for lunch every Thursday, no longer talking much about user interface systems, and now greatly missing Bill.

The subject line of Bill's farewell email declared:

 public static final void goodbye() { /**NORETURN*/ }

Update: 4th November 2021:
Porting Unix
Rob Gingell had been looking for this photograph, entitled Porting UNIX, for some time but recently Karen Shannon found it. Rob explains that it shows:
the movement of Bill and Sam Leffler's thesis work on UNIX/24V from a building at Case where the machines they were using were being decommissioned to another building which had machines they could use.

In addition to the DECwriter on the front of the handtruck, there was also a disk drive. Sam's carrying the disk packs for the drive, with Bill on one side of the DECwriter, me pushing the truck and bracing the disk drive from the back. Scott Witzke (a nephew of Don Knuth) is on the other side of the DECwriter and to the far back is Ken Hall.
It appears likely that the photographer was Mike Kukura.


Matthew Jacob said...
This comment has been removed by the author.
Unknown said...

Back in about 1986 AT&T was developing a Unix workstation and they brought a prototype into a conference room in Hardware Engineering on the first floor of Building 1. The AT&T guys couldn't even log in, and someone said "Get Bill Shannon, maybe he can log in." Bill comes in, sits down, and successfully logs in as 'shannon'. The AT&T guys jaws hit the floor. Bill pokes around the file system for only a few minutes, and the system crashes. The AT&T guys say ruefully, "That's why we need you."

-Jim Ludemann

Matthew Jacob said...

How sad! I will greatly miss him. I first heard of Bill back some time in the 80s and looking for a driver for the double density 8" floppy- the rx02. He did that at CWRU I seem to recall and like nearly all of his code, just plain worked.

Later when I was allowed into Sun in late 1987 I found him approachable with reasonable questions.

I definitely remember once criticizing what I felt was a problem in the VM system for us poor device driver peons- and his response was classic Bill: "That's not a bug. That's a misuse of VM facilities."

Matt Jacob

Unknown said...

Ouch. Oddly, I happened to be talking tonight with some old hacker pals, and one mentioned that he had just read about Bill's passing. Armando and Bill were a dynamic duo.

Andy Tannenbaum *!trb (not the Minix one)

Unknown said...

Look at what I stumbled upon on the man page for GNU indent, a program that formats C source code:

"The ‘-bs’ option ensures that there is a space between the keyword sizeof and its argument. In some versions, this is known as the ‘Bill_Shannon’ option."

Good to know his relationship with this specific choice of style. Very interesting person. RIP.

[1] https://linux.die.net/man/1/indent