Page 1 of 3
When the personal computer made computing power available to almost anyone who wanted it there was an explosion of creative talent. It was as if a dam had been opened and word processors, spreadsheets and a myriad of other software tumbled out. It is still the case that if you have a good idea and the talent to go with it then there is very little stopping you from creating the program that will change the world.
Software innovators tend to be characterised as free thinking mavericks, and youthful entrepreneurs - and all of this depends on the low cost of computer hardware. Amazingly there is one very clear example of this sort of software innovation back in the days of the mainframe and the minicomputer. Deep in the hidden corners of the mighty Bell Communications company Dennis Ritchie and Kenneth Thompson had the freedom to play with expensive hardware and produced Unix and the C language just for their own amusement!
Kenneth Lane Thompson, born February 4, 1943 (left) Dennis MacAlistair Ritchie (Sept 9, 1941-Oct 9, 2011)
Like all good teams, Ritchie and Thompson had different but complementary qualities. Dennis Ritchie studied physics and then moved on to pure computer science via maths. His PhD thesis was on recursive functions, but he got bored with it and never submitted it. Ken Thompson was an electronics enthusiast in the days when the transistor was new and there were still things worth building! He was also keen on chess, a fact that we will return to. He studied electrical engineering but discovered that computing was just as interesting.
"Computing is an addiction. Electronics is a similar addiction but not as clean. Much dirtier. Things burn out!"
It would be too much of a simplification to say that Ritchie was the theoretician and Thompson the practician but the difference in their backgrounds must have helped rather then hindered their working together.
The fates brought them together at the Bell Laboratories around 1968. The Bell Labs were famous for the home of the transistor and many other basic research projects. Ritchie and Thompson were given the brief to "investigate interesting problems in computer science". The pair of them decided to implement an operating system but Bell had just had a bad experience with the Multics operating system. This was another one of those multi-company attempts at a time-sharing operating system but Bell pulled out as the bill for the project spiralled. This was not the ideal time to suggest another operating system project.
Thompson found an obsolete PDP 7 mini computer - even in those days the pace of things was fast enough for machines to become obsolete while they were still usable.
He added a fancy graphics terminal to it that had been discarded from a mainframe - see what I mean about being the practical one of the team! They started work on their operating system. It wasn't exactly easy because the PDP 7 wasn't self-sufficient. They had to use a PDP 7 cross assembler that Thompson wrote for a GE mainframe.
Most of the actual work on the operating system was done by Thompson but Ritchie contributed theoretical ideas that helped to shape the form of the filing system. After two years of work (what story they were telling Bell is anyone's guess) the operating system had outgrown the PDP 7 and they had their eye on a PDP 11.
The PDP 11 could be regarded as the forerunner of the of the personal computer. It had a small but neat architecture which had enough power to run interactive software. They couldn't make a proposal that Bell give them a PDP 11 to develop an operating system because the memory of the Multics failure was still in the air. So instead they proposed what today we would call an office automation system for the patent department. Bell must have been naive because they passed it and Thompson and Ritchie got a PDP 11 of their very own.