Unix and Bell Labs — Ninth Test Pots

In the late 1960s, Bell Labs was involved in a project with MIT and General Electric to develop a time-sharing system, called Multiplexed Information and Computing Service (Multics), allowing multiple users to access a mainframesimultaneously. Dissatisfied with the project’s progress, Bell Labs management ultimately withdrew.

Ken Thompson, a programmer in the Labs’ computing research department, had worked on Multics. He decided to write his own operating system. While he still had access to the Multics environment, he wrote simulations for the new file and paging system[clarification needed] on it. He also programmed a game called Space Travel, but it needed a more efficient and less expensive machine to run on, and eventually he found a little-used PDP-7 at Bell Labs.[4][5] On the PDP-7, in 1969, a team of Bell Labs researchers led by Thompson and Ritchie, including Rudd Canaday, developed a hierarchical file system, the concepts of computer processes and device files, a command-line interpreter, and some small utility programs.[3] The resulting system, much smaller than the envisioned Multics system, was to become Unix. In about a month’s time, Thompson had implemented a self-hosting operating system with an assembler, editor and shell, using a GECOS machine for bootstrapping.[6]

The new operating system was initially without organizational backing, and also without a name. At this stage, the new operating system was a singletasking operating system,[3] not a multitasking one such as Multics. The name Unics (Uniplexed Information and Computing Service, pronounced as “eunuchs“), a pun on Multics (Multiplexed Information and Computer Services), was initially suggested for the project in 1970. Brian Kernighan claims the coining for himself, and adds that “no one can remember” who came up with the final spelling Unix.[7] Dennis Ritchie and Doug McIlroy also credit Kernighan.[3][8] Peter H. Salussays that Peter G. Neumann coined the name. [9] This statement, however, is just a quotation of Steve Bourne’s conjecture, which is based on the fact Neumann liked puns. Salus did not contact with Neumann, neither did any confirmation.

When the Computing Sciences Research Center wanted to use Unix on a machine larger than the PDP-7, while another department needed a word processor, Thompson and Ritchie added text processing capabilities to Unix and received funding for a PDP-11/20.[5] For the first time in 1970, the Unix operating system was officially named and ran on the PDP-11/20. A text formatting program called roff and a text editor were added. All three were written in PDP-11/20 assembly language. Bell Labs used this initial text processing system, consisting of Unix, roff, and the editor, for text processing of patent applications. Roff soon evolved into troff, the first electronic publishing program with full typesetting capability.

As the system grew in complexity and the research team wanted more users, the need for a manual grew apparent. The UNIX Programmer’s Manual was published on 3 November 1971; commands were documented in the “man page” format that is still used, offering terse reference information about usage as well as bugs in the software, and listing the authors of programs to channel questions to them.[8]

After other Bell Labs departments purchased PDP-11s, they also chose to run Unix instead of DEC‘s own operating system (DEC manufactured the PDP series). By Version 4 it was widely used within the laboratory and a Unix Support Group was formed, helping the operating system survive by formalizing its distribution.[5][8]

In 1973, Version 4 Unix was rewritten in the higher-level language C, contrary to the general notion at the time that an operating system’s complexity and sophistication required it to be written in assembly language.[10][5] The C language appeared as part of Version 2. Thompson and Ritchie were so influential on early Unix that McIlroy estimated that they wrote and debugged about 100,000 lines of code that year, stating that “[their names] may safely be assumed to be attached to almost everything not otherwise attributed”.[8] Although assembly did not disappear from the man pages until Version 8,[8] the migration to C suggested portability of the software, requiring only a relatively small amount of machine-dependent code to be replaced when porting Unix to other computing platforms. Version 4 Unix, however, still had many PDP-11 dependent codes, and is not suitable for porting. The first port to other platform was made five years later (1978) for Interdata 8/32.[11]

The Unix operating system was first presented formally to the outside world at the 1973 Symposium on Operating Systems Principles, where Ritchie and Thompson delivered a paper. This led to requests for the system, but under a 1956 consent decree in settlement of an antitrust case, the Bell System (the parent organization of Bell Labs) was forbidden from entering any business other than “common carrier communications services”, and was required to license any patents it had upon request.[6] Unix could not, therefore, be turned into a product. Bell Labs instead shipped the system for the cost of media and shipping.[6] Ken Thompson quietly began answering requests by shipping out tapes and disks, each accompanied by – according to legend – a note signed, “Love, Ken”.[12]

In 1973, AT&T released Version 5 Unix and licensed it to educational institutions, and licensed 1975’s Version 6 to companies for the first time.[citation needed] While commercial users were rare because of the US$20,000 (equivalent to $93,123 in 2018) cost, the latter was the most widely used version into the early 1980s. Anyone could purchase a license, but the terms were very restrictive; licensees only received the source code, on an as is basis.[13] The licenses also included the machine-dependent parts of the kernel, written in PDP-11 assembly language. Copies of the Lions’ Commentary on UNIX 6th Edition, with Source Code circulated widely, which led to considerable use of Unix as an educational example. The first meeting of Unix users took place in New York in 1974, attracting a few dozen people; this would later grow into the USENIXorganization. The importance of the user group stemmed from the fact that Unix was entirely unsupported by AT&T.[6]

Versions of the Unix system were determined by editions of its user manuals;[13] for example, “Fifth Edition UNIX” and “UNIX Version 5” have both been used to designate the same version. The Bell Labs developers did not think in terms of “releases” of the operating system, instead using a model of continuous development, and sometimes distributing tapes with patches (without AT&T lawyers’ approval).[6] Development expanded, adding the concept of pipes, which led to the development of a more modular code base, and quicker development cycles. Version 5, and especially Version 6, led to a plethora of different Unix versions both inside and outside Bell Labs, including PWB/UNIX and the first commercial Unix, IS/1.

Unix still only ran on DEC systems.[13] As more of the operating system was rewritten in C (and the C language extended to accommodate this), portability also increased; in 1977, Bell Labs procured an Interdata 8/32 with the aim of porting Unix to a computer that was as different from the PDP-11 as possible, making the operating system more machine-independent in the process. Unix next ran as a guest operating system inside a VM/370 hypervisor at Princeton. Simultaneously, a group at the University of Wollongong ported Unix to the similar Interdata 7/32.[14] Target machines of further Bell Labs ports for research and AT&T-internal use included an Intel 8086-based computer (with custom-built MMU) and the UNIVAC 1100.[15][5]

In May 1975, ARPA documented the benefits of the Unix time-sharing system which “presents several interesting capabilities” as an ARPA network mini-host in RFC 681.

In 1978, UNIX/32V was released for DEC‘s then new VAX system. By this time, over 600 machines were running Unix in some form. Version 7 Unix, the last version of Research Unix to be released widely, was released in 1979. In Version 7, the number of system calls was only around 50, although later Unix and Unix-like systems would add many more later:[16]

A microprocessor port of Unix, to the LSI-11, was completed in 1978,[17] and an Intel 8086 version was reported to be “in progress” the same year.[14] The first microcomputer versions of Unix, and Unix-like operating systems like WhitesmithsIdris, appeared in the late 1970s.[13]