History of Unix

The history of Unix dates back to the mid-1960s, when the Massachusetts Institute of Technology, AT&T Bell Labs, and General Electric were jointly developing an experimental time-sharing operating system called Multics for the GE-645 mainframe. Multics introduced many innovations, but also had many problems. Bell Labs, frustrated by the size and complexity of Multics but not its aims, slowly pulled out of the project. Their last researchers to leave Multics – among them Ken Thompson, Dennis Ritchie, Doug McIlroy, and Joe Ossanna – decided to redo the work, but on a much smaller scale.

In 1979, Ritchie described the group's vision for Unix:

"What we wanted to preserve was not just a good environment in which to do programming, but a system around which a fellowship could form. We knew from experience that the essence of communal computing, as supplied by remote-access, time-shared machines, is not just to type programs into a terminal instead of a keypunch, but to encourage close communication."

Multics
In the late 1960s, Bell Labs was involved in a project with MIT and General Electric to develop a time-sharing system, called Multics, allowing multiple users to access a mainframe simultaneously. A key concept of the Multics system was the use of a single-level store. In this concept, there is no directly accessible file system. Instead, programs simply refer to data as if it is already in memory, if it is not, the virtual memory (VM) system loads it automatically. This means programs do not have to write code to explicitly read and write data from files into memory to manipulate it, the operating system does this all invisibly.

The Multics project began to bog down, and it became clear to the Bell team that the system was unlikely to deliver a working operating system in the near term, let alone a reasonably performant one. Bell Labs management ultimately withdrew from the project, and it seemed likely the company was going to end their lease on the very expensive GE 645 mainframe. Ken Thompson, a programmer in the Labs' computing research department, enjoyed the flexibility of Multics and began considering a new operating system that could run on less sophisticated machines.

New system
The basic concept was to use Multics' hierarchical file system but remove the single-level store. Thompson felt that the idea of a single-level store was ultimately a bad one as it treats all memory the same, whether program code or data, when in actual use they were treated very differently. Program code is rarely modified at runtime, may be placed in a read-only area of memory, and is randomly accessed due to branching. In contrast, data is almost always writable as runtime modification of file data is often the entire point of the program, and sequential access, as opposed to random, is a normal means of access. While his new system would require programmers to write their own routines to load and save data, that did not appear to be unreasonable.

Thompson began writing simulations of the new system under Multics, to understand the paging performance of the system. As this appeared promising, Thompson began writing the system for the GE 645, starting with a new custom assembler language. But it soon became clear that the 645 would be gone in some months, and the work was abandoned. Throughout this period, Thompson also repeatedly petitioned management to purchase a smaller system than the GE 645 in order to build a similarly programmer-friendly operating system. Management refused all of these requests.

Space Travel, move to PDP-7
In 1969, Thompson had also written a video game, Space Travel, under the GECOS operating system on the smaller GE 635 machine. This had the problem that a typical game cost $75 worth of billable CPU runtime. When he learned that Visual and Acoustics Research department had a small PDP-7 that was largely unused, he began to rewrite the game for this machine. This was initially performed by building a binary for the PDP-7 using a cross compiler on the 635, and then moving the resulting code to the PDP-7 using paper tape.

This became tedious, and Thompson began considering writing his new operating system on the new machine. This was aided by a timely vacation by his wife, leaving him with a month to work on it full time. Aided by Ritchie and Rudd Canaday, they implemented a version of the hierarchical file system Thompson had studied on the 645. The ability to start programs stored in that file system soon followed, and then small programs to copy, delete, print and edit those files, along with a command-line interpreter to allow the user to perform all of these operations interactively. With these in place, a new assembler was written for the machine, and Space Travel moved entirely to the new platform.

A key concept that was added during this period was made by Ritchie, the concept of a device file. This was a file in the file system with the special ability to perform input/output operations. This allowed different devices to be supported simply by placing a file in an appropriate location in the file system. Read and write operations accessing these pseudo-files would perform operations on the device itself. This meant that devices were abstracted away through the file system, and programs could manipulate files no matter what sort of device they were on.

Douglas McIlroy then ported TMG compiler-compiler to PDP-7 assembly, creating the first high-level language running on Unix. Thompson used this tool to develop the first version of his B programming language.

