Skip to content
ALB Wiki

Diff — The Unix Way

Comparing rev 2 → rev 3

{{infobox
| title = The Unix Way — Capstone
| chapter = Linux Handbook, chapter 30 — the philosophy, the complete map, where you go next
| core | Small tools · pipes · text streams · the philosophy that built everything
| map | All 30 chapters — the complete handbook
| provenance | McIlroy's rules · worse-is-better · the GPL · the gift economy
| next | The references — and whatever you build
}}
**This chapter closes the handbook the way it opened** — not with more commands but with the philosophy underneath them, the complete map of what you've built, and where the road goes next. Linux is the survivor of a fifty-year argument about how computers should work; understanding the argument is the last piece of understanding the machine.
## The philosophy — McIlroy's rules
Doug McIlroy, Unix's pipe inventor, condensed it in 1978:
> Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface.
Every chapter of this handbook is those three sentences made flesh: `grep`/`sed`/`awk` doing one thing, `|` connecting them, text as the universal substrate. The philosophy isn't nostalgia — it's why `find . -name '*.log' -exec wc -l {} + | sort -n` composes instantly while GUIs click through menus. The small-tool grammar scales; the monolith doesn't.
## Worse is better — the winning argument
Richard Gabriel's 1989 essay "Worse Is Better" named Unix's real advantage: **a simple, portable, slightly-worse design that spreads beats a correct, complex one that doesn't.** Unix's design — flat files, plain pipes, a small syscall surface — was implementable anywhere, comprehensible to one mind, improvable piecemeal. The "right thing" systems (ITS, Lisp machines, Multics's complexity) died; the worse thing inherited the world. Linux itself is the proof — a hobby kernel by a student, "not portable" per Tanenbaum, which ran on everything within a decade.
## The GPL — the legal invention
Linux's license is the other half of its survival: the **GPL's copyleft** — you may use, modify, redistribute; you must pass the same freedoms forward — turned every contribution into a commons. Every improvement Red Hat made, it owed the world; every vendor's driver, it owed back. The gift economy is enforced by copyright law — Stallman's inversion of it. The kernel's `COPYING` file is the constitution the whole ecosystem runs under.
## The complete handbook map — all 30 chapters
### Part I — Foundations
| Ch | Page | Covers |
| --- | --- | --- |
| 1 | [[Linux]] | What it is · history · the landscape · the LFS roadmap |
| 2 | [[LFS Preparation]] | The host · the partition · sources · the sterile env |
| 3 | [[LFS Cross-Toolchain]] | binutils → gcc → glibc → libstdc++ — the bootstrap |
| 4 | [[LFS Temporary System]] | Temp tools · virtual FS · the chroot pivot |
| 5 | [[LFS System Packages]] | The ~50-package marathon · native toolchain |
| 6 | [[LFS Kernel and Boot]] | fstab · kernel config · GRUB · first boot |
| 7 | [[Getting Linux]] | Install paths · UEFI/BIOS · Slackware · QEMU |
| 8 | [[Filesystem]] | FHS · inodes · mounts · /proc /dev |
| 9 | [[Shell]] | POSIX grammar · quoting · expansion · job control |
| 10 | [[Core Utilities]] | The 150-command vocabulary |
### Part II — The working system
| Ch | Page | Covers |
| --- | --- | --- |
| 11 | [[Text Processing]] | grep · sed · awk · the composition grammar |
| 12 | [[Users and Permissions]] | Mode bits · special bits · sudo · ACLs |
| 13 | [[Processes]] | fork/exec · signals · /proc · job control |
| 14 | [[Shell Scripting]] | POSIX programs · control flow · safety |
| 15 | [[C Toolchain]] | The pipeline · make · gdb · libraries |
| 16 | [[Building from Source]] | configure/make · cmake/meson · patches |
| 17 | [[Inside a Linux System]] | Boot chain · init · services |
| 18 | [[Networking]] | ip · ssh · ss · dig · firewall |
| 19 | [[Editors]] | vi · nano · the config craft |
| 20 | [[Package Management]] | Formats · managers · the graph |
| 21 | [[Disks and Storage]] | Partitions · filesystems · LVM · rescue |
| 22 | [[Linux Security]] | Least privilege · hardening · audit |
| 23 | [[Eyes-Free Linux]] | Speakup · BRLTTY · Orca · Slint |
| 24 | [[BLFS]] | Beyond the base — the dependency web |
### Part III — Mastery
| Ch | Page | Covers |
| --- | --- | --- |
| 25 | [[Troubleshooting and Rescue]] | The failure playbook · chroot surgery |
| 26 | [[Kernel Deep Dive]] | The source · .config · modules · sysctl |
| 28 | [[The Distro Landscape]] | The families · the philosophies |
| 29 | [[Automation and Dev]] | cron · tmux · git · dotfiles |
| 30 | This page | The philosophy · the map · the road |
## Where the road goes
The handbook is a floor, not a ceiling:
- **BLFS territory** — the thousand-package web — the livable layer on the booted base
- **The kernel itself** — read `kernel/sched/`, `fs/`, `mm/` — the mind behind the machine
- **Embedded/yocto/buildroot** — Linux as the smallest possible artifact
- **The ALB connection** — this site: a BASIC dialect compiled to native code, on the machine this handbook builds
- **Systems programming** — write a syscall, a filesystem, a driver, a distro
The deepest skill the handbook taught isn't any command — it's that **everything on the system is inspectable**: every file readable, every process exposable via /proc, every service's behavior in logs, every package's contents listed. A Linux machine doesn't hide itself; the whole point of the last 30 chapters was learning where to look.
## The complete reference index — the cheat layer
**The daily dozen**: `ls` `cd` `grep` `find` `cat` `less` `vim` `sudo` `ssh` `tar` `ps` `df`
**The power dozen**: `awk` `sed` `xargs` `tmux` `git` `rsync` `cron` `systemctl` `journalctl` `ip` `ss` `strace`
**The forensic dozen**: `dmesg` `lsof` `top` `htop` `du` `stat` `file` `ldd` `tcpdump` `mount` `fdisk` `chroot`
**The build dozen**: `gcc` `make` `configure` `patch` `diff` `ld` `ar` `nm` `objdump` `readelf` `gdb` `pkg-config`
**The startup files**: `/etc/profile` → `~/.profile`/`~/.bash_profile` (login) · `~/.bashrc` (interactive) · `~/.inputrc` · `~/.vimrc` · `~/.tmux.conf` · `~/.gitconfig` · `~/.ssh/config` · `~/.config/`
**The system files**: `/etc/fstab` `/etc/passwd` `/etc/group` `/etc/shadow` `/etc/sudoers` `/etc/hosts` `/etc/resolv.conf` `/etc/hostname` `/etc/inittab` `/etc/shells` `/etc/os-release` `/etc/nsswitch.conf` `/etc/ld.so.conf` `/etc/sysctl.conf` `/etc/ssh/sshd_config` `/etc/logrotate.conf` `/etc/environment`
**The /proc files**: `cpuinfo` `meminfo` `loadavg` `uptime` `mounts` `filesystems` `partitions` `version` `cmdline` `interrupts` `net/tcp` `sys/` `PID/{status,cmdline,environ,fd,maps,io,limits,cwd,exe}`
**The signal set**: 1 HUP · 2 INT · 3 QUIT · 6 ABRT · 8 FPE · 9 KILL · 11 SEGV · 13 PIPE · 15 TERM · 17 CHLD · 18 CONT · 19 STOP · 20 TSTP · 10/12 USR1/2
**The exit codes**: 0 ok · 1 general · 2 misuse · 126 not executable · 127 not found · 128+n killed by signal n · 130 Ctrl-C
**The octal modes**: 600 keys · 644 files · 664 shared · 700 private dirs · 755 dirs/scripts · 775 shared dirs · 1777 /tmp · 4755 setuid · 2755 setgid
**The FHS map**: `/bin /boot /dev /etc /home /lib /media /mnt /opt /proc /root /run /sbin /srv /sys /tmp /usr /var`
**The man sections**: 1 user · 2 syscalls · 3 libs · 4 devices · 5 file formats · 6 games · 7 misc · 8 admin
## The last word
The LFS book's own epigraph holds: the goal was never the booting system — it's the builder who now understands every layer from firmware to shell. The machine you compiled is proof-of-knowledge. What you build on it is the point.
## References — the reading list
- **linuxfromscratch.org** — LFS + BLFS — the books this handbook distills
- **McIlroy, "Unix Time-Sharing System: A Retrospective"** (1978) — the three rules
- **Gabriel, "Worse Is Better"** (1989) — the design argument
- **Stallman, the GPL + GNU Manifesto** — the license and the idea
- **kernel.org Documentation** — the kernel's own docs
- **POSIX.1 / The Open Group** — the standard
- **The man pages** — `man intro`, the section map — the oldest reference
## See also
- [[Linux]] — chapter 1, the landscape · [[LFS Preparation]] — where the build starts
- [[Speakup]] · [[Kurzweil Reading Machine]] — the lineage beyond the handbook
[[Category:Linux]]
[[Category:Handbook]]
[[Category:Philosophy]]