04_579495 ftoc.qxd 12/27/04 9:52 PM Page xii

Contents at a Glance

Preface ...... vii Acknowledgments ...... xi

Part I: First Steps...... 1 Chapter 1: Starting with Linux ...... 3 Chapter 2: Running Commands from the Shell ...... 29 Chapter 3: Getting into the Desktop ...... 77

Part II: Running the Show ...... 123 Chapter 4: Learning Basic Administration ...... 125 Chapter 5: Getting on the Internet ...... 169 Chapter 6: Securing Linux ...... 191

Part III: Choosing and Installing a ...... 241 Chapter 7: Installing Linux ...... 243 Chapter 8: Running Fedora Core and Enterprise Linux ...... 273 Chapter 9: Running GNU/Linux ...... 295 Chapter 10: Running SUSE Linux ...... 315 Chapter 11: Running ...... 329 Chapter 12: Running ...... 351 Chapter 13: Running Linux ...... 367 Chapter 14: Running Linux ...... 383 Chapter 15: Running ...... 399 Chapter 16: Running Mandrakelinux ...... 409 Chapter 17: Running a Linux Firewall/Router ...... 423 Chapter 18: RunningCOPYRIGHTED Bootable Linux Distributions MATERIAL ...... 447 Part IV: Running Applications ...... 459 Chapter 19: Playing Music and Video ...... 461 Chapter 20: Working with Words and Images ...... 501 Chapter 21: E-Mailing and Web Browsing ...... 541 Chapter 22:Gaming Alone and Online ...... 569 04_579495 ftoc.qxd 12/27/04 9:52 PM Page xiii

Part V:Running Servers ...... 593 Chapter 23: Running a Linux, Apache, MySQL, and PHP (LAMP) Server . . . . . 595 Chapter 24: Running a Mail Server ...... 617 Chapter 25: Running a Print Server ...... 635 Chapter 26: Running a File Server ...... 659

Part VI: Programming in Linux...... 693 Chapter 27: Programming Environments and Interfaces ...... 695 Chapter 28: Programming Tools and Utilities ...... 723

Appendix A: Media ...... 753 Appendix B: Entering the Linux Community ...... 761

Index ...... 767 04_579495 ftoc.qxd 12/27/04 9:52 PM Page xiv 04_579495 ftoc.qxd 12/27/04 9:52 PM Page xv

Contents

Preface ...... vii Acknowledgments ...... xi

Part I: Linux First Steps 1

Chapter 1: Starting with Linux ...... 3 Understanding Linux ...... 5 What’s So Cool About Linux? ...... 7 Exploring Linux History ...... 8 From a Free-Flowing Culture at Bell Labs ...... 9 To a Commercialized UNIX ...... 11 To a GNU Free-Flowing (Not) UNIX ...... 13 BSD Loses Some Steam ...... 14 Linus Builds the Missing Piece ...... 15 What’s So Great About Linux? ...... 16 OSI Open Source Definition ...... 16 Vibrant Communities ...... 18 Major Software Projects ...... 19 Linux Myths, Legends, and FUD ...... 20 Can You Stop Worrying About Viruses? ...... 20 Will You Be Sued for Using Linux? ...... 21 Can Linux Really Run on Everything from Handhelds to Supercomputers? ...... 23 Will Linux Crush Microsoft? ...... 23 Are You on Your Own If You Use Linux? ...... 23 Is Linux Only for Geeks? ...... 24 How Do Companies Make Money with Linux? ...... 24 How Different Are Linux Distributions from One Another? ...... 25 Is the Linux Mascot Really a Penguin? ...... 26 Running Linux ...... 26 Common Mistakes When Starting with Linux ...... 27 Getting Started ...... 27 Summary ...... 28 04_579495 ftoc.qxd 12/27/04 9:52 PM Page xvi

xvi Contents

