xi 6 Terminal Insanity ..........................................................111 Curses! Foiled Again! Original Sin ...............................................................................111 The Magic of Curses .................................................................114 7 The X-Windows Disaster ......................................123 How to Make a 50-MIPS Workstation Run Like a 4.77MHz IBM PC X: The First Fully Modular Software Disaster..........................124 X Myths.....................................................................................127 X Graphics: Square Peg in a Round Hole .................................141 X: On the Road to Nowhere ......................................................142 Part 2: Programmer’s System?.................145 8 csh, pipes, and find ......................................................147 Power Tools for Power Fools The Shell Game.........................................................................148 Shell Programming....................................................................155 Pipes ..........................................................................................161 Find............................................................................................166 9 Programming ....................................................................173 Hold Still, This Won’t Hurt a Bit The Wonderful Unix Programming Environment.....................175 Programming in Plato’s Cave....................................................176 “It Can’t Be a Bug, My Makefile Depends on It!”....................186 If You Can’t Fix It, Restart It! ...................................................198
xii 10 C++ ............................................................................................203 The COBOL of the 90s The Assembly Language of Object-Oriented Programming..................................................204 Syntax Syrup of Ipecac..............................................................208 Abstract What?..........................................................................211 C++ Is to C as Lung Cancer Is to Lung.....................................214 The Evolution of a Programmer................................................215 Part 3: Sysadmin’s Nightmare ...................219 11 System Administration ............................................221 Unix’s Hidden Cost Keeping Unix Running and Tuned............................................223 Disk Partitions and Backups......................................................227 Configuration Files....................................................................235 Maintaining Mail Services ........................................................239 Where Did I Go Wrong? ...........................................................241 12 Security ..................................................................................243 Oh, I’m Sorry, Sir, Go Ahead, I Didn’t Realize You Were Root The Oxymoronic World of Unix Security .................................243 Holes in the Armor ....................................................................244 The Worms Crawl In .................................................................257 13 The File System..............................................................261 Sure It Corrupts Your Files, But Look How Fast It Is! What’s a File System? ...............................................................262 UFS: The Root of All Evil.........................................................265