student@ubuntu:~$
unix-foundations Lesson 1 8 min read

Unix History & the Shell

Where Unix came from, the three principles, and your first look at the terminal

Reading: Shotts, The Linux Command Line: pp. 35–38 (the shell, terminal emulators, first keystrokes)

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:

  1. Do one thing and do it well — each program has a single, clear purpose
  2. Combine tools via pipes — small programs chain together into composable pipelines
  3. 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.


Check Your Understanding
When you type cal at the prompt, what makes the calendar appear on screen?
AThe terminal draws it directly
BThe shell searches PATH, finds /usr/bin/cal, and runs it
Ccal is built into the shell
DThe kernel handles it directly
Answer: B. The shell is a middleman. It reads your input, searches the directories listed in PATH for a program called 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.