The Unix Way
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 |
| 27 | Logs Monitoring and Time | syslog · journalctl · monitoring · NTP |
| 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; hosted mirror: /dist/books/ (v10.0–13.1)
- 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