Chapter 2: Running Commands from the Shell ...... 29 Starting a Shell ...... 30 Using the Shell Prompt ...... 30 Using a Terminal Window ...... 31 Using Virtual Terminals ...... 32 Choosing Your Shell ...... 32 Using bash (and Earlier sh) Shells ...... 33 Using tcsh (and Earlier csh) Shells ...... 34 Using ash ...... 34 Using ksh ...... 34 Using zsh ...... 34 Exploring the Shell ...... 34 Checking Your Login Session ...... 35 Checking Directories and Permissions ...... 35 Checking System Activity ...... 37 Exiting the Shell ...... 38 Using the Shell in Linux ...... 39 Locating Commands ...... 40 Rerunning Commands ...... 42 Connecting and Expanding Commands ...... 48 Creating Your Shell Environment ...... 51 Configuring Your Shell ...... 51 Using Shell Environment Variables ...... 55 Managing Background and Foreground Processes ...... 58 Working with the Linux File System ...... 60 Creating Files and Directories ...... 63 Moving, Copying, and Deleting Files ...... 69 Using the vi Text Editor ...... 69 Starting with vi ...... 70 Moving Around the File ...... 72 Searching for Text ...... 73 Using Numbers with Commands ...... 74 Summary ...... 75 Chapter 3: Getting into the Desktop ...... 77 Understanding Your Desktop ...... 77 Starting the Desktop ...... 78 K (KDE) ...... 81 Using the KDE Desktop ...... 82 Managing Files with the Konqueror File Manager ...... 86 Configuring Konqueror Options ...... 91 Managing Windows ...... 93 Configuring the Desktop ...... 96 Adding Application Launchers and MIME Types ...... 98 04_579495 ftoc.qxd 12/27/04 9:52 PM Page xvii

Contents xvii

The GNOME Desktop ...... 99 Using the Metacity Window Manager ...... 100 Using the GNOME panel ...... 103 Using the Nautilus File Manager ...... 108 Changing GNOME Preferences ...... 110 Exiting GNOME ...... 113 Configuring Your Own Desktop ...... 114 Configuring X ...... 114 Choosing a Window Manager ...... 118 Choosing Your Personal Window Manager ...... 120 Getting More Information ...... 120 Summary ...... 121

Part II: Running the Show 123

Chapter 4: Learning Basic Administration ...... 125 Graphical Administration Tools ...... 125 Using Web-Based Administration ...... 126 Graphical Administration with Different Distributions ...... 127 Using the Root Login ...... 131 Becoming Root from the Shell (su Command) ...... 132 Allowing Limited Administrative Access ...... 133 Exploring Administrative Commands, Configuration Files, and Log Files ...... 134 Administrative Commands ...... 134 Administrative Configuration Files ...... 134 Administrative Log Files ...... 139 Using sudo and Other Administrative Logins ...... 140 Administering Your Linux System ...... 142 Creating User Accounts ...... 142 Adding Users with useradd ...... 143 Setting User Defaults ...... 147 Configuring Hardware ...... 149 Finding Available Modules ...... 149 Listing Loaded Modules ...... 149 Managing File Systems and Disk Space ...... 151 Mounting File Systems ...... 154 Using the mkfs Command to Create a File System ...... 161 Adding a Hard Disk ...... 162 Checking System Space ...... 164 Monitoring System Performance ...... 166 Summary ...... 167 04_579495 ftoc.qxd 12/27/04 9:52 PM Page xviii

xviii Contents

Chapter 5: Getting on the Internet ...... 169 Connecting to the Network ...... 170 Connecting Via Dial-up Service ...... 170 Connecting a Single Computer to Broadband ...... 171 Connecting Multiple Computers to Broadband ...... 172 Connecting Servers ...... 173 Connecting Other Equipment ...... 175 Using Ethernet Connections to the Internet ...... 176 Configuring Ethernet During Installation ...... 176 Configuring Ethernet from the Desktop ...... 177 Using Network Configuration in Fedora ...... 177 Identifying Other Computers (Hosts and DNS) ...... 179 Understanding Your Internet Connection ...... 181 Using Dial-up Connections to the Internet ...... 184 Getting Information ...... 184 Setting Up Dial-up PPP ...... 185 Creating a Dial-up Connection with the Internet Configuration Wizard ...... 186 Launching Your PPP Connection ...... 188 Launching Your PPP Connection on Demand ...... 188 Checking Your PPP Connection ...... 189 Summary ...... 190 Chapter 6: Securing Linux ...... 191 Protecting Your Computer ...... 192 Understanding Attack Techniques ...... 193 Protecting Against Denial of Service Attacks ...... 194 Mailbombing ...... 194 Spam Relaying ...... 196 Smurf Amplification Attack ...... 197 Protecting Against Distributed DoS Attacks ...... 197 Protecting Against Intrusion Attacks ...... 202 Evaluating Access to Network Services ...... 202 Disabling Network Services ...... 204 Using TCP Wrappers ...... 205 Detecting Intrusions from Log Files ...... 208 The Role of Syslogd ...... 210 Redirecting Logs to a Loghost with syslogd ...... 211 Understanding the messages Log File ...... 212 Using Password Protection ...... 213 Choosing Strong Passwords ...... 214 Using a Password File ...... 215 Using Encryption Techniques ...... 217 Symmetric Cryptography ...... 217 Public-Key Cryptography ...... 218 Secure Socket Layer ...... 218 04_579495 ftoc.qxd 12/27/04 9:52 PM Page xix

