Unix

Unix

Unix (trademarked as UNIX) is a family of multitasking multiuser  computer operating systems  that derive from the original AT&T  Unix, whose development started in 1969 at the Bell Labs  research center by Ken Thompson Dennis Ritchie , and others.

Initially intended for use inside the Bell System , AT&T licensed  Unix to outside parties in the late 1970s, leading to a variety of both academic and commercial Unix variants from vendors including University of California, Berkeley  (BSD ), Microsoft  (Xenix ), Sun Microsystems  (SunOS /Solaris ), HP /HPE  (HP-UX ), and IBM  (AIX ). In the early 1990s, AT&T sold its rights in Unix to Novell , which then sold the UNIX trademark to The Open Group , an industry consortium founded in 1996. The Open Group allows the use of the mark for certified operating systems that comply with the Single UNIX Specification  (SUS).

Unix systems are characterized by a modular design  that is sometimes called the "Unix philosophy ". According to this philosophy, the operating system should provide a set of simple tools, each of which performs a limited, well-defined function. A unified and inode -based filesystem  (the Unix filesystem ) and an inter-process communication  mechanism known as "pipes " serve as the main means of communication, and a shell  scripting and command language (the Unix shell ) is used to combine the tools to perform complex workflows.

Unix distinguishes itself from its predecessors as the first portable  operating system: almost the entire operating system is written in the C programming language , which allows Unix to operate on numerous platforms.

Components

The Unix system is composed of several components that were originally packaged together. By including the development environment, libraries, documents and the portable, modifiable source code for all of these components, in addition to the kernel  of an operating system, Unix was a self-contained software system. This was one of the key reasons it emerged as an important teaching and learning tool and has had such a broad influence.

The inclusion of these components did not make the system large – the original V7 UNIX distribution, consisting of copies of all of the compiled binaries plus all of the source code and documentation occupied less than 10 MB and arrived on a single nine-track magnetic tape , earning its reputation as a portable system. The printed documentation, typeset from the online sources, was contained in two volumes.

The names and filesystem locations of the Unix components have changed substantially across the history of the system. Nonetheless, the V7 implementation is considered by many to have the canonical early structure:

  • Kernel – source code in /usr/sys, composed of several sub-components:
  • conf – configuration and machine-dependent parts, including boot code
  • dev – device drivers for control of hardware (and some pseudo-hardware)
  • sys – operating system "kernel", handling memory management, process scheduling, system calls, etc.
  • h – header files, defining key structures within the system and important system-specific invariables
  • Development environment – early versions of Unix contained a development environment sufficient to recreate the entire system from source code:
  • ed  – text editor, for creating source code files
  • cc – C language  compiler (first appeared in V3 Unix)
  • as – machine-language assembler for the machine
  • ld – linker, for combining object files
  • lib – object-code libraries (installed in /lib or /usr/lib). libc , the system library with C run-time support, was the primary library, but there have always been additional libraries for things such as mathematical functions (libm ) or database access. V7 Unix introduced the first version of the modern "Standard I/O" library stdio as part of the system library. Later implementations increased the number of libraries significantly.
  • make  – build manager (introduced in PWB/UNIX ), for effectively automating the build process
  • include – header files for software development, defining standard interfaces and system invariants
  • Other languages – V7 Unix contained a Fortran-77 compiler, a programmable arbitrary-precision calculator (bcdc), and the awk  scripting language; later versions and implementations contain many other language compilers and toolsets. Early BSD releases included Pascal  tools, and many modern Unix systems also include the GNU Compiler Collection  as well as or instead of a proprietary compiler system.
  • Other tools – including an object-code archive manager (ar ), symbol-table lister (nm), compiler-development tools (e.g. lex  & yacc ), and debugging tools.
  • Commands – Unix makes little distinction between commands (user-level programs) for system operation and maintenance (e.g. cron ), commands of general utility (e.g. grep ), and more general-purpose applications such as the text formatting and typesetting package. Nonetheless, some major categories are:
  • sh  – the "shell" programmable command-line interpreter , the primary user interface on Unix before window systems appeared, and even afterward (within a "command window").
  • Utilities – the core toolkit of the Unix command set, including cp ls grep find  and many others. Subcategories include:
  • System utilities – administrative tools such as mkfs fsck , and many others.
  • User utilities – environment management tools such as passwdkill, and others.
  • Document formatting – Unix systems were used from the outset for document preparation and typesetting systems, and included many related programs such as nroff troff tbl eqn refer , and pic . Some modern Unix systems also include packages such as TeX  and Ghostscript .
  • Graphics – the plot subsystem provided facilities for producing simple vector plots in a device-independent format, with device-specific interpreters to display such files. Modern Unix systems also generally include X11  as a standard windowing system and GUI , and many support OpenGL .
  • Communications – early Unix systems contained no inter-system communication, but did include the inter-user communication programs mail and write. V7 introduced the early inter-system communication system UUCP , and systems beginning with BSD release 4.1c included TCP/IP  utilities.
  • Documentation – Unix was one of the first operating systems to include all of its documentation online in machine-readable form. The documentation included:
  • man  – manual pages for each command, library component, system call , header file, etc.
  • doc – longer documents detailing major subsystems, such as the C language and troff.

To view or add a comment, sign in

Insights from the community

Others also viewed

Explore topics