Unix History & the Shell
Where Unix came from, the three principles, and your first look at the terminal
Quick check before you start: Can you explain what an operating system does? If not, that is fine — read on. If you can, skip to The Shell.
Practice this topic: Terminal Basics skill drill
After this lesson, you will be able to:
- Explain why Unix matters for C programming and cybersecurity
- Name the three Unix principles
- Identify the components of a shell prompt
- Describe the REPL loop
Why Should You Care About an Operating System from 1969?
In CSCD 210, you wrote Java inside VS Code. The JVM compiled your .class files, Gradle ran your tests, and the IDE handled the rest. Here is the thing most students do not realize: the JVM itself is a C program. Gradle is a shell script. VS Code runs on a framework built with C++. Every layer beneath your Java code is written in C, running on Unix.
This quarter you peel back that layer. You will write in the same language and work in the same environment that builds everything you have been using.
From Bell Labs to Your Terminal
The Unix Origin Story
In 1969, Ken Thompson and Dennis Ritchie at AT&T Bell Labs created Unix. In 1973, Ritchie invented the C programming language specifically to rewrite Unix in a portable language. C and Unix were born together — you cannot understand one without the other.
Three principles define Unix:
- Do one thing and do it well — each program has a single, clear purpose
- Combine tools via pipes — small programs chain together into composable pipelines
- Text is the universal interface — programs communicate through plain text streams
These principles are why Unix is still the foundation of servers, phones (Android runs Linux), cloud infrastructure, and cybersecurity tooling 55 years later.
Where Unix Lives Today
The Unix family tree:
- BSD → FreeBSD, OpenBSD, macOS
- System V → Solaris, HP-UX, AIX
- Linux (1991, Linus Torvalds) → Ubuntu, Fedora, Debian, Android
POSIX is the standard that keeps them compatible. This course uses Ubuntu 24.04 LTS.
The Shell: Your New Interface
The shell is a program that reads your commands, runs them, and prints the result. This is called a REPL: Read → Evaluate → Print → Loop.
When you open a terminal, you see a prompt:
student@ubuntu:~$
| Part | Meaning |
|---|---|
student |
your username |
@ubuntu |
the machine name |
:~ |
current directory (~ = home) |
$ |
regular user (vs # for root) |
Key Insight: The shell is a REPL — the same concept as Python’s interactive mode or Java’s JShell. You type a command, the shell finds the program, runs it, and shows the output. Then it waits for the next command.
cal at the prompt, what makes the calendar appear on screen?cal, asks the kernel to create a new process, and that process writes the calendar to your screen. The shell then prints a new prompt.
What Comes Next
You now know why Unix exists and what the shell does. In the next lesson, you will type your first commands and see the file system.