About Unix

On this page:


Overview

Unix (officially UNIX) is a registered trademark of The Open Group that refers to a family of computer operating systems and tools conforming to The Open Group Base Specification, Issue 7 (also known as POSIX.1-2008 or IEEE Std 1003.1 - 2008).

The original Unix operating system was developed at AT&T's Bell Labs research center in 1969. It was developed using a high-level programming language (C) instead of platform-specific assembly language, enabling its portability across multiple computer platforms. Unix also was developed as a self-contained software system, comprising the operating system, development environment, utilities, documentation, and modifiable source code. These key factors led to widespread use and further development in commercial settings, and helped Unix and its variants become an important teaching and learning tool used in academic settings.

In the 1970s and 1980s, AT&T licensed Unix to third-party vendors, leading to the development of several Unix variants, including Berkeley Unix, HP-UX, AIX, and Microsoft's Xenix. In 1993, AT&T sold the rights to the Unix operating system to Novell, Inc., which a few years later sold the Unix trademark to the consortium that eventually became The Open Group.

To use the Unix trademark, an operating system vendor must pay a licensing fee and annual trademark royalties to The Open Group. Officially licensed Unix operating systems (and their vendors) include macOS (Apple), Solaris (Oracle), AIX (IBM), IRIX (SGI), and HP-UX (Hewlett-Packard).

Operating systems that behave like Unix systems and provide similar utilities but do not conform to Unix specification or are not licensed by The Open Group are commonly known as Unix-like systems. These include a wide variety of Linux distributions (for example, Red Hat Enterprise Linux, Ubuntu, and CentOS) and several descendants of the Berkeley Software Distribution operating system (for example, FreeBSD, OpenBSD, and NetBSD).

Proprietary Unix operating systems (and Unix-like variants) run on a wide variety of digital architectures, and are commonly used on web servers, mainframes, and supercomputers. In recent years, smartphones, tablets, and personal computers running versions or variants of Unix have become increasingly popular.

At IU

At Indiana University, the research supercomputers run a commercial distribution of Linux called Red Hat Enterprise Linux (RHEL).

At Indiana University, for personal or departmental Linux or Unix systems support, see Get help for Linux or Unix at IU.

Key components

Proprietary Unix systems and their variants are characterized by several essential components:

  • Kernel: The kernel is the master control program of the operating system, handling memory management, system calls, and other low-level functions common to most programs, and providing drivers for controlling hardware.
  • Shell: The shell is an interactive program that provides an interface between the user and the kernel. The shell interprets commands entered by the user or supplied by a shell script, and passes them to the kernel for execution. Shells available for use on Unix and Unix-like systems include sh (the Bourne shell), bash (the Bourne-again shell), csh (the C shell), tcsh (the TENEX C shell), ksh (the Korn shell), and zsh (the Z shell).
    Note:
    The default login shell on each of Indiana University's research supercomputers is bash. For instructions on changing the login shell, see Change your login shell or passphrase on IU research supercomputers.
  • File system: Unix and Unix-like operating systems employ a hierarchical (inverted tree) directory structure, with the root directory (/) at the top. The standard file system has, among others, the following directories:
    Directory Description
    / The root directory, where the whole tree starts
    /bin Contains fundamental executables (binaries) generally used by all users on the system (for example, chmod, cp, mv, grep, and tar)
    /etc Contains local configuration files, subdirectories containing configuration files for large software packages (such as the X11 window system)
    /lib Contains shared libraries needed to boot the system and run the commands in the root file system
    /tmp Local scratch space for storing temporary files, which may be deleted without notice
    /usr/bin The primary directory for most executables used by normal users on the system (for example, emacs, make, scp, sftp, ssh, and yum)
    usr/lib Contains static and dynamic libraries, a few executables that usually are not invoked directly, and subdirectories for complex programs

    Additional file systems on direct-attached or networked-attached storage devices can be mounted as branches off the root directory.

    For example, at IU, a network-attached storage device provides the file system for home directory space on the research supercomputers. The file system is mounted off each system's root directory at /N, with each user's home directory space located at /N/u/<username> and software-related files located at /N/soft.

    To determine what file systems are mounted on a Unix or Unix-like system, use the mount command.

  • Development environment: Most Unix and Unix-like systems include tools and libraries for writing, compiling, and debugging C, C++, and Fortran programs.

    The research supercomputers at IU provide a variety of compiler collections for use with C, C++, and Fortran codes; see:

  • Commands: Unix and Unix-like systems include a large core of standard utilities for editing text, writing, compiling, and controlling programs, processing, manipulating the user environment, and retrieving information about the system and its users. Many commands allow arguments (known as options or flags) to modify their default behavior. Users enter commands and arguments on the shell command line, and then the shell interprets them and passes them to the kernel for execution. For a brief introduction to Unix commands, see Introduction to Unix commands.
  • Documentation: Manual pages and info files provide helpful usage information for most commands, system calls, and libraries included in the system.

This is document agat in the Knowledge Base.
Last modified on 2023-08-14 13:23:49.