|
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.
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 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, 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).
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. A similar standard is the Single UNIX Specification of standards, which is available for free.
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 printers, terminals, 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
|