1 Jan 2012
0 CommentsDennis MacAlister Ritchie (1941-2011) – My Inspiration by a Great Man Who Quietly Shaped an Industry
NOTE: The intrusion and profusion of projects in my life, has prevented blogging for some time. As 2011 draws to a close, I thought I needed to make an effort to provide my perspective on some important milestones in my world.
Back in October, when Rob Pike posted on Google+:
I just heard that, after a long illness, Dennis Ritchie (dmr) died at home this weekend. I have no more information.
I trust there are people here who will appreciate the reach of his contributions and mourn his passing appropriately.
He was a quiet and mostly private man, but he was also my friend, colleague, and collaborator, and the world has lost a truly great mind.
Although the work of Dennis Ritchie has not been top of my mind for a number of years, Rob’s posting dredged up some pretty vivid early career memories.
As the co-creator of UNIX, along with his collaborator Ken Thompson, as well as the C Programming Language, Dennis had a huge and defining impact on my career, not to mention the entire computer industry. In short, after years as a leader in technology yet market laggard, it looks like in the end, UNIX won. Further, I was blessed with meeting Dennis on numerous occasions and, to that end, some historical narrative is in order.
Back in 1973, I got my first taste of UNIX at the University of Waterloo, serendipitously placing us among a select few who tasted UNIX, outside of Bell Labs, at such an early date. How did this come about? In 1972, Steve Johnson spent a sabbatical at University of Waterloo and brought B Programming Language (successor to BCPL and precursor to C, with all its getchar and putchar idiom) and yacc to the Honeywell 6050 running GCOS that the University’s Math Faculty Computing Facility (MFCF) had installed in the summer of 1972. Incidentally, although my first computer experience was in 1968 using APL on IBM 2741 terminals connected to an IBM 360/50 mainframe, I really cut my “hacker” teeth on “the ‘Bun” by writing many utilities (some in GMAP assembler and a few in B). But, I digress . .
Because of the many connections made by Steve Johnson at that seminal time, University of Waterloo was able to get Version 5 UNIX in 1973 before any real licensing by Western Electric and their descendents by simply asking Ken Thompson to personally make a copy on 9 track magnetic tape. My early work at Computer Communications Networks Group (CCNG) with Dr Ernie Chang attempting to build the first distributed medical database (shades of Personal Health Records and eHealth Ontario?) led me to be among the first to get access to the first Waterloo-based UNIX system.
The experience was an epiphany for me. Many things stood out at the time about how UNIX differed from Operating Systems of the day:
- Compactness: As described by a fellow UNIX enthusiast at the time, Charles Forsyth, it was amazing that the entire operating system was barely 2 inches thick. This compared tot he feet of listings for GCOS or OS/360 made it a wonder of minimalistic compact elegance.
- High Level Languages: The fact that almost 98% of UNIX was coded in C with very little assembler, even back in the days of relatively primitive computing power, was a major breakthrough.
- Mathematical Elegance: With clear inspiration from nearby Princeton and mathematical principles, the team built software that for the day was surprisingly mathematically pure. The notion of a single “flat file” format containing only text, coupled with the powerful notion of connecting programmes via pipes made the modular shell and utility design a real joy to behold.
- Extensible: Although criticized at the time for being disc- and compute-intensive and unable to do anything “real time”, UNIX proved to have longevity because of a simple, elegant and extensible design. Compare the mid-1970’s UNIX implementations supporting 16 simultaneous users, on the 16-bit DEC PDP-11/45 with 512KB (note that this is “KB” not “MB”) with today’s Windows quad-core processors that still lock out typing for users, as if prioritized schedulers had never been invented.
At Waterloo, I led a team of UNIX hackers who took over an underused PDP-11/45 and create Math/UNIX. On that system, many top computer talents of today adopted it as their own, including Dave Conroy, Charles Forsyth, Johann George, Dave Martindale, Ciaran O’Donnell, Bill Pase and many more. We developed such innovations as highly personalized security known as Access Control Lists, Named Pipes, file and printing networked connections to Honeywell 6050 and IBM mainframes and much more. Over time, the purity of UNIX Version 7 morphed into the more complex (and perhaps somewhat less elegant, as we unabashedly thought at the time) Berkeley Systems Distribution (BSD) from University of California at Berkeley. That being said, BSD added all-important networking capabilities using the then nascent TCP/IP stack, preparing UNIX to be a central force in powering the internet and web. As well, BSD added many security and usability features. My first meeting with Dennis Ritchie was in the late 1970’s when he came to speak at the U of W Mathematics Faculty Computer Science Club. Having the nicest car at the time, meant that I got to drive him around. I was pleasantly surprised at how accessible he was to a bunch of (mostly grad) students. In fact, he was a real gentleman. We all went out to a local pub in Heidelberg for the typical German fare of schnitzel, pigtails, beer and shuffleboard. I recall him really enjoying a simple time out with a bunch of passionate computer hackers. I, along with Dave Conroy and Johann George, moved on from University of Waterloo to my first software start up, Mark Williams Company, in Chicago, where I wrote the operating system and many utilities for the UNIX work alike known as Coherent. Mark Williams Company, under the visionary leadership of Robert Swartz, over the years hosted some of the top computer science talen in the world. Having previously worked with Dave Conroy on a never completed operating system (called Vesta), again the intellectual purity and elegance of UNIX beckoned to me to build Coherent as a respectful tribute to the masters at Bell Labs. Other notable luminaries who worked on Coherent are Tom Duff, Ciaran O’Donnell, Robert Welland, Roger Critchlow, Dave Levine, Norm Bartek and many more. Coherent was initially developed on the PDP-11/45 for expediency and was running in just over 10 months from inception. A great architecture and thoughtful design, meant that it was quickly ported to the Intel x86 (including the IBM PC, running multi-user on its non-segmented, maximum of 256KB of memory), Motorola 68000 and Zilog Z8001/2. The last architecture enabled Coherent to power the Commodore 900 which was for a time a hit in Europe and, in fact, used by Linus Torvolds as porting platform used in developing Linux. I got to meet Dennis several times in the context of work at Coherent. First, in January 1981 at the then fledgling UNIFORUM in San Francisco, Dennis and several others from Bell Labs came to the Mark Williams suite to talk to us and hear more about Coherent. I remember Dennis reading the interrupt handler, a particularly delicate piece of assembler code and commenting about how few instructions it took to get through the handler into the OS. Obviously, I was very pleased to hear that, as minimizing such critical sections of the code is what enhanced real time response. The second time was one of my first real lessons in the value of intellectual property. Mark Williams had taken significant measures to ensure that Coherent was a completely new creation and free of Bell Labs code. For example, Dave Conroy‘s DECUS C compiler, written totally in assembler, was used to create the Coherent C compiler (later Let’s C). Also, no UNIX source code was ever consulted or present. I recall Dennis visiting as the somewhat reluctant police inspector working with the Western Electric lawyers, under Al Arms. Essentially, he tried all sorts of documents features (like “date -u” which we subsequently implemented) and found them to be missing. After a very short time, Dennis was convinced that this was an independent creation, but I suspect that his lawyer sidekick was hoping he’d keeping trying to find evidence of copying. Ironically, almost 25 years later, in the SCO v. IBM lawsuit over the ownership of UNIX, Dennis’s visit to Mark Williams to investigate Coherent was cited as evidence that UNIX clone systems could be built. Dennis’s later posting about this meeting is covered in Groklaw. In 1984, I co-founded MKS with Alex White, Trevor Thompson, Steve Izma and later Ruth Songhurst. Although the company was supposed to build incremental desktop publishing tools, our early consulting led us into providing UNIX like tools for the fledgling IBM PC DOS operating environment (this is a charitable description of the system at the time). This led to MKS Toolkit, InterOpen and other products aimed at taking the UNIX zeitgeist mainstream. With first commercial release in 1985, this product line eventually spread to millions of users, and even continues today, surprising even me with both its longevity and reach. MKS, having endorsed POSIX and x/OPEN standards, became an open systems supplier to IBM MVS, HP MPE, Fujitsu Sure Systems, DEC VAX/VMS, Informix and SUN Microsystems.During my later years at MKS, as the CEO, I was mainly business focussed and, hence, I tried to hide my “inner geek”. More recently, coincidentally as geekdom has progressed to a cooler and more important sense of ubiquity, I’ve “outed” my latent geek credentials. Perhaps it was because of this, that I rarely thought about UNIX and the influence that talented Bell Labs team, including Dennis Ritchie, had on my life and career. Now in the second decade of the 21st century, the world of computing has moved on to mobile, cloud, Web 2.0 and Enterprise 2.0. In the 1980’s, after repeated missed expectations that this would (at last) be the “Year of UNIX” we all became resigned to the total dominance of Windows. It was, in my view, a fatally flawed platform with poor architecture, performance and security, yet Windows seemed to meet the needs of the market at the time. After decades of suffering through the “three finger salute” (Ctrl-ALT-DEL) and waiting endlessly for that hourglass (now a spinning circle – such is progress), in the irony of ironies UNIX appears on course to win the battle for market dominance. With all its variants (including Linux, BSD and QNX), UNIX now powers most of the important Mobile and other platforms such as MacOS, Android, iOS (iPhone, iPad, iPod) and even Blackberry Playbook and BB10. Behind the scenes, UNIX largely forms the architecture and infrastructure of the modern web, cloud computing and also all of Google. I’m sure, in his modest and unassuming way, Dennis would be pleased to witness such an outcome to his pioneering work.
The Dennis Ritchie I experienced was a brilliant, yet refreshingly humble and grounded man. I know his passing will be a real loss to his family and close friends. The world needs more self-effacing superstars like him. He will be greatly missed.
I think there is no more fitting way to close this somewhat lengthy blogger’s ramble down memory lane than with a humorous YouTube pæan to Dennis Ritchie Write in C.
17 Aug 2012
0 CommentsThe Bun Reunion “AfterMath”
After welcoming people to the 050th Reunion of the ‘Bun and other 1970’s computing at University of Waterloo in mid-August 2012, I’ve gathered together a photo album, the brief presentation from the Gala and the many comments received outside of the earlier blog post.
Before the Gala, almost 100 photos were gathered which have grown to almost 250 contributed by various attendees. Enjoy browsing the memories.
I’ve also included the brief presentation from the Gala on Saturday 18 August, 2012 in case anyone wants to see that:
Finally, there was a lively discussion via email, Facebook, Google+, LinkedIn and Twitter both from attendees and those who were unable to join us. The following is a summary of some of those reflections and comments:
Morven Gentleman
Randall,
The first story that comes to mind is how we got the Bun in the first place.
In 1971, Eric Manning and myself as young faculty members felt that it was embarrassing that a university which wanted to pride itself on Computer Science did not have any time-sharing capability, as all the major Computer Science schools did.
At the time, the Faculty of Mathematics was paying roughly $29,000/month to IBM for a IBM 360/50, which was hardly used at all – it apparently had originally been intended for process control, but that never happened. (Perhaps the 360/50 had been obtained at the same time as the 360/75 – I never knew.) So Eric and I approached the dean with a proposal to see if those funds could be diverted to be spent instead on obtaining time-sharing service. The dean approved us proceeding to investigate the options.
The popular time-sharing machine of the day in universities was the DEC PDP-10, so we wired a spec to get one, but issued the RFP to all vendors. In the end, we received bids from IBM, Control Data, Univac, DEC, and Honeywell. IBM bid a 360/67 running TSS 360 at more than twice what we were paying for the 360/50, and at the time only the University of Michigan’s MTS software actually worked at all on the machine: the bid was easily dismissed. Control Data bid a CDC 6400 at above our budget, but at the time didn’t have working time-sharing software: again easily dismissed. Univac bid an 1106, again above our budget, and although its OS, Exec 8, had some nice aspects as a batch system, we had no awareness of time-sharing on it: so we dismissed it too. DEC bid a KA 10 almost exactly at our budget: this was what we originally wanted, so it made the short list. Honeywell bid the 6050 for $24000/month, notable savings for the Faculty, and since I had used GCOS III at Bell Labs, I knew that even if not ideal, it would be acceptable: again on the short list.
Announcing the short list had a dramatic effect. DEC was so sure that they would win that they revealed that, as was their common practice in that day, they had low-balled the bid, and a viable system was actually going to cost $32,000/month.
Honeywell instead sweetened their bid – more for the same money, and the opportunity for direct involvement with Honeywell’s engineering group in Phoenix. Whereas with DEC we would be perhaps thousandth university in line, and unlikely to have any special relationship, Honeywell only had three other university customers: MIT, who were engrossed with Multics; Dartmouth, who had built their own DTSS system; and the University of Kansas, who had no aspirations in software development – we would be their GCOS partner.
The consequence was there was no contest. The Faculty cancelled the 360/50 contract and accepted Honeywell’s bid. I agreed to take on the additional responsibility for running the new time-sharing system. The machine had already been warehoused in Toronto, so it was installed as soon as the machine room on the third floor could be prepared.
Morven (aka wmgentleman)
Eric Manning
Hi Randall
Yes, all’s well here. I was mandatorily retired from UVic but continue to work on various projects for the Engineering Faculty, and a bit of consulting etc. Engineering has no end of interesting things to work on.
I’m very sorry that I can’t attend your Unix/Bun/CCNG celebration; the mark we made certainly should be celebrated!
I’m distressed about the crash & burn of Nortel and now RIM, and I certainly wish you well in keeping the tech sector alive and well.
Rocks, logs and banks alone do not a healthy economy make.
All the best
Eric
Gary Sager
Randall,
Unfortunately I have to be in Seattle at that time. It does sound like a good time will be had. I would especially like to go to the Heidelberg again (which I did have the occasion to do in 2001 [or so]).
After Waterloo, I did time at BTL (in Denver, working on real-time systems) then wound up at Sun in charge of the Operating Systems and Networking group — putting me in charge of what was arguably the best set of UNIX people ever assembled. Had a number of other adventures after Sun, and finally decided to retire when the people I was hiring were more interested in how much money they could make than in what they would be doing. Guess I was spoiled by the Sun people I managed.
I have a “blog” updated quarterly for friends and family: http://bclodge.com/index.htm
Do look us up if you are ever in this area (Bozeman, MT). Some memories:
One day some malicious (and uncreative) person copied down a script that was known to crash UNIX by making it essentially unusable. It went something like:
Some subset of the hacks (I forget which) spent a great deal of time trying to figure out how to undo the damage. The obvious things did not work. They finally decided to go to dinner and think about it. I stayed and thought of a way to fix the problem; I finished the fix just as they returned. They wanted to know how I did it. I never told them and am still holding the secret (it was a truly disgusting hack).
Anyhow, the hacks I most remember (other than yourself) were Ciaran O’Donnell (on LinkedIn), Dave Conroy, the underage Indian kid whose name escapes me at the moment, and one more Dave (Martindale?).
Some more stories:
Someone from Bell Labs came to give a talk about text to voice and gave a demo by logging in via phone modem to the Bell Labs computers. The hacks looked at the phone records and figured out how to log in to the BTL system. Suddenly our Math/UNIX system was getting all the latest new UNIX features before they were released (by means unbeknownst to me). The BTL people weren’t terribly happy when they found out, but they were happy to accept a guarantee it would stop.
We kept trying to use the IBM system to do printing with a connection to one of their channels (I think they were called). It would frequently stop working and someone would have to call the operator and say “restart channel 5” (or some other jargon). I had a meeting with the IBM staff to see if we could get the problem fixed. At that meeting I recall one of the staff was incredulous that our system did not reboot when they rebooted the IBM mainframe. Anyhow, they were reluctant to fix the problem so I told them I would fix it by buying a voice synthesizer (as demonstrated by BTL) and have our system call their operator to instruct them to “restart channel 5”. They fixed the problem.
The worst security problem I recall someone finding in the ‘Bun’ was to do an execute doubleword where the second word was another execute doubleword. Execute double word disabled interrupts — this was a way of
executing indivisible sequences of instructions. By chaining this way for exactly the right amount of time (1/60 second I think) and doing a system call as the last instruction, there would be a fault in the OS for disabling interrupts too long and the system would crash. I don’t know if anyone ever figured out a fix since this was essentially hardwired into the machine.
I assume there will be pictures, etc from the event….
Gary (aka grsager)
Richard Sexton
Richard Sexton: I still used the ‘bun for a few months when I moved to LA in 79 (x.25 ftw). I’d love to be there but can’t make it that day but I promise when there’s a similar event for math unix I will be there; that was the first (and I sometimes think only) decent computer I ever used.
When I worked with Dave Conroy summers at Teklogix, we worked for Ted Thorpe who was the Digital sales guy running around selling the same machine to six different universities just so they could sign for it at the shipping dock and get it on *this* years budget. Ted would then take the machine to the next school until Digital has actually made enough they could ship all the ones that had actually been ordered.
Stefan Vorkoetter: Wow! I remember using that machine in the 80s. It must have been kept alive for quite a while if it was installed 40 years ago.
Judy McMullan: It was decommissioned Apr 23, 1992
Brenda Parsons: The 6050 or the Level 66 or the DPS8 — wasn’t there a hardware change in there somewhere before ’92?
Jan Gray: Thanks for explaining the S.C. Johnson connection. I had no idea how the Unix culture came to Waterloo.
Check out Thinkage‘s GCOS expl catalog for real down-memory-lane fun: http://www.thinkage.ca/english/gcos/expl/masterindex.html
I was just a young twerp user, but I fondly remember the Telerays and particularly rmcrook/adv/hstar. As well as this dialog (approximate) :-
Ciaran O’Donnell
Random musings from the desk of Ciaran O’Donnell when he should be working
I would especially like to thank my dear friend Judy McMullan for organizing this wonderful reunion.
I am so glad to have gone to a University that was born the same year as me, that taught you Mathematics, that did not force you to program in Cobol or use an IBM-360, and that paid people like Reinaldo Braga to write a B compiler. It was nice to have L.J. Dickey teach you about APL in a world before Excel and to learn logic and geometry.
It was so nice to go to university, to not have to own a credit card or a car, to be able to wash floors at the co-op residence, and to pay tuition for the price of a 3-G iPad today. It was not so bad either not to get arrested for smoking pot or crashing the Honeywell main frame even though one was quite a nuisance, or to play politics on the Chevron.
It was so neat to be mentored by people like Ernie Chang and Jay Majithia. The University of Waterloo in the 1970s is an unsung place of great programming. I just have to look at what people like Ron Hansen accomplished designing a chess program or what David Conroy has become. As for myself, I have actually learned C++ and Java which proves that you can teach an old dog new tricks.
How things have changed. Back then, we kicked the Marxist-Leninists off the Chevron. Nowadays, communist officials from China can come to America and get a heroes welcome at a Los Angeles Lakers game. All I will say about my life since 1979 is that I have been in France is … “I KNOW NOTHING” like Sgt. Schultz from Hogan’s Heroes.
I am especially grateful to Steven C Johnson for having inspired me to get into compilers and to Sunil Saxena for having encouraged me to come to California.
There are a lot of fun people down here from Waterloo including myself, Peter Stevens, Rick Beach, Sanjay Rhadia, David Cheriton, Dave Conroy, Kent Peacock, Sunil Saxena, John Williamson, and a whole bunch of others.
Ciaran (aka cgodonnell)
Dave Conroy
Sadly, I am not going to make it. It was touch and go right to the end, but I have to go to DC to be a witness in an ITC dispute.
Lynn and I will try and sync with the group online on Saturday.
dgc