Unix began as a small Bell Labs system and became several related things: a source- code lineage, an interface tradition, a standardized environment, and a registered trademark. Historical claims become misleading when those categories are collapsed into one family tree.
From Multics to the PDP-7 #
Bell Labs participated with MIT and General Electric in the Multics project during the 1960s, then withdrew in 1969. Ken Thompson retained an interest in interactive computing and filesystem design. He had also written Space Travel, first for Multics and then for a GECOS system whose development cycle made experimentation expensive.
An underused DEC PDP-7 at Bell Labs provided a practical target. Thompson wrote a filesystem, process support, an assembler, a shell, and utilities for it in 1969. Dennis Ritchie, Rudd Canaday, Doug McIlroy, and other researchers contributed to the emerging environment. Brian Kernighan coined “Unix” as a play on “Multics.”
The PDP-7 implementation was written in assembly and had severe memory constraints. Several durable ideas were already present: a hierarchical filesystem, processes, device access through file-oriented interfaces, command interpreters as ordinary programs, and small tools that could be combined.
Moving to the PDP-11 #
Bell Labs acquired a PDP-11/20 in 1970 after the group proposed a text-processing
system. The machine initially lacked a disk, so development required a cross-
assembler and paper tape before the new system became self-supporting. Text
processing supplied an organizational purpose: Bell Labs patent departments later
used Unix with roff, nroff, and troff.
Early PDP-11 Unix remained assembly-language software. Hardware dependence made a port difficult because instruction sequencing, calling conventions, interrupts, and device code permeated the kernel. A high-level implementation language could reduce that dependence, but only if it exposed efficient pointers, integer operations, and machine-level storage.
From Assembly through B to C #
Thompson derived B from BCPL for systems programming. B’s typeless, word-oriented model fit the PDP-7 but mapped poorly to the PDP-11’s byte addressing and emerging floating-point support. Ritchie extended the language through “New B” into C by adding types, structures, and a compiler suited to the PDP-11.
An attempted B rewrite did not deliver the required performance and semantics. During 1972–1973, Thompson and Ritchie rewrote most of the kernel in C while retaining assembly for startup, traps, context switching, and other architecture-specific operations. Portability thus meant isolating machine dependence rather than removing it.
The 1974 Communications of the ACM paper described the system publicly. A later Interdata port validated the strategy: a C kernel and userland could move to a different architecture after supplying a compiler, runtime, and machine-dependent kernel layer.
Research Unix Editions #
“Research Unix” denotes editions produced by the Bell Labs Computing Science Research Center rather than every AT&T product. Edition numbers came from successive editions of the Unix Programmer’s Manual:
- The First Edition appeared in 1971 for the PDP-11.
- The Third Edition included pipes, which McIlroy had advocated as a composition mechanism.
- The Fourth Edition reflected the C rewrite.
- The Sixth Edition, released in 1975, became a widely studied and licensed academic system.
- The Seventh Edition, released in 1979, consolidated substantial kernel and tool development and became an ancestor of several later branches.
- Research continued through the Eighth, Ninth, and Tenth Editions inside Bell Labs.
AT&T distributed Unix source under license to universities, government users, and commercial organizations. Contemporary consent-decree restrictions shaped AT&T’s computer-business activity, while licensing terms still controlled redistribution. Academic licensees could study and modify source, but the arrangement was not an open-source license in the modern sense.
UNIX/32V carried Seventh Edition code to the VAX without Berkeley’s later virtual- memory work. The source path matters because BSD and several commercial systems incorporated or evolved licensed Research Unix code rather than merely imitating its interfaces.
BSD and the AT&T Commercial Line #
The Berkeley Software Distribution began as software and patches for licensed Unix
at the University of California, Berkeley. Successive releases added the vi
editor, the C shell, virtual memory, the sockets API, TCP/IP, the Fast File System,
and other kernel and userland work. 3BSD and 4BSD retained AT&T ancestry; later
Networking Release 2 and 4.4BSD-Lite underwent code review and replacement that
enabled freely redistributable BSD descendants.
Modern FreeBSD, NetBSD, and OpenBSD descend through BSD code. Darwin, the open-source foundation of macOS, combines Mach with substantial BSD facilities and userland, so macOS has BSD code ancestry without being a direct continuation of one Research Unix kernel.
AT&T’s product line followed a different path through the Programmer’s Workbench, UNIX/TS, System III, and System V. System V Release 4 combined AT&T work with BSD, SunOS, and other contributions. Commercial descendants and derivatives include Solaris, AIX, and HP-UX, but their exact source relationships and retained components differ by release.
POSIX and Interface Lineage #
Vendor divergence made source portability difficult, so IEEE standardized a portable operating-system interface. POSIX specifies APIs, shell and utility behavior, and related conventions. The Open Group’s Base Specifications combine POSIX with the Single UNIX Specification.
Standards lineage is not code lineage:
- Linux was independently implemented and contains no necessary Research Unix or BSD kernel ancestry merely because it implements many POSIX interfaces.
- A BSD-derived system can retain historical code while differing from a current POSIX requirement.
- Applications can target POSIX source interfaces without depending on one kernel architecture or on the historical Unix source license.
GNU supplied an independently developed compiler, C library, shell, and utilities for Unix-like environments. Linux distributions combine the Linux kernel with GNU and other projects, which further demonstrates why an interface family is not one codebase.
The UNIX Trademark #
UNIX is a registered trademark of The Open Group. A product may use the UNIX brand when it conforms to the applicable Single UNIX Specification and completes the certification program. Certification concerns observable conformance; it does not require descent from Bell Labs source.
Conversely, “Unix-like” is a descriptive engineering term rather than a certification. A system can share process, filesystem, shell, and API conventions without carrying the UNIX trademark. Precise historical writing should state which relationship is intended:
- Code lineage traces inherited and replaced source.
- Standards lineage traces conformance to POSIX or the Single UNIX Specification.
- Trademark status traces certification and naming rights.
Comments
Read or comment on GitHub (sign-in required to comment)