UNIX was initially developed at Bell Labs and became operational on a PDP-7 in 1970. MIT’s Project MAC is project led to the development of first CTSS and then Multics. Nevertheless, UNIX incorporated many ideas from Multics.
The first notable milestone was porting the UNIX system from the PDP-7 to the PDP-11. This was the first hint that UNIX would be an OS for all computers. The next important milestone was the rewriting of UNIX in the programming language C. It was generally felt that something as complex as an OS, which must deal with time-critical events, had to be written exclusively in assembly language. Reasons for this attitude include the following:
• Memory (both RAM and secondary store) was small and expensive by today’s standards, so effective use was important. This included various techniques for overlaying memory with different code and data segments, and self-modifying code.
• Even though compilers had been available since the 1950s, the computer industry was generally skeptical of the quality of automatically generated code. With resource capacity small, efficient code, both in terms of time and space, was essential.
• Processor and bus speeds were relatively slow, so saving clock cycles could make a substantial difference in execution time.
The C implementation demonstrated the advantages of using a high-level language for most if not all of the system code. Today, virtually all UNIX implementations are written in C.
These early versions of UNIX were popular within Bell Labs. In 1974, the UNIX system was described in a technical journal for the first time [RITC74]. The first widely available version outside Bell Labs was Version 6, in 1976. The follow-on Version 7, is the ancestor of most modern UNIX systems. The most important of the non-AT&T systems to be developed was done at the University of California at Berkeley, called UNIX BSD (Berkeley Software Distribution), running first on PDP and then VAX computers. AT&T continued to develop and refine the system.