Unix

From IexWiki

Jump to: navigation, search

UNIX is a portable, multi-tasking and multi-user computer operating system originally developed by a group of AT&T Bell Labs employees including Ken Thompson, Dennis Ritchie, and Douglas McIlroy.

Contents

History

1960s and 1970s

In the 1960s, the Massachusetts Institute of Technology, AT&T Bell Labs, and General Electric worked on an experimental operating system called Multics (Multiplexed Information and Computing Service), which was designed to run on the GE-645 mainframe computer. The aim was the creation of an interactive operating system with many novel capabilities, including enhanced security. The project did develop production releases, but initially these releases turned out to have poor performance.

AT&T Bell Labs pulled out and deployed its resources elsewhere. One of the developers on the Bell Labs team, Ken Thompson, continued to develop for the GE-645 mainframe, and wrote a game for the computer called Space Travel. However, he found that the game was slow on the GE machine and was costly, apparently costing $75 per go in scarce computing time.

Thompson thus re-wrote the game in DEC PDP-7 Assembly language with help from Dennis Ritchie. This experience, combined with his work on the Multics project, led Thompson to start a new operating system for the DEC PDP-7. Thompson and Ritchie led a team of developers, including Rudd Canaday, at Bell Labs developing a file system as well as the new multi-tasking operating system itself. They included a command interpreter and some small utility programs as well. This project was called UNICS, short for Uniplexed Information and Computing System, because it could support two simultaneous users. The name has been attributed to Brian Kernighan, and was a hack on Multics. Following bad puns of UNICS (homophone of eunuchs) being a castrated MULTICS, the name was later changed to UNIX, and thus a legacy was born.

Up until this point there had been no financial support from Bell Labs, when the Computer Science Research Group wanted to use UNIX on a much larger machine than the PDP-7. Thompson and Ritchie managed to trade the promise of adding text processing capabilities to UNIX for a PDP-11/20 machine, and this itself led to some financial support from Bell. For the first time in 1970, the UNIX Operating System was officially named and ran on the PDP-11/20. It added a text formatting program called roff and a text editor. All three were written in PDP-11/20 assembly language. This initial "text processing system", made up of UNIX, roff, and the editor, was used by Bell Labs for text processing of patent applications at Bell. Runoff soon evolved into troff, the first electronic publishing program with a full typesetting capability. The UNIX Programmer's Manual was published on November 3, 1971.

In 1973, the decision was made to re-write UNIX in the C programming language. The change meant that UNIX could later easily be modified to work on other machines (thus becoming portable), and other variations could be created by other developers. The code was now more concise and compact, leading to an acceleration in the development of UNIX. AT&T made UNIX available to universities and commercial firms, as well as the United States government under licenses. The licenses included all source code except for the machine-dependent kernel, which was written in PDP-11 assembly code. However, bootleg copies of the annotated UNIX machine-dependent kernel circulated widely in the late 1970's.

Development expanded, with Versions 4, 5 and 6 being released by 1975. These versions added pipes, leading to the development of a more modular code-base, increasing development speed still further. By 1978, over 600 machines were running UNIX in some form. Version 7, the last version of Research UNIX to be released widely, was released in 1979. Versions 8, 9 and 10 were developed through the 1980s but were only ever released to a few universities, though they did generate papers describing the new work. This research led to the development of Plan 9, a new portable distributed system.

1980s

AT&T now developed UNIX System III, based on Version 7, as a commercial version and sold the product directly, the first version launching in 1982. However its subsidiary, Western Electric, continued to sell older UNIX versions, based on the UNIX System (Versions 1 to 7). To end the confusion between all the differing versions, AT&T combined various versions developed at other universities and companies into UNIX System V Release 1. This introduced features such as the vi editor and curses from the Berkeley Software Distribution of UNIX developed at the University of California, Berkeley (UCB). This also included support for the DEC VAX machine.

