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
- 1969
Unix, first edition
An internal project at Bell Labs.
- 1973
Unix rewritten in C
Portability brings wide adoption.
- 1983
System V and BSD diverge
Two branches: commercial and academic.
- 1988
The POSIX standard
An effort to standardise the interfaces.
- 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
Ken Thompson
1943 –
Co-creator of Unix and Go.
Dennis Ritchie
1941 – 2011
Co-creator of C and Unix.
07Further reading
- The Unix Programming Environment
- Unix: A History and a Memoir