1970s


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, 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. Dennis Ritchie and Doug McIlroy also credit Kernighan.

When the Computing Sciences Research Center wanted to use Unix on a machine larger than the PDP-7, while Bell Labs Patent Department needed a word processor, Thompson and Ritchie added text processing capabilities to Unix and received funding for a PDP-11/45. For the first time in 1970, the Unix operating system was officially named and ran on the PDP-11. A text-formatting program called roff and a text editor were added. All three were written in PDP-11 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.

After other Bell Labs departments purchased DEC PDP-11s, they also chose to run Unix instead of DEC's own operating system. 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.

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. 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". Although assembly did not disappear from the man pages until Version 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 considerable PDP-11-dependent code and was not suitable for porting. The first port to another platform was made five years later (1978) for Interdata 8/32.

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. Unix could not, therefore, be turned into a product. Bell Labs instead shipped the system for the cost of media and shipping. Ken Thompson quietly began answering requests by shipping out tapes and disks, each accompanied by – according to legend –  a note signed, "Love, Ken".

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. While commercial users were rare because of the US$20,000 1975 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. 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 USENIX organization. The importance of the user group stemmed from the fact that Unix was entirely unsupported by AT&T.

Versions of the Unix system were determined by editions of its user manuals; 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). 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. 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. 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.

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:

"Version 7 of the Research UNIX System provided about 50 system calls, 4.4BSD provided about 110, and SVR4 had around 120. The exact number of system calls varies depending on the operating system version. More recent systems have seen incredible growth in the number of supported system calls. Linux 3.2.0 has 380 system calls and FreeBSD 8.0 has over 450."

A microprocessor port of Unix, to the LSI-11, was completed in 1978, and an Intel 8086 version was reported to be "in progress" the same year. The first microcomputer versions of Unix, and Unix-like operating systems like Whitesmiths' Idris, appeared in the late 1970s.

1980s






Bell developed multiple versions of Unix for internal use, such as CB UNIX (with improved support for databases) and PWB/UNIX, the "Programmer's Workbench", aimed at large groups of programmers. It advertised the latter version, as well as 32V and V7, stating that "more than 800 systems are already in use outside the Bell System" in 1980, and "more than 2000" the following year. Research Unix versions 8 (1985 ), 9 (1986 ), and 10 (1989
 * "Even so, the lesser-known editions within AT&T's Unix System Laboratories were the Eighth Edition in 1985, the Ninth Edition in 1986, and in 1989 the Tenth Edition"


 * ) were developed through the 1980s but were only released to a few universities, though they did generate papers describing the new work.


 * "Many of the (Version 10 Unix) medium-size tool programs (and their documentation) survived into the Plan 9 system, and are described in its programmer's manual and its own collection of papers."



This research focus then shifted to the development of Plan 9 from Bell Labs, a new portable distributed operating system.

Because the company widely and inexpensively licensed Unix, by the early 1980s thousands of people used Unix at AT&T and elsewhere, and as computer science students moved from universities into companies they wanted to continue to use it. Observers began to see Unix as a potential universal operating system, suitable for all computers. Less than 20,000 lines of code – almost all in C –  composed the Unix kernel as of 1983, and more than 75% was not machine-dependent. By that year Unix or a Unix-like system was available for at least 16 different processors and architectures from about 60 vendors; BYTE noted that computer companies "may support other [operating] systems, but a Unix implementation always happens to be available", and that DEC and IBM supported Unix as an alternative to their proprietary operating systems.

Microcomputer Unix became commercially available in 1980, when Onyx Systems released its Zilog Z8000-based C8002 and Microsoft announced its first Unix for 16-bit microcomputers called Xenix, which the Santa Cruz Operation (SCO) ported to the 8086 processor in 1983. Other companies began to offer commercial versions of Unix for their own minicomputers and workstations. Many of these new Unix flavors were developed from the System V base under a license from AT&T; others were based on BSD. One of the leading developers of BSD, Bill Joy, went on to co-found Sun Microsystems in 1982 and created SunOS for its workstations.