Contents xix

Using the Secure Shell Package ...... 227 Starting the SSH Service ...... 227 Using the ssh, sftp, and scp Commands ...... 228 Using ssh, scp, and sftp Without Passwords ...... 229 Guarding Your Computer with PortSentry ...... 230 Downloading and Installing PortSentry ...... 231 Using PortSentry As Is ...... 231 Configuring PortSentry ...... 232 Testing PortSentry ...... 237 Tracking PortSentry Intrusions ...... 238 Restoring Access ...... 239 Security Auditing Tools ...... 239 Summary ...... 240

Part III: Choosing and Installing a Linux Distribution 241

Chapter 7: Installing Linux ...... 243 Choosing a Linux Distribution ...... 244 Linux at Work ...... 244 Other Distributions ...... 245 Getting Your Own Linux Distribution ...... 245 Finding Another Linux Distribution ...... 246 Understanding What You Need ...... 246 Downloading the Distribution ...... 247 Burning the Distribution to CD ...... 248 Exploring Common Installation Topics ...... 249 Knowing Your Computer Hardware ...... 249 Upgrading or Installing from Scratch ...... 250 Dual Booting with Windows or Just Linux ...... 251 Using Installation Boot Options ...... 252 Partitioning Hard Drives ...... 253 Using LILO or GRUB Boot Loaders ...... 261 Configuring Networking ...... 270 Configuring Other Administrative Features ...... 271 Installing from the Linux Bible DVD ...... 272 Summary ...... 272 Chapter 8: Running Fedora Core and . . . 273 Digging into Features ...... 274 Red Hat Installer () ...... 275 RPM Package Management ...... 276 Kudzu Hardware Detection ...... 276 Red Hat Desktop Look-and-Feel ...... 276 System Configuration Tools ...... 277 04_579495 ftoc.qxd 12/27/04 9:52 PM Page xx

xx Contents

Going Forward with Fedora Core ...... 277 Fedora Legacy Project ...... 277 Fedora Software Repositories ...... 278 Forums and Mailing Lists ...... 279 Listening to the People at Red Hat ...... 279 Listening to the Red Hat Community ...... 280 Installing Fedora Core ...... 282 Choosing Computer Hardware ...... 283 Choosing an Installation Method ...... 284 Choosing to Install or Upgrade ...... 286 Beginning the Installation ...... 287 Running Fedora Setup Agent ...... 293 Summary ...... 294 Chapter 9: Running Debian GNU/Linux ...... 295 Inside Debian GNU/Linux ...... 296 Debian Packages ...... 296 Debian Package Management Tools ...... 297 Debian Releases ...... 298 Installing Debian GNU/Linux ...... 299 Hardware Requirements and Installation Planning ...... 299 Running the Installer ...... 300 Managing Your Debian System ...... 304 Configuring Network Connections ...... 305 Package Management Using APT ...... 306 Package Management Using dpkg ...... 309 Installing Package Sets (Tasks) with Tasksel ...... 311 Alternatives, Diversions, and Stat Overrides ...... 311 Managing Package Configuration with debconf ...... 313 Summary ...... 314 Chapter 10: Running SUSE Linux ...... 315 Understanding SUSE ...... 316 What’s in SUSE ...... 317 Installation and Configuration with YaST ...... 317 RPM Package Management ...... 320 Automated Software Updates ...... 321 Getting Support for SUSE ...... 321 Installing SUSE ...... 322 Before You Begin ...... 322 Starting Installation ...... 323 Starting with SUSE ...... 327 Summary ...... 327 04_579495 ftoc.qxd 12/27/04 9:52 PM Page xxi

Contents xxi

