A curated collection of best learning resources on IT topics

All topics -> Operating systems -> Unix

Unix is an operating system developed at AT&T Bell Labs in 1969 by Ken Thompson, Dennis Ritchie, and others. It was designed to be simpler and smaller than contemporary operating systems, yet no less powerful. The goal was achieved, but through its evolution, Unix ceased to exist as a single operating system. Today there is no Unix but many operating systems that have Unix-like design and provide Unix-like interface: macOS, BSD descendants, and numerous Linux distributions. Formally, Unix-like refers to an operating system adhering to the POSIX specification. POSIX defines a standard operating system interface and environment, including the C standard library, a command interpreter (or “shell”), and common utility programs.

Initially AT&T could not turn Unix into a product for legal reasons, so they licensed it to educational institutions and then for commercial use. These AT&T's Unix versions had names like Version 5 Unix (1973) and were distributed together with the source code. Some institutions created their own Unix forks with additional features. One example is Berkeley Software Distribution (BSD).

In 1983 AT&T was allowed to commercialize Unix. The free exchange of source code has stopped, and the market of Unix versions became fragmented. Richard Stallman founded the GNU Project to create a free, open-source Unix operating system. In 1988 IEEE released the POSIX specification to describe operating system interfaces common to different Unix versions.

In 1991 Linus Torvalds developed Linux, an open-source Unix kernel implemented from scratch. Linux distributions combined the Linux kernel with GNU tools and libraries and additional software to create Unix-like operating systems for end-users. Today operating systems based on Linux dominate most computing markets: web servers, mobile devices, supercomputers, and embedded systems. Some of the popular names are Debian, Ubuntu, Red Hat Enterprise Linux, Android, and Chrome OS.

Links: Unix (Wikipedia), History of Unix (Wikipedia), UNIX Standard, POSIX.1-2017.

Related topics: C, Shell, Linux.

Here's 3 amazing resources to learn Unix:

  1. The Unix Programming Environment (www.amazon.com)
    paid • book • by Brian Kernighan, Rob Pike • 1983

    Although this book predates all recent Unix developments, it's still an excellent introduction to the Unix world. It covers the basics of the file system, shell programming, common utilities, and system calls. And most importantly, it does the best to convey the Unix motto: "the power of a system comes from the relationship between programs, not programs themselves".

  2. Advanced Programming in the UNIX Environment, 3rd edition (www.amazon.com)
    paid • book • by W. Richard Stevens, Stephen Rago • 2013

    This book is the best reference on Unix programming. It describes the interfaces provided by Unix systems – the system calls and the C standard library functions. Of course, this is what man pages do, but this book also presents examples and rationale, gives a historical context, compares different Unix systems, and overall makes it interesting to explore Unix capabilities.

  3. UNIX: A History and a Memoir (www.amazon.com)
    paid • book • by Brian Kernighan • 2019

    Brian Kernighan joined Bell Labs just before Unix inception and was actively involved in its development. In this book, he tells the story of Unix from its early days to its modern legacy. This is a story of a remarkable working environment, great people, and influential design choices. It helps you better understand why Unix became what it is and why it was such a success.