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.
Recommended by LinkedIn
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 (bc, dc), 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 passwd, kill, 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.