Chapter 11: Running KNOPPIX ...... 329 Understanding KNOPPIX ...... 329 Looking Inside KNOPPIX ...... 330 What’s Cool About KNOPPIX ...... 331 Examining Challenges with KNOPPIX ...... 333 Seeing Where KNOPPIX Comes From ...... 334 Exploring Uses for KNOPPIX ...... 334 Starting KNOPPIX ...... 336 Getting a Computer ...... 336 Booting KNOPPIX ...... 337 Correcting Boot Problems ...... 337 Using KNOPPIX ...... 341 Using the KDE Desktop in KNOPPIX ...... 342 Getting on the Network ...... 343 Installing Software in KNOPPIX ...... 344 Saving Files in KNOPPIX ...... 344 Keeping Your KNOPPIX Configuration ...... 348 Restarting KNOPPIX ...... 348 Summary ...... 349 Chapter 12: Running Yellow Dog Linux ...... 351 Digging into Yellow Dog ...... 353 Installing Yellow Dog Linux ...... 354 Hardware Support ...... 354 Planning Your Installation ...... 356 Beginning the Installation ...... 358 Updating Yellow Dog Linux ...... 364 Running Mac Applications with Mac-on-Linux ...... 365 Support Options ...... 365 Summary ...... 366 Chapter 13: Running ...... 367 Understanding Gentoo ...... 367 Gentoo’s Open Source Spirit ...... 368 The Gentoo Community ...... 369 Building, Tuning, and Tweaking Linux ...... 369 Where Gentoo Is Used ...... 370 What’s in Gentoo ...... 371 Managing Software with ...... 372 Finding Software Packages ...... 373 Installing Gentoo ...... 374 Getting Gentoo ...... 374 Starting Gentoo Installation ...... 375 Summary ...... 382 04_579495 ftoc.qxd 12/27/04 9:52 PM Page xxii

xxii Contents

Chapter 14: Running Slackware Linux ...... 383 Getting into Slackware ...... 383 Characterizing the Slackware Community ...... 385 The Slackware Creator ...... 385 Slackware Users ...... 386 Slackware Internet Sites ...... 387 Challenges of Using Slackware ...... 387 Using Slackware as a Development Platform ...... 388 Installing Slackware ...... 389 Getting Slackware ...... 389 Hardware Requirements ...... 389 Starting Installation ...... 390 Starting with Slackware ...... 395 Summary ...... 397 Chapter 15: Running Linspire ...... 399 Getting into Linspire ...... 401 Installing Software with Click-N-Run ...... 401 Other Installation Options ...... 402 Linspire Support and Software ...... 403 Linspire Forums and Information ...... 403 Audio Assistant ...... 404 Installing Linspire 4.5 ...... 404 Linspire Hardware Requirements ...... 404 Installing Linspire ...... 405 Summary ...... 407 Chapter 16: Running Mandrakelinux ...... 409 Exploring Mandrakelinux 10 ...... 410 Mandrakelinux Installer (DrakX) ...... 411 RPM Package Management with RPMDrake ...... 412 Mandrakelinux Control Center (MCC) ...... 412 The Mandrakelinux Community ...... 413 RPM Repository on Mandrakeclub ...... 413 Mandrakelinux Forums and News ...... 414 Installing Mandrakelinux 10 ...... 414 The Right Hardware for Mandrakelinux 10 ...... 415 Begin the DrakX Installation ...... 416 Summary ...... 421 Chapter 17: Running a Linux Firewall/Router ...... 423 Understanding Firewalls ...... 424 Protecting Desktops with Firewalls ...... 425 Starting Your Firewall in ...... 425 Creating a Firewall in Mandrakelinux ...... 427 04_579495 ftoc.qxd 12/27/04 9:52 PM Page xxiii

Contents xxiii

Using Firewalls with Iptables ...... 428 Starting with Iptables ...... 428 Using Iptables to Do NAT or IP Masquerading ...... 434 Adding Modules with Iptables ...... 435 Using Iptables as a Transparent Proxy ...... 435 Using Iptables for Port Forwarding ...... 436 Making a Coyote Linux Bootable Floppy Firewall ...... 437 Creating a Coyote Linux Firewall ...... 437 Building the Coyote Linux Floppy ...... 438 Running the Coyote Linux Floppy Firewall ...... 444 Managing the Coyote Linux Floppy Firewall ...... 444 Using Other Firewall Distributions ...... 446 Summary ...... 446 Chapter 18: Running Bootable Linux Distributions ...... 447 Exploring Bootable Linuxes ...... 447 Booting Rescue Distributions ...... 449 KNOPPIX Security Tools Distribution ...... 450 The Inside Security Rescue Toolkit ...... 451 Booting Multimedia Distributions ...... 452 MoviX ...... 452 GeeXboX ...... 454 Booting Tiny Desktop Distributions ...... 454 ...... 455 ...... 456 Summary ...... 457

