| | {{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 |
| + | ### Part I — The ground |
| | |
| | | Ch | Page | Covers | |
| | | --- | --- | --- | |
| | | 1 | [[Linux]] | What it is · history · the landscape · the LFS roadmap | |
| + | |
| + | ### Part II — The build: Linux From Scratch |
| + | |
| + | | Ch | Page | Covers | |
| + | | --- | --- | --- | |
| | | 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 |
| + | ### Part III — The system: the working OS |
| | |
| | | Ch | Page | Covers | |
| | | --- | --- | --- | |
| + | | 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 | |
| | | 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 |
| + | ### Part IV — Beyond the base |
| | |
| | | Ch | Page | Covers | |
| | | --- | --- | --- | |
| + | | 24 | [[BLFS]] | *The build resumes* — beyond the base, the dependency web | |
| | | 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/](/dist/books/index.html) (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 |
| | |
| | [[Category:Linux]] |
| | [[Category:Handbook]] |
| | [[Category:Philosophy]] |
| | [[Category:Linux Handbook]] |
| | |