AT&T announced UNIX System III – based on Version 7, and PWB –  in 1981. Licensees could sell binary sublicenses for as little as US$100 1981, which observers believed indicated that AT&T now viewed Unix as a commercial product. This also included support for the VAX. AT&T continued to issue licenses for older Unix versions. To end the confusion between all its differing internal versions, AT&T combined them into UNIX System V Release 1. This introduced a few features such as the vi editor and curses from the Berkeley Software Distribution of Unix developed at the University of California, Berkeley Computer Systems Research Group. This also included support for the Western Electric 3B series computers. AT&T provided support for System III and System V through the Unix Support Group (USG), and these systems were sometimes referred to as USG Unix.

In 1983, the U.S. Department of Justice settled its second antitrust case against AT&T, causing the breakup of the Bell System. This relieved AT&T of the 1956 consent decree that had prevented the company from commercializing Unix. AT&T promptly introduced Unix System V into the market. The newly created competition nearly destroyed the long-term viability of Unix, because it stifled the free exchanging of source code and led to fragmentation and incompatibility. The GNU Project was founded in the same year by Richard Stallman.

Since the newer commercial UNIX licensing terms were not as favorable for academic use as the older versions of Unix, the Berkeley researchers continued to develop BSD as an alternative to UNIX System III and V. Many contributions to Unix first appeared in BSD releases, notably the C shell with job control (modelled on ITS). Perhaps the most important aspect of the BSD development effort was the addition of TCP/IP network code to the mainstream Unix kernel. The BSD effort produced several significant releases that contained network code: 4.1cBSD, 4.2BSD, 4.3BSD, 4.3BSD-Tahoe ("Tahoe" being the nickname of the Computer Consoles Inc. Power 6/32 architecture that was the first non-DEC release of the BSD kernel), Net/1, 4.3BSD-Reno (to match the "Tahoe" naming, and that the release was something of a gamble), Net/2, 4.4BSD, and 4.4BSD-lite. The network code found in these releases is the ancestor of much TCP/IP network code in use today, including code that was later released in AT&T System V UNIX and early versions of Microsoft Windows. The accompanying Berkeley sockets API is a de facto standard for networking APIs and has been copied on many platforms.

During this period, many observers expected that UNIX, with its portability, rich capabilities, and support from companies like DEC and IBM, was likely to become an industry-standard operating system for microcomputers. Citing its much smaller software library and installed base than that of MS-DOS and the IBM PC, others expected that customers would prefer personal computers on local area networks to Unix multiuser systems. Microsoft planned to make Xenix MS-DOS's multiuser successor; by 1983 a Xenix-based Altos 586 with 512 KB RAM and 10 MB hard drive cost US$8,000 1983. BYTE reported that the Altos "under moderate load approaches DEC VAX performance for most tasks that a user would normally invoke", while other computers from Sun and MASSCOMP were much more expensive but equaled the VAX. The magazine added that both PC/IX and Venix on the IBM PC outperformed Venix on the PDP-11/23. uNETix, a commercial microcomputer Unix, implemented the first Unix color windowing system.

Thompson and Ritchie were given the Turing Award in 1983 for their work on Unix.

In 1986, Computerworld wrote that "Until very recently, almost no one associated Unix with corporate data processing. [...] the operating system traveled almost exclusively in academic and technical circles ... But now &mdash; almost entirely because of strenuous efforts by AT&T &mdash; some people are beginning to perceive Unix as a viable option for large commercial installations." Unix became commercially available for the mainframe via Amdahl UTS in 1981, and now IBM started offering Unix as IX/370 and VM/IX. The total installed base of Unix, however, remained small at some 230,000 machines.

Despite its academic reputation – InfoWorld stated in 1989, "Until recently, Unix conjured up visions of long-haired bearded technoids stuck in the bowels of an R&D lab, coding software until the wee hours of the morning" –  the increasing power of microcomputers in the late 1980s, and in particular the introduction of the 32-bit Intel 80386, caused Unix to "explode" in popularity for business applications; Xenix, 386/ix, and other Unix systems for the PC-compatible market competed with OS/2 in terms of networking, multiuser support, multitasking, and MS-DOS compatibility. The beginning in 1984 of the annual Unix Expo trade show in New York reflected the growing commercial presence of Unix.