Part IV: Running Applications 459

Chapter 19: Playing Music and Video ...... 461 Playing Digital Media and Obeying the Law ...... 461 Copyright Protection Issues ...... 462 Exploring Codecs ...... 464 Playing Music ...... 466 Setting Up Audio Cards ...... 466 Choosing an Audio CD Player ...... 468 Using MIDI Audio Players ...... 477 Performing Audio File Conversion and Compression ...... 477 Recording and Ripping Music ...... 481 Creating an Audio CD with cdrecord ...... 481 Ripping CDs with Grip ...... 482 Creating CD Labels with cdlabelgen ...... 484 Working with TV, Video, and Digital Imaging ...... 485 Watching TV with Tvtime ...... 486 Videoconferencing with GnomeMeeting ...... 488 04_579495 ftoc.qxd 12/27/04 9:52 PM Page xxiv

xxiv Contents

Watching Movies and Video ...... 490 Watching Video with Xine ...... 490 Using Helix Player and RealPlayer 10 ...... 494 Using a Digital Camera with Gtkam and gPhoto2 ...... 494 Downloading Digital Photos with Gtkam ...... 497 Using Your Camera as a Storage Device ...... 498 Summary ...... 499 Chapter 20: Working with Words and Images ...... 501 Using OpenOffice.org ...... 502 Other Word Processors ...... 504 Using StarOffice ...... 504 Using AbiWord ...... 505 Using KOffice ...... 506 Getting Away from Windows ...... 507 Using Traditional Linux Publishing Tools ...... 508 Creating Documents in Groff or LaTeX ...... 509 Text Processing with Groff ...... 511 Text Processing with TeX/LaTeX ...... 521 Converting Documents ...... 524 Building Structured Documents ...... 526 Printing Documents in Linux ...... 530 Printing to the Default Printer ...... 530 Printing from the Shell ...... 531 Checking the Print Queues ...... 531 Removing Print Jobs ...... 532 Checking Printer Status ...... 532 Displaying Documents with Ghostscript and Acrobat ...... 533 Using the ghostscript and gv Commands ...... 533 Using Adobe Acrobat Reader ...... 534 Working with Graphics ...... 535 Manipulating Images with GIMP ...... 535 Acquiring Screen Captures ...... 537 Modifying Images with KPaint ...... 537 Using Scanners Driven by SANE ...... 538 Summary ...... 539 Chapter 21: E-Mailing and Web Browsing ...... 541 Using E-Mail ...... 541 Choosing an E-Mail Client ...... 541 Getting Here from Windows ...... 543 Getting Started with E-Mail ...... 544 Tuning Up E-Mail ...... 545 Reading E-Mail with Mail ...... 546 Managing E-Mail in Evolution ...... 550 Getting Thunderbird ...... 553 Working with Text-Based E-Mail Readers ...... 554 04_579495 ftoc.qxd 12/27/04 9:52 PM Page xxv

Contents xxv

Choosing a Web Browser ...... 556 Web Browsing with Mozilla ...... 556 Using Text-Based Web Browsers ...... 566 Running Web Browser ...... 567 Summary ...... 568 Chapter 22: Gaming Alone and Online ...... 569 Basic Linux Gaming Information ...... 570 Where to Get Information About Linux Gaming ...... 570 Getting Started with Linux Gaming ...... 571 Choosing a Video Card for Gaming ...... 571 X Window Games ...... 573 GNOME Games ...... 573 KDE Games ...... 574 Chess Games ...... 576 Freeciv ...... 578 Commercial Linux Games ...... 583 id Software Games ...... 583 TransGaming and Gaming ...... 585 Loki Software Game Demos ...... 588 Summary ...... 591

Part V: Running Servers 593

