The Unix reference article from the English Wikipedia on 24-Jul-2004
(provided by Fixed Reference: snapshots of Wikipedia from wikipedia.org)

Unix

See the real Africa
UNIX® (or Unix) is a portable, multi-task 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.

Table of contents
1 History
2 Standards
3 Free Unix-like operating systems
4 Impact
5 Branding
6 Classic UNIX commands
7 See also
8 External links

History

The early development of what is believed to be one of the most influential operating systems in history was unique, and nobody would have predicted the growth of UNIX after its first incarnation.

In the late 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 System), 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.

Thompson thus re-wrote the game with help from Dennis Ritchie to run on the DEC PDP-7, written in PDP-7 assembly. 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 (homonym 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, until 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 runoff and a text editor. All three were written in the PDP-11/20 assembly language. This initial "text processing system", made up of UNIX, runoff 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 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.

Development expanded, with Versions 4, 5 and 6 being released by 1975. These versions added pipess, 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, now available at http://plan9.bell-labs.com/plan9dist/.

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 BSD UNIX (the Berkeley Software Distribution) 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 8 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 somewhat 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 version of the UNIX System for their own mini-computers and workstations. Some chose System V as the base for their own version, others choosing BSD instead. One of the leading developers of BSD, Bill Joy, went on to create SunOS, and eventually founding Sun Microsystems to distribute the operating system.

In 1991, a group of BSD's 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.

AT&T added features such as file locking, system administration, job control, streams, the Remote File System and TLI into UNIX System V. However AT&T decided in 1987-1989 to merge Xenix (Microsoft's development of UNIX for x86-PC's, announced August 25th 1980), BSD, SunOS and System V into System V Release 4 (SVR4). This new release solidified all the previous features into one package, and spelt the end of competing versions.

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 Microsoft's Windows NT, but their core markets suffered considerably, forcing Novell to sell SVR4 rights to the X/OPEN Consortium, which was an industry group to define a "UNIX Standard". Finally X/OPEN and OSF/1 (a competitor to the SVR4 standardisation) merged, creating the Open Group. Various standards by the Open Group now define what is and what isn't a "UNIX" operating system.

The actual code for UNIX however was transferred to the Santa Cruz Operation, who later sold it on to Caldera Systems (now called SCO Group), which at this time is running a huge legal campaign against all the users of Linux, claiming that Linux is contaminated with code actually owned by the SCO Group. (See the SCO v. IBM Linux lawsuit) 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 dispute the SCO groups claim to hold copyright on the UNIX source base. According to Novell, SCO (and hence the SCO group) are effectively francise operators for Novell. The SCO Group disagree with this, and the dispute has resulted in the SCO v. Novell Unix Lawsuit.

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.

Directory structure 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. The software developed in this project -- such as GNU Emacs and GCC -- has gone on to play central roles in other free UNIX systems as well.

In 1991 when Linus Torvalds began to put forth 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 POSIX-conformant operating system known as GNU/Linux -- or 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. Although Linux is better-known, FreeBSD has become almost a de-facto standard for shared Web hosting, and 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 a freely redistributable core operating system based on the BSD family and Mach. The deployment of BSD UNIX in Mac OS X makes it one of the most widely-used UNIX 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."

It led the way in operating systems that were 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 printerss, terminalss, or disk drives), providing a uniform and convenient way for applications to access features of the hardware.

The recursive file system with the ability to create arbitrarily-nested subdirectories was a major innovation, first implemented 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 patterned after UNIX. 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.

The command prompt with which users interacted was just an ordinary user-level process, a UNIX shell. The shell itself was novel in that the same language was used for interactive commands and for scripting the system (there was no separate job control language, like IBM's JCL for example). Also, the fact that, unlike on other early systems, the shell and OS commands were "just another program", enabled each user to choose (or even write) his/her own shell. Finally, new commands could be added without recompiling the shell.

It 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. Early UNIX developers were important in bringing the theory of software modularity and re-use into engineering practice.

UNIX provided early access to the TCP/IP networking protocol, which later resulted in the Internet explosion of world-wide real-time connectivity.

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

"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." 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. UNIX systems 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.

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, so many people wrote the name in upper case due to force of habit.

Classic 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 bcd boot cat chdir check chmod chown cmp cp date db dbppt dc df dsw dtf du ed find for form hup lbppt ld ln ls mail mesg mkdir mkfs mount mv nm od pr rew rkd rkf rkl rm rmdir roff sdate sh stat strip su sum tap tm tty type un wc who write

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

See also: /dev/null

See also

External links