Skip to content
ALB Wiki

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.

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 — The ground

ChPageCovers
1LinuxWhat it is · history · the landscape · the LFS roadmap

Part II — The build: Linux From Scratch

ChPageCovers
2LFS PreparationThe host · the partition · sources · the sterile env
3LFS Cross-Toolchainbinutils → gcc → Glibc → libstdc++ — the bootstrap
4LFS Temporary SystemTemp tools · virtual FS · the chroot pivot
5LFS System PackagesThe ~50-package marathon · native toolchain
6LFS Kernel and Bootfstab · kernel config · GRUB · first boot

Part III — The system: the working OS

ChPageCovers
7Getting LinuxInstall paths · UEFI/BIOS · Slackware · QEMU
8FilesystemFHS · inodes · mounts · /proc /dev
9ShellPOSIX grammar · quoting · expansion · job control
10Core UtilitiesThe 150-command vocabulary
11Text Processinggrep · sed · awk · the composition grammar
12Users and PermissionsMode bits · special bits · sudo · ACLs
13Processesfork/exec · signals · /proc · job control
14Shell ScriptingPOSIX programs · control flow · safety
15C ToolchainThe pipeline · make · gdb · libraries
16Building from Sourceconfigure/make · cmake/meson · patches
17Inside a Linux SystemBoot chain · init · services
18Networkingip · ssh · ss · dig · firewall
19Editorsvi · nano · the config craft
20Package ManagementFormats · managers · the graph
21Disks and StoragePartitions · filesystems · LVM · rescue
22Linux SecurityLeast privilege · hardening · audit
23Eyes-Free LinuxSpeakup · BRLTTY · Orca · Slint

Part IV — Beyond the base

ChPageCovers
24BLFSThe build resumes — beyond the base, the dependency web
25Troubleshooting and RescueThe failure playbook · chroot surgery
26Kernel Deep DiveThe source · .config · modules · sysctl
27Logs Monitoring and Timesyslog · journalctl · monitoring · NTP
28The Distro LandscapeThe families · the philosophies
29Automation and Devcron · tmux · git · dotfiles
30This pageThe 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

This page was last edited 2026-10-26 13:38:07 UTC by ALB Team. What links here