Chapter 23: Running a Linux, Apache, MySQL, and PHP (LAMP) Server ...... 595 Components of a LAMP Server ...... 596 Apache ...... 596 MySQL ...... 596 PHP ...... 597 Setting Up Your LAMP Server ...... 598 Installing Apache ...... 598 Installing PHP ...... 599 Installing MySQL ...... 600 Operating Your LAMP Server ...... 601 Editing Your Apache Configuration Files ...... 602 Adding a Virtual Host to Apache ...... 604 Installing a Web Application: Gallery ...... 606 Troubleshooting ...... 608 Configuration Errors ...... 609 Access Forbidden and Server Internal Errors ...... 611 Securing Your Web Traffic with SSL/TLS ...... 612 Generating Your Keys ...... 614 Configuring Apache to Support SSL/TLS ...... 615 Summary ...... 616 04_579495 ftoc.qxd 12/27/04 9:52 PM Page xxvi

xxvi Contents

Chapter 24: Running a Mail Server ...... 617 Internet E-Mail’s Inner Workings ...... 617 Server Configuration Options ...... 619 Preparing Your System ...... 620 Network Configuration ...... 620 Common Packages ...... 622 Installing and Running sendmail ...... 623 Installing and Running Postfix ...... 626 Testing and Troubleshooting ...... 630 Configuring Mail Clients ...... 631 Configuring Fetchmail ...... 631 Configuring Web-Based Mail ...... 632 Securing Communications with SSL/TLS ...... 632 Summary ...... 634 Chapter 25: Running a Print Server ...... 635 Common UNIX Printing Service (CUPS) ...... 636 Setting Up Printers ...... 637 Using Web-Based CUPS Administration ...... 637 Using the Red Hat Printer Configuration Window ...... 640 Working with CUPS Printing ...... 649 Configuring the CUPS Server (cupsd.conf) ...... 649 Starting the CUPS Server ...... 650 Configuring CUPS Printer Options Manually ...... 651 Using Printing Commands ...... 652 Printing with lpr ...... 652 Listing Status with lpc ...... 653 Removing Print Jobs with lprm ...... 653 Configuring Print Servers ...... 654 Configuring a Shared CUPS Printer ...... 654 Configuring a Shared Samba Printer ...... 656 Summary ...... 658 Chapter 26: Running a File Server ...... 659 Setting Up an NFS File Server ...... 660 Getting NFS ...... 662 Sharing NFS File Systems ...... 662 Using NFS File Systems ...... 667 Unmounting NFS File Systems ...... 672 Other Cool Things to Do with NFS ...... 673 Setting Up a Samba File Server ...... 674 Getting and Installing Samba ...... 675 Configuring Samba with SWAT ...... 676 Working with Samba Files and Commands ...... 685 Using Samba Shared Directories ...... 688 Troubleshooting Your Samba Server ...... 689 Summary ...... 692 04_579495 ftoc.qxd 12/27/04 9:52 PM Page xxvii

Contents xxvii

Part VI: Programming in Linux 693

Chapter 27: Programming Environments and Interfaces ...... 695 Linux Programming Environments ...... 696 The Linux Development Environment ...... 696 Graphical Programming Environments ...... 705 The Command-Line Programming Environment ...... 709 Linux Programming Interfaces ...... 710 Creating Command-Line Interfaces ...... 710 Creating Graphical Interfaces ...... 717 Application Programming Interfaces ...... 718 Summary ...... 722 Chapter 28: Programming Tools and Utilities ...... 723 The Well-Stocked Toolkit ...... 723 Using the GCC Compiler ...... 724 Compiling Multiple Source Code Files ...... 726 GCC Command-Line Options ...... 728 Automating Builds with Make ...... 730 Library Utilities ...... 732 The nm Command ...... 734 The ar Command ...... 735 The ldd Command ...... 735 The ldconfig Command ...... 736 Environment Variables and Configuration Files ...... 736 Source Code Control ...... 737 Source Code Control Using RCS ...... 737 Source Code Control with CVS ...... 740 Debugging with GDB ...... 744 Starting GDB ...... 744 Inspecting Code in the Debugger ...... 747 Examining Data ...... 748 Setting Breakpoints ...... 750 Working with Source Code ...... 751 Summary ...... 752 Appendix A: Media ...... 753

Appendix B: Entering the Linux Community ...... 761

Index ...... 767 04_579495 ftoc.qxd 12/27/04 9:52 PM Page xxviii