Cover image for Running Linux, Third Edition

Book description

Once a little-known productivity boost for personal computers, Linux is now becoming a central part of computing environments everywhere. This operating system now serves as corporate hubs, Web servers, academic research platforms, and program development systems. All along it's also managed to keep its original role as an enjoyable environment for personal computing, learning system administration and programming skills, and all-around hacking. This book, now in its third edition, has been widely recognized for years in the Linux community as the getting-started book people need. It goes into depth about configuration issues that often trip up users but are glossed over by other books. A complete, UNIX-compatible operating system developed by volunteers on the Internet, Linux is distributed freely in electronic form and at a low cost from many vendors. Developed first on the PC, it has been ported to many other architectures and can now support such heavy-duty features as multiprocessing, RAID, and clustering. Software packages on Linux include the Samba file server and Apache Web server; the X Window System (X11R6); TCP/IP networking (including PPP, SSH, and NFS support); popular software tools such as Emacs and TeX; a complete software development environment including C, C++, Java, Perl, Tcl/Tk, and Python; libraries, debuggers, multimedia support, scientific and database applications, and much more. Commercial applications that run on Linux range from end-user tools like word processors and spreadsheets to mission-critical software like the Oracle, Sybase, Informix, and IBM DB/2 database management systems. Running Linux has all the information you need to understand, install, and start using the Linux operating system. This includes a comprehensive installation tutorial, complete information on system maintenance, tools for document development and programming, and guidelines for network, file, printer, and Web site administration. New topics in the third edition include:

  • KDE, a desktop that brings the friendliness and ease-of-use of Windows or the Macintosh to Linux

  • Samba, which turns Linux into an office hub that serves files and printers to Microsoft systems

  • PPP, the most popular software for logging into remote systems over phone lines

  • Revised instructions for installation and configuration, particularly covering the Red Hat, SuSE and Debian distributions