The new commercial UNIX releases however no longer included the source code and so UCB continued to develop BSD UNIX as an alternative to UNIX System III and V, originally on the PDP-11 architecture (the BSD 2.x releases, ending with 2.10). 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 eight significant releases that contained network code: 4.1c, 4.2, 4.3, 4.3-Tahoe ("Tahoe" being the nickname of the CCI Power 6/32 architecture that was the first non-DEC port of the BSD kernel), 4.3-Reno (to match the "Tahoe" naming, and that the release was something of a gamble), Net2, 4.4, and 4.4-lite. The network code found in these releases is the ancestor of almost all TCP/IP network code in use today, including code that was later released in AT&T System V UNIX and Microsoft Windows.

Other companies began to offer commercial versions of the UNIX System for their own mini-computers and workstations. Most of these new UNIX flavors were developed from the System V base under a license from AT&T. Others chose BSD instead. One of the leading developers of BSD, Bill Joy, went on to co-found Sun Microsystems in 1982 and create SunOS (now Solaris) for their workstation computers. In 1980, Microsoft announced its first UNIX for 16-bit microcomputers called Xenix, which the Santa Cruz Operation (SCO) ported to the Intel 8086 processor in 1983, and eventually branched Xenix into SCO UNIX in 1989.

AT&T added various features into UNIX System V, such as file locking, system administration, job control (modelled on ITS), streams, the Remote File System and TLI. However, between 1987 and 1989, AT&T decided to merge Xenix, BSD, SunOS, and System V into System V Release 4 (SVR4). This new release consolidated all the previous features into one package, and threatened the end of competing versions. It also greatly increased licensing fees.

1990s

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). BSDI was the first company to produce a fully-functional commercial version of BSD UNIX for the inexpensive and ubiquitous Intel platform, which started a wave of interest in the use of inexpensive hardware for production computing. Shortly after it was founded, Bill Jolitz left BSDI to pursue distribution of 386BSD, commonly identified as the freeware ancestor of FreeBSD, OpenBSD, and NetBSD.

By 1993 most of the commercial vendors of UNIX had changed their commercial variants of UNIX to be based upon SVR4, and many BSD features were added on top.

Shortly after UNIX System V Release 4 was produced AT&T sold all its rights to UNIX to Novell. Dennis Ritchie, one of the creators of UNIX, likened this to the Biblical story of Esau selling his birthright for some lentils [1]. Novell developed its own version, UnixWare, merging its Netware with UNIX System V Release 4. Novell tried to use this to battle against Windows NT, but their core markets suffered considerably.

In 1994, Novell decided to split the bundle of UNIX-related assets and sell parts of them. The UNIX trademark and the certification rights were sold to the X/Open Consortium, which was an industry group to define a "UNIX Standard". Finally X/OPEN and OSF (a competitor to the SVR4 standardization) merged, creating the Open Group. Various standards by the Open Group now define what is and what is not a "UNIX" operating system.

In 1995, the business of administration and support of the existing UNIX licenses plus rights to further develop the SystemV code base were transferred to the Santa Cruz Operation. Novell retained the core copyrights, veto rights over future licensing activities of SCO, and 95% of the licensing revenue.

2000s

In 2000, the Santa Cruz Operation sold its entire UNIX business and assets to Caldera Systems, which later on changed its name to The SCO Group. This new player then started a huge legal campaign against various users and vendors of Linux. The SCO Group has offered various legal theories over the course of several cases. Some of these allege that Linux contains copyrighted Unix code now owned by The SCO Group. Others allege trade-secret violations by IBM, or contract violations by former Santa Cruz customers who since converted to Linux. The most far-reaching theory is that development work that IBM did for AIX is considered a derivative work and therefore also owned by SCO. If this is upheld it would affect all Unix licensees.

Under a program called SCOsource, the SCO Group is now offering licenses to all companies and individuals wishing to use operating systems with code based on UNIX System V Release 4 (and their own release, UNIX System V, Release 5).

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. The SCO Group disagreed with this, and the dispute had resulted in the SCO v. Novell lawsuit. On August 6, 2004, Novell filed a motion to dismiss the case with prejudice.

While currently the SCO Group claims to hold the rights on the UNIX source code, the Open Group holds the rights on the trademark of UNIX.

Standards

