1/ Almost the 49th birthday of Ethernet (3Mb)! Here’s another History lesson and a story about my role in “holy wars” with 3Mb Ethernet and UNIX. Few people realize how long-lived and widespread 3Mb Ethernet became… 🧵
5/ By 1980 or so, 3Mb Ethernet was pretty common within Xerox, and was spreading to partner universities like Stanford and CalTech. There were a number of other computers and printers designed by Xerox with Ethernet, and universities got some of those too.
8/ They had some success, but the market then mostly wanted broadband solutions which could cover a much larger area. Sytek had some popular broadband products.
9/ At Stanford, Andy Bechtolsheim designed a 3Mb Ethernet board for “Multibus” – an open system bus being pushed broad and wide by Intel at the time. The original “workstation” was a set of 3 Multibus boards: CPU, Ethernet, and Video.
13/ Anyways, 3Mb Ethernet was already 9 years old when this happened — with many more years to come! Another direction Ethernet was expanding was into minicomputers. Xerox in El Segundo designed a UNIBUS board for 3Mb Ethernet which worked with DEC’s PDP-11 and VAX systems.
15/ In 1980, Danny Cohen (RIP) published a wonderful article called “On Holy Wars and a Plea for Peace” which cemented the terminology of “little-endian” and “big-endian” is describing bit and byte order serialization used in computers systems.
16/ The Xerox Alto, the 68000 CPU chip used in Suns, and the PDP-10s and IBM mainframes that dominated at Stanford were all “big-endian” systems, and official byte order for Ethernet, Arpanet, and most other protocols was always big-endian.
17/ OTOH, up at Berkeley, there was a hotbed of PDP-11 and VAX systems being used to develop Berkeley UNIX. PDP-11s and VAXen were little-endian, so those big-endian network protocols were less convenient.
18/ Xerox had designed the UNIBUS board in the obvious way, which was to transfer a 16-bit words one at a time from memory to network or vice-versa. See where this is heading?
19/ One day in late 1982, Bill Shannon(RIP) and I loaded up a Sun workstation with 3Mb Ethernet into the back of my VW Rabbit (SUN UNIX plates) and headed up to Berkeley to do some TCP/IP interoperability testing between Suns and VAXen (4.1c BSD UNIX).
20/ Once we plugged everything together, we were all distressed to find NOTHING worked.
21/ From my days of porting UNIX to IBM mainframes, I was very familiar with byte-swapping problems, so as soon as I saw some packet traces I figured out what was going on: all of Berkeley’s PDP-11s and VAXen were happily talking among themselves, but…
22/ with the wrong byte order!! A quick hack to the UNIBUS driver “fixed” the problem, but at a serious performance cost! Handling every byte another time on a slow minicomputer was enough to significantly reduce the Ethernet performance.
23/ So Berkeley decided to keep the wrong byte order as the default – creating a little-endian sect of 3Mb Ethernet! Nobody was happy with the choices available. Xerox should’ve done better with the hardware design.
24/ Beyond 1982: By the time 10Mb Ethernet came out, 3Mb was well-entrenched in a bunch of places. Bridges and routers were largely unheard of, so the market for 3Mb cards continued.
26/ So, the “experimental” 3Mb Ethernet lasted at least 16 years – maybe longer. And the Xerox Alto and 3Mb Ethernet continue to run today at the @ComputerHistory museum! computerhistory.org/revolution/inp…