During this time a number of vendors including Digital Equipment, Sun, Addamax and others began building trusted versions of UNIX for high security applications, mostly designed for military and law enforcement applications.

Standardization and the Unix wars
A problem that plagued Unix in this period was the multitude of implementations, based on either System V, BSD, or what Poul-Henning Kamp later described as a "more or less competently executed" combination of the two, usually with home-grown extensions to the base systems from AT&T or Berkeley. Xenix was effectively a third lineage, being based on the earlier System III. The rivalry between vendors was called the Unix wars; customers soon demanded standardization.

AT&T responded by issuing a standard, the System V Interface Definition (SVID, 1985), and required conformance for operating systems to be branded "System V". In 1984, several European computer vendors established the X/Open consortium with the goal of creating an open system specification based on Unix (and eventually the SVID). Yet another standardization effort was the IEEE's POSIX specification (1988), designed as a compromise API readily implemented on both BSD and System V platforms. In 1993, POSIX was mandated by the United States government for many of its own systems.

In the spring of 1988, AT&T took the standardization a step further. First, it collaborated with SCO to merge System V and Xenix into System V/386. Next, it sought collaboration with Sun Microsystems (vendor of the 4.2BSD derivative SunOS and its Network File System) to merge System V, BSD/SunOS and Xenix into a single unified Unix, which would become System V Release 4. AT&T and Sun, as UNIX International (UI), acted independently of X/Open and drew ire from other vendors, which started the Open Software Foundation to work on their own unified Unix, OSF/1, ushering in a new phase of the Unix wars.

1990s
The Unix wars continued into the 1990s, but turned out to be less of a threat than originally thought: AT&T and Sun went their own ways after System V.4, while OSF/1's schedule slipped behind. By 1993, most commercial vendors changed their variants of Unix to be based on System V with many BSD features added. The creation of the Common Open Software Environment (COSE) initiative that year, by the major players in Unix, marked the end of the most notorious phase of the Unix wars, and was followed by the merger of UI and OSF in 1994. The new combined entity retained the OSF name and stopped work on OSF/1. By that time the only vendor using it was Digital Equipment Corporation, which continued its own development, rebranding their product Digital UNIX in early 1995. POSIX became the unifying standard for Unix systems (and some other operating systems).

Meanwhile, the BSD world saw its own developments. The group at Berkeley moved its operating system toward POSIX compliance and released a stripped-down version of its networking code, supposedly without any code that was the property of AT&T. In 1991, a group of BSD developers (Donn Seeley, Mike Karels, Bill Jolitz, and Trent Hein) left the University of California to found Berkeley Software Design, Inc. (BSDi), which sold a fully functional commercial version of BSD Unix for the Intel platform, which they advertised as free of AT&T code. They ran into legal trouble when AT&T's Unix subsidiary sued BSDi for copyright infringement and various other charges in relation to BSD; subsequently, the University of California countersued. Shortly after it was founded, Bill Jolitz left BSDi to pursue distribution of 386BSD, the free software ancestor of FreeBSD, OpenBSD, and NetBSD.

In 1991, USL and Novell teamed up to develop a version of System 4 for i386 and i486 computers that would combine TCP/IP and Novell's IPX/SPX networking protocols, called the Destiny Project. They formed the Univel subsidiary as a jointly owned company to develop, market, and support the product, which was given the official name UnixWare (aka SRV4.2) and was sold as Univel UnixWare 1.0 that same year. Shortly after Univel released UnixWare 1.0 produced, AT&T sold USL and its share of Univel to Novell meaning Novell now owned all of AT&T's rights to Unix. Dennis Ritchie likened this sale to the Biblical story of Esau selling his birthright for the mess of pottage. Novell tried to use the fact that UnixWare combined both TCP/IP and NetWare networking technologies as a marketing tool against Windows NT, but their core markets suffered considerably. It also quickly settled the court battles with BSDi and Berkeley.

In 1993, Novell decided to transfer the UNIX trademark and certification rights to the X/Open Consortium. In 1996, X/Open merged with OSF, creating the Open Group. Various standards by the Open Group now define what is and what is not a UNIX operating system, notably the post-1998 Single UNIX Specification.

