,THIS CHAPTER CLOSES THE HANDBOOK THE WAY IT OPENED NOT WITH MORE COMMANDS BUT WITH THE PHILOSOPHY UNDERNEATH THEM1 THE COMPLETE MAP OF WHAT YOU'VE BUILT1 AND WHERE THE ROAD GOES NEXT4 ,LINUX IS THE SURVIVOR OF A FIFTY-YEAR ARGUMENT ABOUT HOW COMPUTERS SHOULD WORK2 UNDERSTANDING THE ARGUMENT IS THE LAST PIECE OF UNDERSTANDING THE MACHINE4 ,THE PHILOSOPHY ,MC,ILROY'S RULES ,DOUG ,MC,ILROY1 ,UNIX'S PIPE INVENTOR1 CONDENSED IT IN #AIGH3 @> ,WRITE PROGRAMS THAT DO ONE THING AND DO IT WELL4 ,WRITE PROGRAMS TO WORK TOGETHER4 ,WRITE PROGRAMS TO HANDLE TEXT STREAMS1 BECAUSE THAT IS A UNIVERSAL INTERFACE4 ,EVERY CHAPTER OF THIS HANDBOOK IS THOSE THREE SENTENCES MADE FLESH3 GREP_/SED_/AWK DOING ONE THING1 _\ CONNECTING THEM1 TEXT AS THE UNIVERSAL SUBSTRATE4 ,THE PHILOSOPHY ISN'T NOSTALGIA IT'S WHY FIND 4 -NAME '"94LOG' -EXEC WC -;L _<_> "6 _\ SORT -;N COMPOSES INSTANTLY WHILE ,G,U,IS CLICK THROUGH MENUS4 ,THE SMALL-TOOL GRAMMAR SCALES2 THE MONOLITH DOESN'T4 ,WORSE IS BETTER THE WINNING ARGUMENT ,RICHARD ,GABRIEL'S #AIHI ESSAY 8,WORSE ,IS ,BETTER0 NAMED ,UNIX'S REAL ADVANTAGE3 A SIMPLE1 PORTABLE1 SLIGHTLY-WORSE DESIGN THAT SPREADS BEATS A CORRECT1 COMPLEX ONE THAT DOESN'T4 ,UNIX'S DESIGN FLAT FILES1 PLAIN PIPES1 A SMALL SYSCALL SURFACE WAS IMPLEMENTABLE ANYWHERE1 COMPREHENSIBLE TO ONE MIND1 IMPROVABLE PIECEMEAL4 ,THE 8RIGHT THING0 SYSTEMS "<,,ITS1 ,LISP MACHINES1 ,MULTICS'S COMPLEXITY"> DIED2 THE WORSE THING INHERITED THE WORLD4 ,LINUX ITSELF IS THE PROOF A HOBBY KERNEL BY A STUDENT1 8NOT PORTABLE0 PER ,TANENBAUM1 WHICH RAN ON EVERYTHING WITHIN A DECADE4 ,THE ,,GPL THE LEGAL INVENTION ,LINUX'S LICENSE IS THE OTHER HALF OF ITS SURVIVAL3 THE ,,GPL'S COPYLEFT YOU MAY USE1 MODIFY1 REDISTRIBUTE2 YOU MUST PASS THE SAME FREEDOMS FORWARD TURNED EVERY CONTRIBUTION INTO A COMMONS4 ,EVERY IMPROVEMENT ,RED ,HAT MADE1 IT OWED THE WORLD2 EVERY VENDOR'S DRIVER1 IT OWED BACK4 ,THE GIFT ECONOMY IS ENFORCED BY COPYRIGHT LAW ,STALLMAN'S INVERSION OF IT4 ,THE KERNEL'S ,,COPYING FILE IS THE CONSTITUTION THE WHOLE ECOSYSTEM RUNS UNDER4 ,THE COMPLETE HANDBOOK MAP ALL #CJ CHAPTERS ,PART ,I ,THE GROUND ,CH ,PAGE ,COVERS #A ,LINUX ,WHAT IT IS HISTORY THE LANDSCAPE THE ,,LFS ROADMAP ,PART ,,II ,THE BUILD3 ,LINUX ,FROM ,SCRATCH ,CH ,PAGE ,COVERS #B ,,LFS ,PREPARATION ,THE HOST THE PARTITION SOURCES THE STERILE ENV #C ,,LFS ,CROSS-,TOOLCHAIN BINUTILS GCC GLIBC LIBSTDC"6"6 THE BOOTSTRAP #D ,,LFS ,TEMPORARY ,SYSTEM ,TEMP TOOLS VIRTUAL ,,FS THE CHROOT PIVOT #E ,,LFS ,SYSTEM ,PACKAGES ,THE @9#EJ-PACKAGE MARATHON NATIVE TOOLCHAIN #F ,,LFS ,KERNEL AND ,BOOT FSTAB KERNEL CONFIG ,,GRUB FIRST BOOT ,PART ,,III ,THE SYSTEM3 THE WORKING ,,OS ,CH ,PAGE ,COVERS #G ,GETTING ,LINUX ,INSTALL PATHS ,,UEFI_/,,BIOS ,SLACKWARE ,,QEMU #H ,FILESYSTEM ,,FHS INODES MOUNTS _/PROC _/DEV #I ,SHELL ,,POSIX GRAMMAR QUOTING EXPANSION JOB CONTROL #AJ ,CORE ,UTILITIES ,THE #AEJ-COMMAND VOCABULARY #AA ,TEXT ,PROCESSING GREP SED AWK THE COMPOSITION GRAMMAR #AB ,USERS AND ,PERMISSIONS ,MODE BITS SPECIAL BITS SUDO ,A,C,LS #AC ,PROCESSES FORK_/EXEC SIGNALS _/PROC JOB CONTROL #AD ,SHELL ,SCRIPTING ,,POSIX PROGRAMS CONTROL FLOW SAFETY #AE ;,C ,TOOLCHAIN ,THE PIPELINE MAKE GDB LIBRARIES #AF ,BUILDING FROM ,SOURCE CONFIGURE_/MAKE CMAKE_/MESON PATCHES #AG ,INSIDE A ,LINUX ,SYSTEM ,BOOT CHAIN INIT SERVICES #AH ,NETWORKING IP SSH SS DIG FIREWALL #AI ,EDITORS VI NANO THE CONFIG CRAFT #BJ ,PACKAGE ,MANAGEMENT ,FORMATS MANAGERS THE GRAPH #BA ,DISKS AND ,STORAGE ,PARTITIONS FILESYSTEMS ,,LVM RESCUE #BB ,LINUX ,SECURITY ,LEAST PRIVILEGE HARDENING AUDIT #BC ,EYES-,FREE ,LINUX ,SPEAKUP ,,BRLTTY ,ORCA ,SLINT ,PART ,,IV ,BEYOND THE BASE ,CH ,PAGE ,COVERS #BD ,,BLFS ,THE BUILD RESUMES BEYOND THE BASE1 THE DEPENDENCY WEB #BE ,TROUBLESHOOTING AND ,RESCUE ,THE FAILURE PLAYBOOK CHROOT SURGERY #BF ,KERNEL ,DEEP ,DIVE ,THE SOURCE 4CONFIG MODULES SYSCTL #BG ,LOGS ,MONITORING AND ,TIME SYSLOG JOURNALCTL MONITORING ,,NTP #BH ,THE ,DISTRO ,LANDSCAPE ,THE FAMILIES THE PHILOSOPHIES #BI ,AUTOMATION AND ,DEV CRON TMUX GIT DOTFILES #CJ ,THIS PAGE ,THE PHILOSOPHY THE MAP THE ROAD ,WHERE THE ROAD GOES ,THE HANDBOOK IS A FLOOR1 NOT A CEILING3 - ,,BLFS TERRITORY THE THOUSAND-PACKAGE WEB THE LIVABLE LAYER ON THE BOOTED BASE - ,THE KERNEL ITSELF READ KERNEL_/SCHED_/1 FS_/1 MM_/ THE MIND BEHIND THE MACHINE - ,EMBEDDED_/YOCTO_/BUILDROOT ,LINUX AS THE SMALLEST POSSIBLE ARTIFACT - ,THE ,,ALB CONNECTION THIS SITE3 A ,,BASIC DIALECT COMPILED TO NATIVE CODE1 ON THE MACHINE THIS HANDBOOK BUILDS - ,SYSTEMS PROGRAMMING WRITE A SYSCALL1 A FILESYSTEM1 A DRIVER1 A DISTRO ,THE DEEPEST SKILL THE HANDBOOK TAUGHT ISN'T ANY COMMAND IT'S THAT EVERYTHING ON THE SYSTEM IS INSPECTABLE3 EVERY FILE READABLE1 EVERY PROCESS EXPOSABLE VIA _/PROC1 EVERY SERVICE'S BEHAVIOR IN LOGS1 EVERY PACKAGE'S CONTENTS LISTED4 ,A ,LINUX MACHINE DOESN'T HIDE ITSELF2 THE WHOLE POINT OF THE LAST #CJ CHAPTERS WAS LEARNING WHERE TO LOOK4 ,THE COMPLETE REFERENCE INDEX THE CHEAT LAYER ,THE DAILY DOZEN3 LS CD GREP FIND CAT LESS VIM SUDO SSH TAR PS DF ,THE POWER DOZEN3 AWK SED XARGS TMUX GIT RSYNC CRON SYSTEMCTL JOURNALCTL IP SS STRACE ,THE FORENSIC DOZEN3 DMESG LSOF TOP HTOP DU STAT FILE LDD TCPDUMP MOUNT FDISK CHROOT ,THE BUILD DOZEN3 GCC MAKE CONFIGURE PATCH DIFF LD AR NM OBJDUMP READELF GDB PKG-CONFIG ,THE STARTUP FILES3 _/ETC_/PROFILE @9_/4PROFILE_/@9_/4BASH.-PROFILE " @9_/4BASHRC " @9_/4INPUTRC @9_/4VIMRC @9_/4TMUX4CONF @9_/4GITCONFIG @9_/4SSH_/CONFIG @9_/4CONFIG_/ ,THE SYSTEM FILES3 _/ETC_/FSTAB _/ETC_/PASSWD _/ETC_/GROUP _/ETC_/SHADOW _/ETC_/SUDOERS _/ETC_/HOSTS _/ETC_/RESOLV4CONF _/ETC_/HOSTNAME _/ETC_/INITTAB _/ETC_/SHELLS _/ETC_/OS-RELEASE _/ETC_/NSSWITCH4CONF _/ETC_/LD4SO4CONF _/ETC_/SYSCTL4CONF _/ETC_/SSH_/SSHD.-CONFIG _/ETC_/LOGROTATE4CONF _/ETC_/ENVIRONMENT ,THE _/PROC FILES3 CPUINFO MEMINFO LOADAVG UPTIME MOUNTS FILESYSTEMS PARTITIONS VERSION CMDLINE INTERRUPTS NET_/TCP SYS_/ ,,PID_/_ ,THE SIGNAL SET3 #A ,,HUP #B ,,INT #C ,,QUIT #F ,,ABRT #H ,,FPE #I ,,KILL #AA ,,SEGV #AC ,,PIPE #AE ,,TERM #AG ,,CHLD #AH ,,CONT #AI ,,STOP #BJ ,,TSTP #AJ_/#AB ,,USR#A_/#B ,THE EXIT CODES3 #J OK #A GENERAL #B MISUSE #ABF NOT EXECUTABLE #ABG NOT FOUND #ABH"6N KILLED BY SIGNAL ;N #ACJ ,CTRL-;,C ,THE OCTAL MODES3 #FJJ KEYS #FDD FILES #FFD SHARED #GJJ PRIVATE DIRS #GEE DIRS_/SCRIPTS #GGE SHARED DIRS #AGGG _/TMP #DGEE SETUID #BGEE SETGID ,THE ,,FHS MAP3 _/BIN _/BOOT _/DEV _/ETC _/HOME _/LIB _/MEDIA _/MNT _/OPT _/PROC _/ROOT _/RUN _/SBIN _/SRV _/SYS _/TMP _/USR _/VAR ,THE MAN SECTIONS3 #A USER #B SYSCALLS #C LIBS #D DEVICES #E FILE FORMATS #F GAMES #G MISC #H ADMIN ,THE LAST WORD ,THE ,,LFS BOOK'S OWN EPIGRAPH HOLDS3 THE GOAL WAS NEVER THE BOOTING SYSTEM IT'S THE BUILDER WHO NOW UNDERSTANDS EVERY LAYER FROM FIRMWARE TO SHELL4 ,THE MACHINE YOU COMPILED IS PROOF-OF-KNOWLEDGE4 ,WHAT YOU BUILD ON IT IS THE POINT4 ,REFERENCES THE READING LIST - LINUXFROMSCRATCH4ORG ,,LFS "6 ,,BLFS THE BOOKS THIS HANDBOOK DISTILLS2 HOSTED MIRROR3 _/DIST_/BOOKS_/ " - ,MC,ILROY1 8,UNIX ,TIME-,SHARING ,SYSTEM3 ,A ,RETROSPECTIVE0 "<#AIGH"> THE THREE RULES - ,GABRIEL1 8,WORSE ,IS ,BETTER0 "<#AIHI"> THE DESIGN ARGUMENT - ,STALLMAN1 THE ,,GPL "6 ,,GNU ,MANIFESTO THE LICENSE AND THE IDEA - KERNEL4ORG ,DOCUMENTATION THE KERNEL'S OWN DOCS - ,,POSIX4#A _/ ,THE ,OPEN ,GROUP THE STANDARD - ,THE MAN PAGES MAN INTRO1 THE SECTION MAP THE OLDEST REFERENCE ,SEE ALSO - ,LINUX CHAPTER #A1 THE LANDSCAPE ,,LFS ,PREPARATION WHERE THE BUILD STARTS - ,SPEAKUP ,KURZWEIL ,READING ,MACHINE THE LINEAGE BEYOND THE HANDBOOK