Unix Philosophy

Philosophy

Small is Beautiful:

Utilities: “A program should do one thing, it should do it well, and complex tasks should be performed by using these utilities together.”

# Example of a data pipeline:
print $(who | awk '{print $1}' | sort | uniq) | sed 's| |, |g'

Portability > Efficiency:

Use Flat ASCII Files:

Reusable Code:

Avoid Captive Interfaces:

Silence is Golden:

Think Hierarchically:

Problem-Solving:

  1. Use pipes and existing utilities to solve the problem; otherwise
  2. Ask others if they know how to solve the problem; otherwise
  3. Write (and share) some utilities to solve the problem; otherwise
  4. Write a program to solve the problem.

Superuser:

UNIX Contributions

UNIX features (e.g., parallel processing, IPC, file handling) are easily accessible with C via system calls.

Standards

UNIX is written mostly in C, making it easy to port to different hardware platforms.

The many branches of UNIX try to conform to standards set by the POSIX Committee and others.