In 1993, Unix was used as a minor plot element in the blockbuster film Jurassic Park.

In 1995, the business of administering and supporting the existing UNIX licenses, plus rights to further develop the System V code base, were sold by Novell to the Santa Cruz Operation. Whether Novell also sold the copyrights would later become the subject of litigation (see below).

With the legal troubles between AT&T/Novell and the University of California over, the latter did two more releases of BSD before disbanding its Computer Systems Research Group in 1995. The BSD code lived on, however, in its free derivatives and in what Garfinkel et al. call a second generation of commercial Unix systems, based on BSD. The first exponent of these was BSDi's offering, popular at internet service providers but eventually not successful enough to sustain the company. The other main exponent would be Apple Computer.

In 1997, Apple sought a new foundation for its Macintosh operating system and chose NeXTSTEP, an operating system developed by NeXT. The core operating system, which was based on BSD and the Mach kernel, was renamed Darwin after Apple acquired it. The deployment of Darwin in Mac OS X makes it, according to a statement made by an Apple employee at a USENIX conference, the most widely used Unix-based system in the desktop computer market.

Meanwhile, Unix got competition from the copyleft Linux kernel, a reimplementation of Unix from scratch, using parts of the GNU project that had been underway since the mid-1980s. Work on Linux began in 1991 by Linus Torvalds; in 1998, a confidential memo at Microsoft stated, "Linux is on track to eventually own the x86 UNIX market," and further predicted, "I believe that Linux – moreso than NT – will be the biggest threat to SCO in the near future."

2000s
In 2000, SCO sold its entire UNIX business and assets to Caldera Systems, which later changed its name to The SCO Group.

The bursting of the dot-com bubble (2001–03) led to significant consolidation of versions of Unix. Of the many commercial variants of Unix that were born in the 1980s, only Solaris, HP-UX, and AIX were still doing relatively well in the market, though SGI's IRIX persisted for quite some time. Of these, Solaris had the largest market share in 2005.

In 2003, the SCO Group started legal action against various users and vendors of Linux. SCO had alleged that Linux contained copyrighted Unix code now owned by the SCO Group. Other allegations included trade-secret violations by IBM, or contract violations by former Santa Cruz customers who had since converted to Linux. However, Novell disputed the SCO Group's claim to hold copyright on the UNIX source base. According to Novell, SCO (and hence the SCO Group) are effectively franchise operators for Novell, which also retained the core copyrights, veto rights over future licensing activities of SCO, and 95% of the licensing revenue. The SCO Group disagreed with this, and the dispute resulted in the SCO v. Novell lawsuit. On 10 August 2007, a major portion of the case was decided in Novell's favor (that Novell had the copyright to UNIX, and that the SCO Group had improperly kept money that was due to Novell). The court also ruled that "SCO is obligated to recognize Novell's waiver of SCO's claims against IBM and Sequent". After the ruling, Novell announced they have no interest in suing people over Unix and stated, "We don't believe there is Unix in Linux". SCO successfully got the 10th Circuit Court of Appeals to partially overturn this decision on 24 August 2009 which sent the lawsuit back to the courts for a jury trial.

On 30 March 2010, following a jury trial, Novell, and not The SCO Group, was "unanimously [found]" to be the owner of the UNIX and UnixWare copyrights. The SCO Group, through bankruptcy trustee Edward Cahn, decided to continue the lawsuit against IBM for causing a decline in SCO revenues. On March 1, 2016, SCO's lawsuit against IBM was dismissed with prejudice.

In 2005, Sun Microsystems released the bulk of its Solaris system code (based on UNIX System V Release 4) into an open source project called OpenSolaris. New SunOS technologies, notably the ZFS file system, were first released as open source code via the OpenSolaris project. Soon afterwards, OpenSolaris spawned several non-Sun distributions. In 2010, after Oracle acquired Sun, OpenSolaris was officially discontinued, but the development of derivatives continued.

Since the early 2000s, Linux is the leading Unix-like operating systems and macOS leads for all Unix variants, with all other Unix variants having only a negligible market share (see Usage share of operating systems).