| About the Author | p. xviii |
| About the Technical Reviewer | p. xix |
| Acknowledgments | p. xx |
| Preface | p. xxi |
| Background | p. 1 |
| The Physiology of Linux | p. 3 |
| The Origins of Linux | p. 3 |
| The Nature of an Operating System | p. 5 |
| Linux and GNU | p. 8 |
| GNU and Linux: The Operating System of Champions | p. 10 |
| The Zen of the Platform | p. 12 |
| The GNU/Linux vs. Linux Debate | p. 13 |
| References | p. 14 |
| An Open Source Primer | p. 15 |
| The Nature of Software | p. 15 |
| Open Source vs. Free Software | p. 17 |
| Open Source Software in Action | p. 18 |
| Licensing Open Source | p. 21 |
| A License to Code | p. 25 |
| Linux Distributions | p. 27 |
| The Nature of a Distribution | p. 29 |
| Taking a Snapshot of the Linux Continuum | p. 29 |
| Understanding the Goals of a Distribution | p. 31 |
| Dissecting a Linux Distribution | p. 32 |
| Enter the Linux Standards Base | p. 51 |
| Summary | p. 51 |
| Red Hat Linux 7.3 | p. 53 |
| Red Hat's Background and Philosophy | p. 53 |
| Linux Kernel | p. 54 |
| Packaging Format | p. 55 |
| Filesystem Layout | p. 69 |
| System Startup Scripts | p. 71 |
| Core System Libraries | p. 85 |
| The X Window System and the Desktop | p. 86 |
| Userspace Applications | p. 89 |
| Red Hat Linux Idiosyncrasies | p. 92 |
| Derivatives of Red Hat Linux | p. 103 |
| Summary | p. 104 |
| Slackware Linux 8.0 | p. 105 |
| Slackware's Background and Philosophy | p. 105 |
| Linux Kernel | p. 106 |
| Packaging Format | p. 107 |
| Filesystem Layout | p. 111 |
| System Startup Scripts | p. 112 |
| Core System Libraries | p. 120 |
| X Window System and Desktop | p. 121 |
| Userspace Applications | p. 122 |
| Slackware Linux Idiosyncrasies | p. 124 |
| Customizing the User Environment | p. 133 |
| Derivatives of Slackware Linux | p. 136 |
| Summary | p. 137 |
| Debian GNU/Linux 3.0 | p. 139 |
| Debian's Background and Philosophy | p. 140 |
| Linux Kernel | p. 141 |
| Debian Packaging | p. 142 |
| System Startup Scripts | p. 157 |
| Core System Libraries | p. 160 |
| The X Window System and the Desktop | p. 161 |
| Userspace Applications | p. 161 |
| Debian GNU/Linux Idiosyncrasies | p. 162 |
| Derivatives of Debian GNU/Linux | p. 168 |
| Summary | p. 169 |
| Installing Software | p. 171 |
| Installing and Configuring Software | p. 173 |
| Getting Started | p. 173 |
| Software Installation in Six Easy Steps | p. 174 |
| Software Installation Tools | p. 186 |
| Summary | p. 193 |
| OpenSSH Secure Shell | p. 195 |
| Installing OpenSSH | p. 196 |
| Configuring OpenSSH | p. 198 |
| Installing OpenSSH on Different Distributions | p. 204 |
| Summary | p. 207 |
| Pluggable Authentication Modules | p. 209 |
| Installing PAM | p. 210 |
| Configuring PAM | p. 211 |
| Summary | p. 220 |
| Dante SOCKS Library | p. 221 |
| Installing Dante | p. 223 |
| Configuring Dante | p. 225 |
| Installing Dante on Different Distributions | p. 231 |
| Summary | p. 232 |
| The Apache HTTP Server | p. 233 |
| Installing Apache | p. 234 |
| Configuring Apache | p. 241 |
| Installing Apache on Different Distributions | p. 250 |
| Summary | p. 254 |
| Concurrent Versions System | p. 255 |
| Installing CVS | p. 257 |
| Configuring CVS | p. 260 |
| Installing CVS on Different Distributions | p. 267 |
| Summary | p. 274 |
| Sun Microsystems' Java Development Kit | p. 275 |
| Installing the J2SDK | p. 276 |
| Configuring the J2SDK | p. 278 |
| Pulling It All Together | p. 284 |
| Installing the J2SDK on Different Distributions | p. 285 |
| Summary | p. 287 |
| Case Studies | p. 289 |
| Building a Desktop System | p. 291 |
| Getting Started | p. 291 |
| Building the System | p. 294 |
| Using Desktop and Productivity Applications | p. 295 |
| Web Browsing | p. 300 |
| Support for Hardware | p. 305 |
| Exploring Media and Entertainment Options | p. 316 |
| Implementing Connectivity and Remote Access | p. 324 |
| Summary | p. 326 |
| A Corporate Software Development Environment | p. 327 |
| Getting Started | p. 327 |
| Building the System | p. 328 |
| Network and Management Tools | p. 330 |
| Development Environment | p. 339 |
| Corporate Interoperation | p. 348 |
| Security Issues | p. 350 |
| Alternate Configurations | p. 352 |
| Summary | p. 354 |
| Building a Network Firewall | p. 355 |
| Getting Started | p. 355 |
| The Elements of a Linux Firewall | p. 359 |
| Building the Firewall | p. 364 |
| What You've Accomplished So Far | p. 397 |
| Monitoring and Maintaining the System | p. 398 |
| Investigating Advanced Security Techniques | p. 406 |
| Summary | p. 411 |
| A Farewell | p. 412 |
| Bibliography | p. 412 |
| Appendix | p. 414 |
| Running with the Ball: Additional Configurations | p. 414 |
| Continuing Education | p. 414 |
| Linux-Kernel List | p. 414 |
| Distribution Mailing Lists | p. 415 |
| Tracking Ongoing Work and Initiatives | p. 415 |
| Pursuing Security | p. 416 |
| Improving the Kernel | p. 416 |
| Stretching and Squeezing the System | p. 417 |
| Summary | p. 417 |
| Index | p. 419 |
| Table of Contents provided by Syndetics. All Rights Reserved. |