You are previewing SUSE™ Linux 10 Unleashed.
O'Reilly logo
SUSE™ Linux 10 Unleashed

Book Description

Master the newest version of SUSE Linux with SUSE Linux 10 Unleashed. This comprehensive guide to SUSE Linux includes a DVD with the full version of SUSE Linux 10.0 and provides you with intermediate and advanced information to guide you through the installation, management and maintenance of your SUSE Linux 10.0 system. You will gain expert insight into the most important topics, including:

  • Configuring with YaST2 and SaX2

  • Launching your desktop

  • Productivity tools

  • Using the Internet and creating websites

  • Secure file transfer

  • Managing users and data

  • Keeping your system current

  • Setting up networks and Samba

  • Managing databases

  • Learn how to make the most of your SUSE Linux 10.0 system with the help of SUSE Linux 10 Unleashed.

    Table of Contents

    1. Copyright
      1. Dedication
    2. About the Author
    3. About the Contributors
    4. Acknowledgments
    5. We Want to Hear from You!
      1. Reader Services
    6. Introduction
      1. Why Use Linux?
      2. Who This Book Is For
      3. What This Book Contains
      4. Conventions Used in This Book
    7. I. Installation and Configuration
      1. 1. Welcome to SUSE Linux
        1. What Is SUSE Linux?
          1. SUSE Linux
          2. OpenSUSE.org
          3. The SUSE Linux Install Program
          4. File Systems in SUSE Linux
          5. 64-Bit SUSE Linux
        2. Getting Help: Documentation and Other Sources
          1. Printed Documentation and the SUSE Help Center
          2. Searching the Help Center
          3. Man and Info Pages
          4. SUSE Online Support
          5. The Linux Documentation Project
          6. The SUSE Mailing Lists
          7. Linux User Groups
        3. References
      2. 2. Preparing to Install SUSE Linux
        1. Planning Your SUSE Linux Installation
        2. System Requirements
          1. Linux on Laptops
          2. SUSE Linux and Legacy Hardware
          3. Avoiding Potential Hardware Problems
          4. Software-Based Modems
          5. Universal Serial Bus Devices
          6. “Peripherals” on the Motherboard
          7. Thinking About Dual Booting, Partitioning, and Other Worries
          8. Dual Booting with Windows
          9. How to Partition Your Drive(s)
        3. References
      3. 3. Installing SUSE Linux
        1. Methods of Installing SUSE Linux
        2. Preparing to Install from a CD-ROM or DVD
        3. Installing SUSE Linux with YaST
          1. Initial Installation Settings
          2. Partitioning
          3. Setting Your Time Zone
          4. Installing Software Packages
          5. Creating the root User
          6. Configuring Network and Internet Connections
          7. Creating a User
          8. Configuring Hardware for the X Window System
        4. Logging In and Shutting Down the First Time
        5. References
      4. 4. Further Configuration with YaST and SaX2
        1. Troubleshooting Installation Problems
        2. Configuring Hardware with YaST
          1. Gathering Information About Your Hardware
          2. Modifying Disk Controller Settings
          3. Configuring a Joystick
          4. Adjusting Your Keyboard Layout
          5. Configuring Your Mouse
          6. Configuring Your Scanner
          7. Configuring Your TV or Radio Card
        3. Setting Date and Time
          1. Using the Network Time Protocol (NTP) to Keep Accurate Time
        4. Power Management
          1. YaST Power Management
        5. Portable PC Issues
          1. Power Management for Laptops
          2. Working with PCMCIA Cards
          3. Configuring Bluetooth Wireless Support
          4. Configuring Infrared Interface (IrDA) Mode
        6. Configuring CD, DVD, and Rewritable Drives
          1. Integrating CD and DVD Drives into Your System
          2. Speeding Up Your CD Drive Through Direct Memory Access (DMA)
        7. References
    8. II. Using SUSE Linux
      1. 5. Getting Started with SUSE Linux
        1. Logging In to SUSE Linux
          1. Logging In from the Shell
          2. Logging Out of the Shell
        2. Working with the Linux File System
        3. Essential File System Commands from the /bin and /sbin Directories
        4. Using the /boot and /dev Directories
        5. Editing Configuration Files in the /etc Directory
        6. Where All the Good Stuff Goes: Your /home Directory
        7. Finding Desktop Programs in /opt
        8. Where Most of the Programs Go: The /usr Directory
        9. Variable Data: The /var Directory
        10. Changing User Information and the Finger Program
        11. Choosing and Using a Shell
          1. Cool Stuff That All Shells Have in Common
          2. Running bash
          3. Running tcsh
          4. Running zsh
          5. Managing Files with Midnight Commander
          6. ksh and ash
          7. Choosing a Shell
        12. Editing Text
          1. Working with vim and Its Clones
          2. Working with Emacs and Its Clones
          3. Some of the Others
        13. Why Can’t I Edit This File? How Permissions Work
          1. Changing Permissions
          2. Directory Permissions
        14. Working as Root
          1. Creating and Deleting Users
          2. Shutting Down and Rebooting the System
        15. References
          1. File System
          2. Shells
          3. Editors
          4. Working as Root
      2. 6. Launching Your Desktop
        1. Understanding the X Window System
          1. Configuring X in SUSE Linux
        2. Choosing a Desktop Environment: KDE and GNOME
          1. KDE: The K Desktop Environment
          2. GNOME: The GNU Network Object Model Environment
        3. Managing Files from Your Desktop
          1. Using Konqueror in KDE
          2. Using Krusader in KDE
          3. Using Nautilus in GNOME
        4. Configuring Your Desktop Environment
          1. KDE Control Center
          2. Customizing GNOME
        5. What Is a Window Manager and Why Would I Want to Use It?
          1. Why Run a Window Manager?
          2. Starting Up with a Window Manager
          3. Running fvwm
          4. Running WindowMaker
          5. Running IceWM
        6. References
      3. 7. Printing with SUSE Linux
        1. Printing: An Overview
        2. Common Unix Printing System (CUPS)
        3. Configuring Printers with YaST
        4. Configuring CUPS and Network Printers with KDEPrint
        5. Printing with CUPS
        6. Working with the Portable Document Format (PDF)
        7. Console Print Control
          1. Using Basic Print Commands
        8. Avoiding Printing Problems
          1. Multifunction (Print/Fax/Scanner) Devices
          2. USB and Older Inkjet Printers
        9. References
      4. 8. Shaking Hands with Your Shell
        1. The Power of the Command Line
          1. Pattern-Matching in the Shell
          2. Redirecting Input and Output
          3. Piping Data
          4. Background Processing
        2. Writing a Shell Script: The Basics
        3. Scripting in bash
        4. Variables in Shell Scripts
          1. Assigning Values to Variables
          2. Accessing Variable Values
        5. Positional Parameters
          1. Using Positional Parameters to Get Command-Line Variables
          2. Automating Tasks with Scripts
        6. Built-In Variables
        7. References
      5. 9. Being Productive: Office Suites and Other Tools
        1. Comparing Linux Office Suites
          1. Running OpenOffice.org
            1. What Is OpenOffice.org?
            2. Installing OpenOffice.org
            3. Starting OpenOffice.org
            4. Configuring OpenOffice.org
            5. Using OpenOffice.org
          2. Running KOffice
            1. What’s in KOffice?
            2. Installing and Configuring KOffice
            3. Using KOffice
          3. Running GNOME Office
            1. What’s in GNOME Office?
            2. Installing and Configuring GNOME Office
            3. Using GNOME Office
          4. Running Softmaker Office
          5. Other Commercial Suites
        2. PDA Connectivity
          1. Command-Line PDA Software for SUSE Linux
            1. Connecting with Your PDA in KDE and GNOME
          2. Managing Your Finances
        3. More Tools to Make You Productive
          1. Desktop Publishing with Scribus
          2. Diagramming and Flowcharting with Dia
          3. Mindmapping with VYM
          4. Fax and Scanner Applications
            1. Scanner Applications
            2. Fax Client Software
        4. References
      6. 10. Sights, Sounds, and Other Fun Things
        1. Starting Out: Configuring Your Sound and Video Cards
          1. Configuring Sound Cards in YaST
        2. Playing Music and Listening to the Radio
          1. Sound Formats
          2. Internet Radio and Other Streaming Media
        3. Making Your Own Music
        4. Burning CDs and DVDs
          1. Creating CDs and DVDs from Your Desktop
            1. Burning CDs with Nautilus in GNOME
          2. Creating a CD from the Shell
          3. Creating DVDs from the Shell
            1. Session Writing
            2. Packet Writing
        5. TV and Video: Xine and Mplayer
          1. TV and Video Hardware
            1. Building Your Own Personal Video Recorder
              1. Hardware Requirements
              2. Setting Up Your PVR
        6. Linux and Your Digital Camera
          1. Webcams
        7. Editing Images with The GIMP
          1. Graphics Formats
        8. Gaming on Linux
          1. KDE Games
          2. GNOME Games
          3. Freeciv: A Free Strategy Game
        9. References
      7. 11. Going Cross-Platform
        1. Viewing Files from the Windows Side of Your Computer
        2. Emulating Other Operating Systems in Linux: An Overview
          1. A Few Misconceptions About Cross-Platform Tools
        3. Using Wine to Run Windows Applications
          1. Installing and Configuring Wine
          2. Installing Windows Applications Under Wine
          3. Running Wine
          4. Crossover Office
        4. Running Windows Applications with Win4Lin
          1. Installing Win4Lin
          2. Running Win4Lin
        5. Running Windows Applications with VMware
          1. Installing VMware
          2. Running VMware
        6. Emulating a Mac with Basilisk II
        7. Using dosemu and DOSBox
        8. Xen: The Future of Virtualization?
        9. References
    9. III. Using the Internet
      1. 12. Connecting to the Internet
        1. Basic Connectivity Information
        2. Starting with a localhost Interface
          1. Configuring localhost Manually
        3. Configuring Your Dial-up Internet Connection
          1. Using YaST to Set Up Your Dial-up Connection
        4. Configuring a Digital Subscriber Line (DSL) Connection
          1. Using YaST to Set Up Your DSL Connection
        5. Connecting Your Computer to a Wireless Network
          1. Getting Firmware and Drivers in Place
          2. Finding an Access Point
          3. Configuring Your Wireless Card
        6. When to Call Your Internet Service Provider
        7. References
      2. 13. Using the Internet: Browsing the Web and Writing Email
        1. Choosing a Web Browser
          1. Mozilla and Mozilla Firefox
          2. Konqueror
          3. Epiphany
          4. Galeon
          5. Opera
        2. Setting Up Your SUSE Linux Email Account
        3. Choosing a Mail Client (Mail User Agent)
          1. Evolution
            1. Organizing Your Life with Evolution Calendar
          2. KDE Personal Information Manager: Kmail/KOrganizer and Kontact
            1. KOrganizer
          3. Mozilla Mail and Thunderbird
          4. Sylpheed
          5. mutt
        4. Sending File Attachments
          1. BinHex
          2. yEnc
          3. UUEncode/UUDecode
          4. MIME/Base64
          5. Using UUDeview to Decode a File Attachment
        5. References
      3. 14. Creating Basic Websites
        1. Choosing a Web Development Tool
          1. For the Beginner
          2. Browser-Based Page Creators
          3. Specialized Web Tools
          4. Übergeek Web Page Tools
        2. Practice: Building a Site with Quanta Plus
          1. Planning Your Site
          2. Building the Site
        3. Weblogging with SUSE Linux
          1. Blogging with Blosxom
          2. Movable Type and Typepad
          3. Blogging with WordPress
          4. Popular Blog Services
            1. Blogger (www.blogger.com)
            2. LiveJournal (www.livejournal.com)
            3. Typepad
          5. Syndicating Your Blog
            1. Reading News and Blogs with Aggregators
        4. References
      4. 15. Managing Email Servers
        1. How Email Works
        2. MTA Configuration
          1. Masquerading
          2. Authentication
          3. Remote SMTP Connections
          4. Incoming Mail Protocols
          5. Delivery Mode
          6. Aliases
          7. Virtual Domains
        3. Fighting Spam and Viruses
          1. Antispam Tools
          2. Client-Side Spam Filters
          3. Procmail
          4. Antivirus Tools
        4. Alternatives to Postfix
          1. Microsoft Exchange Server
          2. CommuniGate Pro
          3. Novell GroupWise
          4. Samsung Connect
          5. OPEN-XCHANGE
          6. Kolab/Kroupware
          7. OpenGroupware (Ogo)
          8. phpGroupWare
          9. Hula
          10. Conclusion
        5. References
      5. 16. Collaborating with Others
        1. Usenet News Today
        2. Choosing a Usenet Newsreader
          1. Mail/News Clients
          2. Standalone GUI Newsreaders
            1. Pan
            2. KNode
          3. Text-Based Newsreaders
        3. Collaborating with Wikis
          1. ZWiki
        4. Hosting Electronic Mailing Lists
          1. Installing Mailman
          2. Running a Mailman List
        5. Working with Instant Messengers and Internet Relay Chat
          1. Internet Relay Chat (IRC)
          2. Linux Instant Messaging
        6. Linux Videoconferencing
        7. References
      6. 17. Secure File Transfer
        1. Choosing a File Transfer Protocol (FTP) Client
          1. Text-Based FTP Clients
            1. Common FTP Commands
            2. Starting and Stopping
            3. File Types
            4. Actions
            5. Using lftp Instead of Plain ftp
          2. Using sftp for Secure File Transfers
          3. GUI FTP Clients
            1. Using gFTP
            2. Using KBear
        2. Peer-to-Peer File Transfer
          1. Napster-Style File Sharing
            1. KMLDonkey
            2. GTK-Gnutella
          2. Wrangling the BitTorrent
            1. Azureus, the Java BitTorrent Client
        3. Building an FTP Server
        4. Configuring xinetd for Secure File Transfer
        5. Configuring Secure File Transfer Servers
        6. References
    10. IV. Basic System Administration
      1. 18. Managing Files, Volumes, and Drives
        1. Choosing a File System
          1. Understanding the Physical Structure of a Disk
          2. Working with ReiserFS
          3. The Extended File System (ext2, ext3)
          4. JFS and XFS
          5. Choosing a File System
        2. Creating and Managing File Systems with Expert Partitioner
          1. Using Expert Partitioner
            1. Creating a New Partition
            2. Editing a Partition
            3. Deleting a Partition
            4. Resizing a Partition
            5. Encrypting a Partition or Files
            6. Expert Functions
        3. Mounting a File System
          1. The mount Command
          2. The umount Command
          3. Using /etc/fstab to Automatically Mount File Systems
        4. Logical Volume Management (LVM)
        5. Finding Files
          1. Using find
          2. Using locate
          3. Using which
          4. Using whereis
          5. Using kfind
          6. Using Beagle
        6. File System Manipulation
          1. Creating a File System for Testing
            1. Step 1—Make a Blank Image File
            2. Step 2—Make a File System
            3. Step 3—Mount the Test File System
          2. Mounting a Read-Only Partition on a Running System
          3. Examining a Floppy Image File
        7. Managing Files for Character Devices, Block Devices, and Special Devices
        8. References
      2. 19. Managing Users, Managing Security
        1. User Accounts and Permissions
          1. Setting Up User Accounts in YaST
          2. System Users
          3. RWX: Understanding Permissions
        2. Who Needs What? Managing Groups
          1. Adding Groups
        3. Passwords: The First Line of Security
          1. The passwd and shadow Files
          2. Selecting Passwords
          3. User Authentication Settings with Pluggable Authentication Modules (PAM)
        4. Monitoring User Activity
          1. Shell Tools for Watching Users
        5. Letting Mortals Play at Wizardry: SuperUsers
          1. Changing User Identity with su
          2. Using sudo to Grant Root Privileges
        6. References
      3. 20. Managing Data: Backup, Restoring, and Recovery
        1. Preparing for Preventing Data Loss
          1. How to Lose Data
          2. Assessing Your Needs and Resources
          3. Choosing a Backup Strategy
            1. Simple Strategy
            2. Full Backup Periodically
            3. Full Backups with Increments
        2. Choosing Your Backup Medium
          1. Mirrors and RAID Arrays
          2. Removable Storage Media
            1. Zip Drives
            2. USB “Keychain” Drives and Solid-State Portable Drives
            3. FireWire Drives
            4. CD-RW and Recordable DVD
          3. Network Storage
          4. Tape Drive Backup
        3. Using YaST System Backup
        4. Backup Software
          1. Backups with tar
          2. Using Ark
          3. Using GNOME File Roller
        5. Setting Up Mirror Disks and RAID Arrays
        6. Rescuing a Broken System
          1. Booting from the SUSE Linux CD
          2. Booting from a Rescue Disk Set
          3. Using System Restore
        7. References
      4. 21. Keeping Your System Current: Package Management
        1. Installing Software with YaST
        2. The Basics of the Red Hat Package Management System (RPM)
          1. Downloading RPM Packages Outside of YaST
        3. Updating Your System with YaST Online Update (YOU)
          1. Running YOU
          2. Using SUSEwatcher to Monitor YOU Servers
            1. Automating YOU Updates
        4. Updating Your System with apt
        5. Updating Your System with Red Carpet
          1. Installing Red Carpet
          2. Running Red Carpet from the Command Line (rug)
          3. Updating with the Red Carpet GUI
        6. Compiling Software from Source
        7. References
    11. V. Advanced System Administration
      1. 22. Managing the Boot Process and Other Services
        1. Understanding the Boot Process
          1. Starting to Boot: BIOS to Boot Manager
          2. Choosing a Boot Manager: GRUB Versus LILO
          3. Loading the Kernel
        2. System Services and Runlevels
        3. Controlling Services at Boot with the YaST Runlevel Editor
          1. Using the Runlevel Editor
          2. Expert Mode
        4. Manually Starting and Stopping Services
        5. System Monitoring Tools
          1. KSysGuard
          2. KDiskFree and KwikDisk
          3. GKrellM
        6. References
      2. 23. Securing Your Machines
        1. Understanding Computer Attacks
        2. Assessing Your Vulnerability
        3. Protecting Your Machine
          1. Securing a Wireless Network
          2. Another Word on Passwords and Physical Security
        4. Configuring the SUSE Firewall
        5. Other Security Utilities to Consider
        6. What to Do if You’ve Been Hacked
        7. Keeping Up to Date on Linux Security Issues
        8. References
      3. 24. Kernel and Module Management
        1. Linus’s Baby: The Linux Kernel
          1. The Linux Source Tree
          2. Types of Kernels
        2. Managing Modules
        3. When to Recompile
        4. Kernel Versions
        5. Getting New Kernel Sources
        6. Patching the Kernel
        7. Compiling the Kernel
        8. Troubleshooting Problems
          1. Errors During Compile
          2. Runtime Errors, Bootloader Problems, and Kernel Oops
        9. Kernel Tuning with sysctl
        10. References
      4. 25. Setting Up Networks and Samba
        1. Networking with TCP/IP
          1. TCP/IP Addressing
          2. The Next Step: Internet Protocol, Version 6 (IPv6) Addressing
          3. Ports
        2. Network Organization
          1. Subnetting
          2. Netmasks
          3. Network Address Translation (NAT)
        3. Hardware Devices in Networking
          1. Network Interface Cards (NICs)
            1. Token Ring
            2. 10BaseT Ethernet
            3. 100BaseT Ethernet
            4. Fiber Optic and Gigabit Ethernet
            5. Wireless NICs
          2. Network Cable
          3. Hubs
          4. Routers and Bridges
          5. Initializing New Network Hardware
        4. Dynamic Host Configuration Protocol (DHCP)
          1. How DHCP Works
          2. DHCP Software Installation and Configuration
          3. Setting Up a DHCP Server
        5. Using the Network File System
          1. Starting and Configuring the NFS Server
          2. Importing Directories with the NFS Client
        6. Playing Nice with Microsoft Windows with Samba
        7. Securing Network Services
        8. References
      5. 26. Managing Your Apache Web Server
        1. What Is Apache?
        2. Installing Apache
          1. Building Apache from the Source Code
        3. Starting and Stopping Apache
        4. Runtime Server Configuration Settings
          1. Additional Settings in httpd.conf
        5. File System Authentication and Access Control
          1. Restricting Access with allow and deny
          2. Authentication
        6. Apache Modules
        7. Virtual Hosting
          1. Name-Based Virtual Hosting
          2. IP-Address–Based Virtual Hosting
        8. Dynamic Content
          1. CGI Programs
          2. Server-Side Includes
          3. Active Content Modules
        9. Other Web Servers
          1. thttpd
          2. Caudium WebServer
          3. Xitami
          4. Zope
          5. ColdFusion
          6. TomCat
        10. References
      6. 27. Managing Domain Names
        1. Essential DNS Concepts
        2. DNS Hierarchy
          1. Zones
          2. Records
        3. Configuring DNS with YaST2
        4. Hosts File
        5. Basic DNS Tools
        6. Configuring Name Servers with BIND
        7. Logging
        8. Summary
        9. References
    12. VI. Programming
      1. 28. Using the GNU Compiler Collection and Other Programming Tools
        1. Basic Programming in C Under Linux
          1. A Simple C Program
        2. Using the GNU Compiler Collection
        3. Building Java Applications with Eclipse
          1. Using the Eclipse Workbench
          2. Creating a Small Java Application in Eclipse
        4. Using the KDevelop Integrated Development Environment
        5. Using Anjuta to Create GNOME Applications
        6. Managing Collective Software Development with CVS and Subversion
        7. Creating RPM Packages
          1. Making a Spec File
          2. Listing Files and Generating Patches
          3. Building and Testing Your RPM Package
        8. Other Linux Programming Resources
        9. References
      2. 29. Managing Databases
        1. What Is a Relational Database?
        2. Implementing MySQL
          1. Installing MySQL
          2. Completing MySQL Initial Configuration Tasks
            1. Initializing the Grant Tables
            2. Starting the MySQL Server
            3. Securing the MySQL User Accounts
          3. Using the MySQL Control Center
        3. Connecting to a MySQL Database with a Database Client
          1. Using the MySQL Monitor Database Client
        4. Optimizing MySQL
          1. Measuring Key Buffer Usage
          2. Using the Query Cache
          3. Miscellaneous Tweaks
          4. Query Optimization
        5. Summary
        6. References
      3. 30. Using Perl and Python
        1. What Is Perl?
        2. Perl Variables and Data Structures
        3. Operators and Other Statements
        4. Regular Expressions
        5. Perl Modules and CPAN
        6. The Future of Perl
        7. What Is Python?
        8. Python Variables and Data Structures
        9. Indentation
        10. Extreme Object Orientation
        11. Python IDEs and the Interactive Shell
        12. References
      4. 31. Creating Dynamic Websites
        1. Using PHP
          1. Installing PHP
          2. Writing PHP Scripts
          3. Adding More Functions to PHP
          4. The Future with PHP 5
        2. Setting Up an Interactive Site with WordPress
          1. Installing WordPress
          2. Overseeing Users’ Access to WordPress
        3. Setting Up a Web-Based Community Forum
          1. Installing phpBB
          2. Configuring phpBB and Creating Forums
        4. References
      5. 32. Performance Tuning
        1. Optimizing Services
        2. Using PowerTweak
        3. Tuning Hard Disk Drives
          1. Choosing the Best Hardware
          2. Tuning Hard Drive Parameters at Boot
          3. The hdparm Command
          4. Disabling File Access Time
          5. Spreading Out the Load
        4. References
      6. 33. Command-Line Master Class
        1. Some Basic Commands
          1. Displaying the Contents of a File with cat
          2. Making and Changing Directories with mkdir and cd
          3. Changing File Access Permissions with chmod
          4. Copying, Moving, and Renaming Files with cp and mv
          5. Displaying Disk Usage with du
          6. Searching for Strings with grep
          7. Finding Files from an Index with locate
          8. Listing Files in the Current Directory with ls
          9. Reading Man Pages with man
          10. Listing Processes with ps
          11. Deleting Files and Directories with rm
          12. Displaying the Last Lines of a File with tail
          13. Displaying Resource Usage with top
          14. Displaying the Location of a Command with which
        2. Combining Commands Together
        3. References
    13. VII. Appendices
      1. A. Versions of Novell’s SUSE Linux
        1. SUSE Linux 10
          1. Version 10.0
        2. SUSE Linux Enterprise Server (SLES)
        3. Novell Linux Desktop (NLD)
        4. Open Enterprise Server (OES)
      2. B. SUSE and Linux Internet Resources
        1. Novell SUSE Linux Reference
        2. Mailing Lists
        3. Unix General Reference
        4. General Linux Resources
        5. Linux News Reference
        6. Linux Search Reference
        7. General Web Link Reference
          1. SUSE and Linux Internet Resources
          2. Installation, Disk Tools, and General Systems Administration
        8. Linux Networking and Security Reference
        9. LAMP and Other Programming References
        10. Worldwide Linux Newsgroups
      3. What’s on the DVD
        1. Amusements
        2. Development
          1. Languages
          2. Tools
        3. Documentation
        4. Hardware
        5. Productivity
          1. Archiving
          2. Databases
          3. Editors
          4. File Utilities
          5. Graphics
          6. Multimedia
          7. Networking