Unix

A Brave New World

IBM had announced their new line of Mainframes - IBM 360 in 1964. This caught the attention of Kenneth Thompson who acquired the copy of the 360 manual. He placed it beside him and read as he drove from San Jose to Berkley. Ken Thompson was not quiet impressed by the machine. The burden the 360 placed on programmers was daunting and its operating system was monster to produce and maintain. It was time for something new and more importantly something better to appear which would challenge the monoploy of the IBM. It was the time for Unix to born.

In 1969 Thompson working closely with his long time Bell Labs collaborator Dennis Ritchie, created the Unix operating system.

Shadows of the past

Multics project could never be completed but it had already a foundation for a new breakthrough. Like Multics, Unix was designed for interactive systems based on the notion of terminals connected to a central computer. The tree like structure of Unix, its command names and shell structure are similar.

Unix was originally named as Unics but the 'x' was added later. The first time the name was written as a label on paper tape - was a very weak pun on Multics, according to Brian Kernighan , who apparently coined the term. " The idea was Unix was one of what Multics was of many".

A New Beginning

While working on the Multics project Thompson had managed to build a computer game called "Space Travel". The game simulated the motion of planets and moons of the solar system. By typing commands, a player could cruise through space and even land on one of the planets. It was a hit with the computer researchers, but the Bell Labs management was not cheered to learn that costly time on GE 635 was computer was being consumed by a space game. Thouh just a simple game, "Space Travel" was going to play a significant role in the birth of Unix.

Blessing in disguise

After the Multics project was abandoned, Thompson and Ritchie lobbied their superiors to let them build their own time-sharing system and to purchase a new Digital PDP-10 machine for the purpose. The Bell Labs management turned down their request and this refusal played a very major role in success of the Unix. Thompson found a Digital PDP-7, an outdated minicomputer but with an excellent display terminal for the computer-screen space excursions. He and Ritchie rewrote Space Travel for the PDP-7. The hardware corset helped to ensure that Unix was elegant, compact and simple. Not getting the PDP-10 turned out to be a blessing in a disguise.

A Project for Ourselves

Thompson began programming the first version of Unix on the PDP-7 when his wife had taken their baby son out to see Thompson's family in California for a month. While she was away, Thompson gave himself one week for each of the four main components of the first-generation Unix system: Kernel, Shell, Editor and assembler for translating the program into machine language. The lean efficiency of Unix reflects the process of its creation a tiny team over the years, working its own pace unguided by market research or thought of customer requirements. Thompson observed, "We did it for ourselves. We were arrogant czars in that sense". Unknowingly they had set foundation for an open source community.

Tools Philosophy

Unix was not bound with any specific designs or requirements since there were no customers to upset. Good ideas were folded into the operating system as they came to fruition in research setting. The big breakthrough was implementing the concept of software "pipes" in Unix, which occurred in 1972. In original idea was conceived during the Multics project where in an internal memo in October 1964, McIlroy wrote "We should have some ways of connecting program like garden hose screw in another segment when it becomes necessary. Thompson recalled that McIlroy had sketched a diagram, of complex mesh where the output of any program could be fed into any program any number of times. Though a revolutionary idea, it was hard to implement. One night I don't know why I got the idea to make it one-dimensional", Thompson recalled. So instead of allowing many inputs of one program only one program output could be streamed as input of the other. The work of implementing pipes into Unix was accomplished in three nights. Thompson alone on one night, joined by Ritchie on the next two. "Those were probably three of the greatest nights of my life", Thompson observed.