Beginning in the late 1980s, an open operating system standardization effort known as POSIX provided a common baseline for all operating systems; IEEE based POSIX around the structure of the UNIX system. At around the same time a separate but very similar standard, the Single UNIX Specification, was also produced by the Open Group. Starting in 1998 these two standards bodies began work on merging the two standards, and the latest revisions of both are in fact a single identical document.

The directory layout of some systems is defined by the Filesystem Hierarchy Standard.

Free Unix-like operating systems

In 1983, Richard Stallman announced Project GNU, an ambitious effort to create a freely redistributable Unix-like system. Much of the software developed in this project -- such as the GNU toolchain, the GNU C library and the GNU core utilities-- has gone on to play central roles in other free UNIX systems as well, but GNU attempts to fulfill Stallman's original manifesto by providing a replacement for the UNIX kernel progressed very slowly. At present, the GNU Hurd, an attempt to provide an advanced kernel for GNU based on the Mach microkernel, is still not considered close to production standard.

In 1991, when Linus Torvalds began to publicize the Linux kernel and gather contributors, the GNU tools were an obvious match. When combined with the Linux kernel, the GNU software formed the foundation for a UNIX-like operating system known as GNU/Linux (commonly referred to as just Linux). Distributions of the kernel, GNU, and additional software -- such as Red Hat Linux and Debian GNU/Linux -- have become popular both with hobbyists and in business.

Yet GNU and Linux were not alone. With the 1994 settlement of a lawsuit UNIX Systems Laboratories brought against the University of California and Berkeley Software Design Inc. (USL v. BSDi), BSD UNIX experienced a renewal. The lawsuit clarified that Berkeley had the right to distribute BSD UNIX -- for free, if it so desired. Soon, the BSD release was being developed in several different directions, becoming the projects now known as FreeBSD, NetBSD, and OpenBSD. FreeBSD, an alternative to Linux, has strong support and is the most popular of the BSD derivatives. OpenBSD is renowned for its security, while NetBSD focuses on porting the OS to many platforms.

In an effort towards compatibility, several UNIX system vendors agreed on SVR4's ELF format as standard for binary and object code files. The common format allows substantial binary compatibility among UNIX systems operating on the same hardware: thus, with compatible libraries, FreeBSD can run software compiled for Linux.

Linux and the BSD kin are now rapidly occupying the market traditionally occupied by proprietary UNIX operating systems, as well as expanding into new markets such as the consumer desktop and mobile and embedded devices. A measure of this success may be seen when Apple sought out a new foundation for its Macintosh operating system: it chose to develop a freely redistributable core operating system, Darwin, based on the BSD family and Mach. The deployment of Darwin BSD UNIX in Mac OS X makes it one of the most widely-used UNIX based systems on the market.

Impact

The UNIX system had a great impact on the surrounding community. Some consider it the most influential operating system in changing other proprietary operating systems, leading UNIX to be called "the most important operating system you may never use."

Following the lead of Multics, it was written in high level language as opposed to assembler (assembler was in vogue at the time).

It had a drastically simplified file model compared to many contemporary operating systems. The file system hierarchy contained machine services and devices (such as printers, terminals, or disk drives), providing a superficially uniform interface, but at the expense of requiring indirect mechanisms such as IOCTL and mode flags to access features of the hardware that did not fit the simple "stream of bytes" model.

Unix also popularized the hierarchical file system with arbitrarily nested subdirectories, originally introduced by Multics. Other common operating systems of the era had ways to divide a storage device into multiple directories or sections, but they were a fixed number of levels and often only one level. The major proprietary operating systems all added recursive subdirectory capabilities also patterned after Multics. DEC's RSTS programmer/project hierarchy evolved into VMS directories, CP/M's volumes evolved into MS-DOS 2.0+ subdirectories, and HP's MPE group.account hierarchy and IBM's System 36 and OS/400 library systems were folded into broader POSIX file systems.