Table of Contents

  1. Running Linux, 3rd Edition
    1. Preface
      1. Why People Like Linux
      2. Organization of This Book
      3. Conventions Used in This Book
      4. How to Contact Us
      5. Acknowledgments
    2. 1. Introduction to Linux
      1. About This Book
      2. A Brief History of Linux
      3. Who’s Using Linux?
      4. System Features
        1. A Note on Linux Version Numbers
        2. A Bag of Features
        3. Kernel
      5. Software Features
        1. Basic Commands and Utilities
        2. Text Processing and Word Processing
        3. Commercial Applications
        4. Programming Languages and Utilities
        5. The X Window System
        6. KDE and GNOME
        7. Networking
        8. Telecommunications and BBS Software
        9. Interfacing with Windows and MS-DOS
        10. Other Applications
      6. About Linux’s Copyright
      7. Open Source and the Philosophy of Linux
        1. Hints for Unix Novices
        2. Hints for Unix Gurus
      8. Differences Between Linux and Other Operating Systems
        1. Why Use Linux?
        2. Linux Versus Windows 95 and 98
        3. Linux Versus Windows NT
        4. Other Implementations of Unix
      9. Hardware Requirements
        1. Motherboard and CPU Requirements
        2. Memory Requirements
        3. Hard Drive Controller Requirements
        4. Hard Drive Space Requirements
        5. Monitor and Video Adapter Requirements
        6. Miscellaneous Hardware
          1. Mice and other pointing devices
          2. CD -ROM and DVD-ROM storage
          3. Tape drives and removable storage
          4. Printers
          5. Modems
        7. Ethernet, Fast Ethernet, and Gigabit Ethernet Cards
      10. Sources of Linux Information
        1. Online Documents
        2. Books and Other Published Works
        3. Usenet Newsgroups
        4. Internet Mailing Lists
      11. Getting Help
    3. 2. Preparing to Install Linux
      1. Distributions of Linux
        1. Getting Linux via Mail Order or Other Hard Media
        2. Getting Linux from the Internet
        3. Getting Linux from Other Online Sources
      2. Preparing to Install Linux
        1. Installation Overview
        2. Repartitioning Concepts
        3. Linux Partition Requirements
        4. Repartitioning Your Drives
    4. 3. Installation and Initial Configuration
      1. Installing the Linux Software
        1. Booting Linux
        2. Drives and Partitions Under Linux
        3. Creating Linux Partitions
        4. Creating Swap Space
        5. Creating the Filesystems
        6. Installing the Software
        7. Creating the Boot Floppy or Installing LILO
        8. Additional Installation Procedures
      2. Post-Installation Procedures
        1. Creating a User Account
        2. Getting Online Help
        3. Editing /etc/fstab
        4. Shutting Down the System
      3. Running Into Trouble
        1. Problems with Booting the Installation Media
        2. Hardware Problems
          1. Isolating hardware problems
          2. Problems recognizing hard drive or controller
          3. Problems with SCSI controllers and devices
        3. Problems Installing the Software
        4. Problems After Installing Linux
          1. Problems booting Linux from floppy
          2. Problems booting Linux from the hard drive
          3. Problems logging in
          4. Problems using the system
    5. 4. Basic Unix Commands and Concepts
      1. Logging In
      2. Setting a Password
      3. Virtual Consoles
      4. Popular Commands
        1. Directories
        2. Listing Files
        3. Viewing Files, More or Less
        4. Symbolic Links
      5. Shells
      6. Useful Keys and How to Get Them to Work
      7. Typing Shortcuts
        1. Word Completion
        2. Moving Around Among Commands
      8. Filename Expansion
      9. Saving Your Output
      10. What Is a Command?
      11. Putting a Command in the Background
      12. Manual Pages
      13. File Ownership and Permissions
        1. What Permissions Mean
        2. Owners and Groups
      14. Changing the Owner, Group, and Permissions
      15. Startup Files
      16. Important Directories
      17. Programs That Serve You
      18. Processes
    6. 5. Essential System Management
      1. Running the System
      2. Booting the System
        1. Using a Boot Floppy
        2. Using LILO
          1. The /etc/lilo.conf file
          2. Using LILO as a secondary boot loader
          3. Specifying boot time options
          4. Removing LILO
      3. System Startup and Initialization
        1. Kernel Boot Messages
        2. init, inittab, and rc files
        3. rc files
      4. Single-User Mode
      5. Shutting Down the System
      6. The /proc filesystem
      7. Managing User Accounts
        1. The passwd File
        2. Shadow Passwords
        3. PAM and Other Authentication Methods
        4. The Group File
        5. Creating Accounts
        6. Deleting and Disabling Accounts
        7. Modifying User Accounts
    7. 6. Managing Filesystems, Swap, and Devices
      1. Managing Filesystems
        1. Filesystem Types
        2. Mounting Filesystems
        3. Automounting Devices
        4. Creating Filesystems
        5. Checking and Repairing Filesystems
      2. Managing Swap Space
        1. Creating Swap Space
        2. Enabling the Swap Space
        3. Disabling Swap Space
      3. Device Files
    8. 7. Upgrading Software and the Kernel
      1. Archive and Compression Utilities
        1. Using gzip and bzip2
        2. Using tar
        3. Using tar with gzip
        4. tar Tricks
      2. Upgrading Software
        1. Upgrading Libraries
        2. Upgrading the Compiler
        3. Upgrading Other Software
      3. Using RPM
      4. Building a New Kernel
        1. Obtaining Kernel Sources
          1. Unpacking the sources
          2. Applying patches
        2. Building the Kernel
      5. Loadable Device Drivers
      6. Loading Modules Automatically
    9. 8. Other Administrative Tasks
      1. Making Backups
        1. Simple Backups
          1. Backing up to tape
          2. Backing up to floppy
          3. To gzip, or not to gzip?
        2. Incremental Backups
      2. Scheduling Jobs Using cron
      3. Managing System Logs
      4. Managing Print Services
        1. Checking Printer Hardware
        2. Gathering Resources
        3. Choosing Printer Software
        4. Checking Print Utilities
        5. Setting Up the Printcap File
          1. Printcap file format rules
          2. Printer names
          3. The rest of the printcap variables
        6. Configuring Ghostscript
        7. Print Filters
        8. The nenscript Filter
        9. Magic Filters: APSfilter and Alternatives
        10. BSD Print System Elements: Files, Directories, and Utilities
          1. Setting up printer directories
          2. File, directory, and utility privileges
        11. Exercising the Printer Daemon
        12. Controlling Printer Services with lpc
        13. Printer Optimization
        14. Printer System Troubleshooting
      5. Setting Terminal Attributes
      6. What to Do in an Emergency
        1. Repairing Filesystems
        2. Accessing Damaged Files
        3. Restoring Files from Backup
    10. 9. Editors, Text Tools, Graphics, and Printing
      1. Editing Files Using vi
        1. Starting vi
        2. Inserting Text and Moving Around
        3. Deleting Text and Undoing Changes
        4. Changing Text
        5. Moving Commands
        6. Saving Files and Quitting vi
        7. Editing Another File
        8. Including Other Files
        9. Running Shell Commands
        10. Global Searching and Replacing
        11. Moving Text, and Using Registers
        12. Extending vi
      2. The Emacs Editor
        1. Firing It Up
        2. Simple Editing Commands
        3. Tutorial and Online Help
        4. Deleting, Copying, and Moving Text
        5. Searching and Replacing
        6. Macros
        7. Running Commands and Programming Within Emacs
        8. Tailoring Emacs
      3. Text and Document Processing
        1. TeX and LaTeX
          1. Learning the ropes
          2. Formatting and printing
          3. Further reading
        2. groff
          1. Writing a manual page
          2. Formatting and installing the manual page
        3. Texinfo
          1. Writing the Texinfo source
          2. Formatting Texinfo
        4. Word Processors
      4. Graphics
        1. ImageMagick
        2. The GIMP
        3. POVRAY
      5. Printing
        1. What Happens to a File After It’s Put on the Queue
        2. nenscript
    11. 10. Installing the X Window System
      1. X Concepts
      2. Hardware Requirements
      3. Installing XFree86
      4. Configuring XFree86
      5. Filling in Video Card Information
      6. Running XFree86
      7. Running Into Trouble
    12. 11. Customizing Your X Environment
      1. Basics of X Customization
        1. xinit
        2. The X Resource Database
      2. The fvwm Window Manager
        1. Configuring fvwm
        2. More Customizations
      3. The K Desktop Environment
        1. Installing KDE
        2. Using KDE
      4. X Applications
        1. xterm: Your Home Base
        2. Starting up xterm
        3. Cutting and Pasting Selections
        4. Scrolling
        5. Choosing Fonts
        6. Clocks
        7. Emacs
        8. Ghostview: Displaying PostScript
        9. xman: A Point-and-Click Interface to Manual Pages
    13. 12. Windows Compatibility and Samba
      1. Sharing Files
        1. Mounting DOS, VFAT, and NTFS Partitions
        2. Using Samba to Mount Directories from Windows Systems on Your Network
        3. Using Samba to Serve SMB Shares
          1. Installing Samba
          2. Configuring Samba
          3. Starting Samba
        4. Utilities for Accessing DOS Filesystems: MTools
        5. File Translation Utilities
      2. Sharing Programs
        1. DOS Emulators: Dosemu and xdos
        2. Getting Dosemu and xdos
        3. Installing and Configuring Dosemu
        4. Windows Emulation: Wine
    14. 13. Programming Languages
      1. Programming with gcc
        1. Quick Overview
        2. gcc Features
        3. Basic gcc Usage
        4. Using Multiple Source Files
        5. Optimizing
        6. Enabling Debugging Code
        7. More Fun with Libraries
          1. Creating shared libraries
        8. Using C++
      2. Makefiles
        1. What make Does
        2. Some Syntax Rules
        3. Macros
        4. Suffix Rules and Pattern Rules
        5. Multiple Commands
        6. Including Other Makefiles
        7. Autoconf and Automake
      3. Shell Programming
      4. Using Perl
        1. A Sample Program
        2. More Features
        3. Pros and Cons
      5. Programming in Tcl and Tk
        1. Crash Course in Tcl
        2. Writing Tk Applications
        3. Using Tcl and Tk in Other Applications
      6. Java
        1. The Promise of Java, or Why You Might Want to Use Java
        2. Getting Java for Linux
        3. A Working Example of Java
        4. Executing Java Programs Like Ordinary Programs
      7. Other Languages
    15. 14. Tools for Programmers
      1. Debugging with gdb
        1. Tracing a Program
        2. Examining a Core File
        3. Debugging a Running Program
        4. Changing and Examining Data
        5. Getting Information
        6. Miscellaneous Features
          1. Breakpoints and watchpoints
          2. Instruction-level debugging
          3. Using Emacs with gdb
      2. Programming Tools
        1. Debuggers
        2. Profiling and Performance Tools
        3. Using strace
        4. make and imake
        5. Using Checker
        6. Interface Building Tools
        7. Revision Control Tools—RCS
        8. Revision Control Tools—CVS
          1. Setting up a CVS repository
          2. Working with CVS
          3. CVS over the Internet
        9. Patching Files
        10. Indenting Code
    16. 15. TCP/IP and PPP
      1. Networking with TCP/IP
        1. TCP/IP Concepts
        2. Hardware Requirements
        3. Configuring TCP/IP with Ethernet
          1. Your network configuration
          2. The networking rc files
          3. /etc/hosts
          4. /etc/networks
          5. /etc/host.conf
          6. /etc/resolv.conf
          7. Setting your hostname
          8. Trying out your network
      2. Dial-up PPP
        1. Basic PPP Configuration for Modems
          1. Requirements
          2. Serial device names
          3. Setting up PPP
            1. Writing a chat script
            2. Starting up pppd
            3. Configuring DNS
            4. Troubleshooting PPP Configuration
            5. PAP and CHAP
      3. PPP over ISDN
        1. Configuring Your ISDN Hardware
        2. Setting Up Synchronous PPP
        3. And If It Does Not Work?
        4. Where to Go from Here?
      4. NFS and NIS Configuration
        1. Configuring NFS
        2. Configuring NIS
    17. 16. The World Wide Web and Electronic Mail
      1. The World Wide Web
        1. Using Netscape Navigator
        2. Navigating the Web
        3. Configuring Your Own WWW Server
          1. httpd.conf
          2. srm.conf
          3. access.conf
          4. Starting httpd
        4. Writing HTML Documents
          1. HTML basics
          2. Viewing the document
          3. Using links
          4. An aside: MIME types
          5. Embedded images
          6. More HTML features
          7. Finding out more
        5. Building Interactive Forms
          1. The HTML form document
          2. Writing the CGI script
      2. Electronic Mail
        1. The smail Mail Transport Agent
          1. Getting and installing smail
          2. Configuring a Linux-installed smail package
          3. Configuring smail
          4. smail EDITME file
          5. The mkconfig file
          6. Final smail installation notes
          7. smail runtime configuration files
        2. Getting the Mail to Your Computer with Fetchmail
        3. Other Email Administrative Issues
          1. Registering an address
          2. Mail system maintenance
        4. Installing Elm
          1. Preparing for installation
          2. Installation Procedure
          3. Elm documentation
        5. Using Netscape Messenger
    18. A. Sources of Linux Information
      1. Online Documents
      2. Linux Documentation Project Manuals
      3. Linux News and Information Sites
      4. General Software FTP Sites
      5. Requests For Comments
    19. B. The GNOME Project
      1. What Is GNOME?
        1. The Windowing System Foundation
        2. The Role of GNOME
      2. A Brief History of the GNOME Project
      3. The GNOME Desktop: A User’s Point of View
      4. Some GNOME Applications
      5. GNOME as a Development Platform
        1. The GNOME Foundation Libraries
          1. GTK+ (GIMP toolkit)
          2. Imlib
          3. XML/DOM libraries
          4. The Canvas/Libart engines
          5. The Bonobo component and document model
        2. The Common Object Request Broker Architecture (CORBA)
        3. Programming Tools
        4. The GNOME Printing Architecture
      6. Getting and Installing GNOME
      7. The Future of GNOME
      8. How Can You Help with GNOME?
    20. C. Installing Linux on Digital/Compaq Alpha Systems
      1. Alpha History and Status
      2. The Linux Port
      3. Identifying Your Alpha System
        1. Limitations of ARC Firmware
        2. Limitations of AlphaBIOS Firmware
        3. Limitations of the SRM Console Firmware
        4. Limitations of Milo Miniloader
      4. Collecting System Hardware Information
        1. Sources of Information
          1. AlphaLinux sites
          2. AlphaLinux mailing lists
          3. AlphaLinux FTP sites
        2. CPU, Support Chipset, Board, and System Identification
      5. Preparing for Installation of Linux Alpha
        1. Minimum Hardware
        2. IDE/ATAPI Drive Support
        3. Firmware/BIOS Peripheral Device Support
        4. Updated Firmware
        5. Mice and Serial Ports
      6. Installing Linux
        1. Preparing Software for Installation
        2. Preparing Hardware for Installation
        3. Booting the Alpha System and Preparing to Load Milo
        4. Loading Milo and the Linux Boot Kernel
      7. Tuning and Post-Installation Considerations
        1. Kernel Tuning
        2. Performance and Library Tuning
        3. Binary Emulation
        4. Graphical Browser Considerations
    21. D. LinuxPPC: Installing Linux on PowerPC Computers
      1. Compatible Hardware
        1. Other PowerPC Platforms
        2. Unsupported PowerMacs
        3. Other Hardware Issues
      2. Kernel and Library Issues
      3. Preparing to Boot LinuxPPC
        1. Getting the Mac Ready for Linux
        2. Partitioning the Hard Disk
        3. Installing BootX
      4. Using the Red Hat Installer
      5. Post-Installation: Setting Up the BootX Software
      6. Getting Hardware to Do What You Want It to Do
        1. Single-Button Mice
        2. PowerBook Trackpads
        3. LinuxPPC 4.0 and 4.1 Video Issues
    22. E. Installing Linux/m68k on Motorola 68000-Series Systems
      1. Software Versions
      2. Supported Hardware
      3. Distributions
      4. Installation
        1. Booting Linux
        2. Partitioning and Filesystems
        3. The X Window System
        4. Rebooting the System
      5. Registration
      6. For More Information
    23. F. Installing Linux on Sun SPARC Systems
      1. Supported Hardware
        1. Sun4c Systems
        2. Sun4m Systems
        3. Sun4d Systems
        4. UltraSPARC 64-bit Systems
      2. System Libraries
      3. Installation Differences from Intel
        1. Graphics and X
        2. The SILO Boot Loader
        3. Partitioning Disks
      4. Installation from a Serial Console
      5. SPARC-specific Issues After Installation
      6. Bootable Devices and Consoles
    24. G. LILO Boot Options
      1. Global Options
      2. Image Options
      3. Kernel Options
      4. lilo Command Options
    25. H. Zmodem File Transfer
      1. Getting RZSZ
      2. Sending and Receiving Files
      3. Summary of rz and sz Options
      4. Some Zmodem Usage Notes
      5. Other Interesting Packages
    26. Bibliography
      1. Linux Documentation Project Manuals
      2. Unix and Unix Shells
      3. Applications and Technologies
      4. The Internet
      5. Networks and Communications
      6. Programming Languages and Utilities
      7. System Administration
      8. Personal Computer Hardware
      9. HOWTOs (Partial List)
      10. Internet Requests For Comments
    27. Index
    28. Colophon