01Overview

In 1969 Ritchie and Thompson wrote the first Unix in assembly at Bell Labs; in 1973 they rewrote it in C. Portability let Unix run on many machines and carried C along with it. Pipes, redirection and the “everything is a file” abstraction let small tools compose into complex behaviour.

Unix split into the BSD and System V branches, and POSIX tried to unify the interfaces. In 1991 Linus Torvalds released the Linux kernel, which together with GNU tools formed a complete free operating system. Today, from servers and Android to macOS, Unix interfaces and philosophy are the common language of systems software.

02History

  1. 1969

    Unix, first edition

    An internal project at Bell Labs.

  2. 1973

    Unix rewritten in C

    Portability brings wide adoption.

  3. 1983

    System V and BSD diverge

    Two branches: commercial and academic.

  4. 1988

    The POSIX standard

    An effort to standardise the interfaces.

  5. 1991

    The Linux kernel is released

    The start of open-source Unix-compatible systems.

03Core concepts

Pipes

Connect the output of one program to the input of the next.

Everything is a file

Devices, sockets and process information are all reached through the file interface.

Process model

fork copies a process, exec replaces its program image.

04Hands-on

Do it once — it beats reading it ten times

Rebuild a pipeline of five Unix tools with your own short programs, then check the output against the originals

05Self-check

Say it in your own words first, then open the answer. Whatever you cannot explain is what to review next.

Can you explain "Pipes"?

Connect the output of one program to the input of the next.

Can you explain "Everything is a file"?

Devices, sockets and process information are all reached through the file interface.

Can you explain "Process model"?

fork copies a process, exec replaces its program image.

What problem did it solve, and why was there nothing better at the time?

Go back to the history section: how was this done before, and what did it cost?

If you had to build it today, how would you break it down?

Use the hands-on task above: write a plan of at most three steps before you start.

06Key people

K

Ken Thompson

1943 –

Co-creator of Unix and Go.

D

Dennis Ritchie

1941 – 2011

Co-creator of C and Unix.

07Further reading

  • The Unix Programming EnvironmentKernighan & Pike · 1984
  • Unix: A History and a MemoirBrian Kernighan · 2019