Making the command interpreter an ordinary user-level program, with additional commands provided as separate programs, was another Multics innovation popularized by Unix. The UNIX shell used the same language for interactive commands as for scripting (shell scripts -- there was no separate job control language, like IBM's JCL for example). Since the shell and OS commands were "just another program", the user could choose (or even write) his/her own shell. Finally, new commands could be added without recompiling the shell. Unix's innovative command-line syntax for creating chains of producer-consumer processes (pipes) made a powerful programming technique (coroutines) widely available.

Unix popularised a syntax for regular expressions that found much wider use. The UNIX programming interface became the basis for a standard operating system interface (POSIX, see above).

The C programming language, now ubiquitous in systems and applications programming, originated under UNIX. The unsafeness of C leads to problems such as buffer overruns from C library functions such as gets() and scanf(), which are behind many notorious bugs, including one exploited by the Morris worm.

Early UNIX developers were important in bringing the theory of software modularity and re-use into engineering practice.

UNIX provided the TCP/IP networking protocol on relatively inexpensive computers, which later resulted in the Internet explosion of world-wide real-time connectivity. This quickly exposed several major security holes in the UNIX architecture, kernel, and system utilities.

Over time, the leading developers of UNIX (and programs that ran on it) developed a set of cultural norms for developing software, norms which became as important and influential as the technology of UNIX itself. See UNIX philosophy for more information.

Branding

In 1994, Novell, the company that owned the rights to the Unix System V source at the time, sold the right to use the name of the Unix software to the X/Open Company (now The Open Group), but they sold the rights to the actual software to the original SCO company (not to be confused with Caldera, which renamed itself to SCO after it bought parts of the first SCO).

Now, "UNIX" is a trademark of The Open Group and, like all trademarks, should be used as an adjective followed by a generic term such as "system." By decree of The Open Group, the term refers more to a class of operating systems than to a specific implementation of an operating system; those operating systems which meet The Open Group's Single UNIX Specification should be able to bear the "UNIX" and UNIX98 trademarks today, after the operating system's vendor pays a fee to The Open Group. Systems licensed to use the UNIX® trademark include AIX, HP-UX, IRIX, Solaris, Tru64, A/UX and a part of z/OS. In practice, the term, especially when written as "UN*X", "*NIX", or "*N?X" is applied to a number of other multiuser POSIX-based systems such as GNU/Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD that do not seek UNIX branding because the royalties would be too expensive for a product marketed to consumers or freely available over the Internet; such systems claim that the term has now become a genericized trademark.

The term "Unix" is also used, and in fact was the original capitalisation, but the name UNIX stuck because, in the words of Dennis Ritchie "[when presenting the original UNIX paper to the third Operating Systems Symposium of the American Association for Computing Machinery, we had just acquired a new typesetter and were intoxicated by being able to produce small caps" (quoted from the Jargon File, version 4.3.3, 20 September 2002). Additionally, it should be noted that many of the operating system's predecessors and contemporaries used all-uppercase lettering, because many computer terminals of the time could not produce lower-case letters, so many people wrote the name in upper case due to force of habit.

Several plural forms of Unix are used to refer to multiple brands of Unix and Unix-like systems. Most common is the conventional "Unixes", but the culture that created Unix has a penchant for playful use of language, and "Unices" (treating Unix as Latin word) is also popular. The Anglo-Saxon plural form "Unixen" is not common, although occasionally seen.

Canonical UNIX Commands

The most basic UNIX commands/utilities are:

Here is a list of the 60 user commands from section 1 of the First Edition:

ar as b bas (Unix) bcd boot cat (Unix) chdir check (Unix) chmod chown cmp cp (Unix) date db (Unix) dbppt dc df (Unix) dsw dtf du (Unix) ed find (Unix) for (Unix) form (Unix) hup (Unix) lbppt ld (Unix) ln (Unix) ls mail (Unix) mesg mkdir mkfs mount mv (Unix) nm (Unix) od (Unix) pr (Unix) rew rkd rkf rkl rm rmdir roff sdate sh stat strip su (Unix) sum (Unix) tap (Unix) tm (Unix) tty type (Unix) un wc who (Unix) write (Unix)

For a more complete and modern list, see the list of Unix programs.

See also: /dev/null, /dev/random, /dev/urandom, /dev/zero.

See also

External links

Personal tools