Introduction to UNIX for Web Developers From the Beginning UNIX emerged in the late 1960's out of the work of Ken Thompson and Dennis Ritchie who were trying to solve speed and memory limitations of the MULTICS operating system for which they were writing a computer game called "Space Travel".

It is common to say that Thompson and Ritchie developed UNIX. However, in actuality, they were simply the parents of UNIX. In reality, the development of UNIX was due to an international collection of thousands of developers. The saying that it takes a village to raise a child is certainly true for baby UNIX.

Though "Space Travel" was swept into the gutter of history, the operating system that they had written as a utility to make their game run more efficiently changed the future of computing.

Realizing the potential of the prototype UNIX operating system, Bell Labs in Murray Hill New Jersey (yes, something of note did come from New Jersey), decided to give Ritchie and Thompson a brand new DEC computer on which to develop their operating system, and of course, play their game. Bell Labs also provided research and development funds so that Ritchie and Thompson could clean up UNIX

At the time, UNIX was quite a revolutionary concept. Most computers of the era ran single jobs in a batch mode. Programmers fed computers a series of punch cards (woe be to the programmer who dropped a box of cards) which the computer read and interpreted. When one programmer had run her set of cards, the next could run her own.

The problem was that this system did not utilize the real power and speed computers had at their disposal. What was worse was that programmers had no easy way of working together. Specifically, they could not share files, data or programs. Each programmer was isolated to her own set of punch card instructions.

After reading this article, John Bender wrote me an email that contained the following point that I thought interesting enough to share with you. "You have written, 'Each programmer was isolated to her own set of punch card instructions.' You have fallen into the easy pit of taking political correctness to the point where you have made in incorrect assertion on history. The fact remains, that in the 1960's, there would have been an insignificant number of female programmers, if any, to warrent spreading the image of women taking their punch cards to the computer."

UNIX, which built upon the foundation erected by MULTICS, implemented a "time-sharing" strategy that allowed multiple users to interact with the computer via remote terminals simultaneously.

Some computers can do a bunch of things simultaneously because they actually contain several processors. However, most computers only have a single processor. Thus, in truth, they can only do one thing at a time. So how could UNIX perform multi-tasked time-sharing?

Well, time-sharing is based on the idea that most computers have a lot of extra time on their hands because they are so much faster than the people who use them.

Consider the following example: Suppose you are using a word processor to type in a tutorial on UNIX and you stop to think about what you are going to say next. Well, what is the computer doing while you are sitting there thinking? Well, it remains idle. What a waste of all that CPU power! Even if you wrote your tutorial in a stream of consciousness mode, you could never type fast enough to keep up with the computer that processes reality in milliseconds. In the time it takes you to type a key on the keyboard, the computer could have run hundreds of circles around you.

A multi-tasked system takes advantage of this situation by allowing the computer to serve multiple tasks at one time. While you pause to think, the computer can attend to other chores. One of the goals of the operating system is to manage this sharing. The operating system makes sure everyone gets an appropriate amount of attention from the hardware. Fortunately, the computer is so fast that even with a dozen users, none can tell.

By winter of 1972, UNIX was still a research project running on a handful of computers at Bell Labs. However, in 1973 two events combined to initiate the UNIX revolution.

For one, Ritchie and Thompson rewrote the kernel from assembly language to C. The C language provided a high degree of portability and was far more flexible than assembly language which corresponded to the specific computer it needed to talk to. It was also far easier for people to program in C rather than assembly.

This portability made UNIX very attractive to universities and government organizations that needed a standardized system to work in heterogeneous environments. Fortunately, since AT&T was not in the software business, it did not market the product actively. Instead, it provided the operating system at incredibly cheap prices. As a result, UNIX became the norm, conquering some 80% of the market.

Actually, AT&T was one of the first pioneers in modern day, post-industrial information age productization. The idea was that schools got the product cheap ($100.00 in 1979) and everyone else paid a wad ($21,000 in 1979). The idea was that schools would use the system and that the students would grow accustomed. The result of this would be that when the students graduated, they would demand UNIX implementation when they reached the working world.

What is more, since AT&T distributed source code, they could count on hours of free development time from curious students. The same types of strategies have been used to grab market share by such companies as Microsoft and Netscape in recent years. Many times, giving away your software for free is the best way to make money.

UNIX is still the mainstay of universities and government organizations today

In 1984, of course, AT&T was broken up and began to look at UNIX as a viable product. However, by then the developer community was extended beyond the walls of Bell Labs.

UNIX was built in the spirit of a long-standing and deeply important philosophy of software design, "Good programmers write great software. Great programmers steal great software.

One of the most famous software houses developed at the Univesity of California at Berkeley where Ken Thompson, and his new partner Bill Joy (who would later help found Sun Microsystems), were working. Thompson and Joy put out scores of standard UNIX systems and tools over the next decade including the BSD UNIX strains, the C Shell and the vi editor.

"In the early days, every UNIX system was distributed with a complete set of source code and development tools. If UNIX had been a car, this distribution method would have been the same as every car being sold with a complete set of blue prints, wrenches, and an arc-welder.... Now imagine that nearly all these cars were sold to engineering schools. You might expect that the students would get to work on their cars and that soon no two cars would be the same. That's pretty much what happened to UNIX" - John Levine in UNIX For Dummies.

Since then, UNIX has grown immensely, incorporating many new modifications, strains, applications and hardware. With the advent of LINUX, UNIX even made it into the PC world.

Whatever the case, UNIX still maintains its dominance in universities, government and large companies with serious processing demands.

Of course, as we all know, the best way to learn about something, especially a bit of technology, is to start futzing with it. So let's take a look at a UNIX system and see what things we can do!

Previous | Next | Table of Contents