Unix (officially trademarked as UNIX, sometimes also written as UNIX with small caps) is a computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna. Today’sUnix systems are split into various branches, developed over time by AT&T aswell as various commercial vendors and non-profit organizations.
UNIX operating systems are widely used in both servers and workstations. The UNIX environment and the client-server program model were essential elements in the development of the Internet and the reshaping of computing as centered in networks rather than in individual computers. Both Unix and the C programming language were developed by AT&T and distributed to government and academic institutions, which led to both being ported to a wider variety of machine families than any other operating system. As a result, UNIX became synonymous with “open systems”.
UNIX was designed to be portable, multi-tasking and multi-user in a time-sharing configuration. Unix systems are characterized by various concepts: the use of plain text for storing data; a hierarchical file system; treating devices and certain types of inter-process communication (IPC) as files; and the use of a large number of software tools, small programs that can be strung together through a command line interpreter using pipes, as opposed to using a single monolithic program that includes all of the same functionality. These concepts are known as the Unix philosophy.
Under Unix, the “operating system” consists of many of these utilities along with the master control program, the kernel. The kernel provides services to start and stop programs, handles the file system and other common “low level” tasks that most programs share, and, perhaps most importantly, schedules access to hardware to avoid conflicts if two programs try to access the same resource or dev ice simultaneously. To mediate such access, the kernel was given special rights on the system, leading to the division between user-space and kernel-space.
List of Unix programs
The Unix system is composed of several components that are normally packaged together. By including — in addition to the kernel of an operating system — the dev elopement environment, libraries, documents, and the portable, modifiable source code for all of these components, 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 10MB, and arrived on a single 9-track magnetic tape.
The names and file system 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 /user/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
Features of Unix Operating System
1. The Unix system had significant impact on other operating systems. It was written in high level language rather than assembly language
2. Unix had a drastically simplified file model compared to many contemporary operating systems, treating all kinds of files as simple byte arrays. The file system hierarchy contained machine services and devices (such as printers, terminals, or disk drives.
3. 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.
4. Over time, text-based applications have also proven popular in application areas, such as printing languages (PostScript, ODF), and at the application layer of the Internet protocols, e.g., Telnet, FTP, SSH, SMTP, HTTP, SOAPand SIP.
5. Unix popularized syntax for regular expressions that found widespread use. The Unix programming interface became the basis for a widely implemented operating system interface standard (POSIX, see above).
6. Unix provided the TCP/IP networking protocol on relatively inexpensive computers, which contributed to the Internet explosion of worldwide real-time connectivity, and which formed the basis for implementations on many other platforms.
This also exposed numerous security holes in the networking implementations.
Free Unix-like operating systems
In 1983, Richard Stallman announced the GNU project, an ambitious effort to create a free software Unix-like system; “free” in that everyone who received a copy would be free to use, study, modify, and redistribute it. The
GNU project’s own kernel development project, GNU Hurd, had not produced a working kernel, but in 1992 Linus Torvalds released the Linux kernel as free software under the GNU General Public License. In addition to their use in
the Linux operating system, many GNU packages — such as the GNU
Compiler Collection (and the rest of the GNU toolchain), the GNU C library and the GNU core utilities — have gone on to play central roles in other free Unix systems as well.
Linux distributions, comprising Linux and large collections of compatible software have become popular both with individual users and in business. Popular distributions include Red Hat Enterprise Linux, Fedora, SUSE Linux Enterprise, openSUSE, Debian GNU/Linux, Ubuntu, Mandriva Linux, Slackware Linux and Gentoo.