Dissecting the Linux+ Exam
The Linux+ exam aims to certify individuals with six months or more of experience with the operating system. While it is broad and comprehensive, it is also neither deep nor extremely challenging. Indeed, those with even a modicum of experience and study should be able to pass this exam.
The exam itself includes 94 multiple-choice questions to be answered in 90 minutes. Candidates must be able to read and respond at a brisk pace to keep up with the material they must process, analyze and answer. Coverage of this exam in the overview article in this StudyGuide has more details about signup, costs and availability. For those outside North America, it may be helpful to know that the exam is available in German and Japanese, as well as in English.
The topics on the Linux+ exam are broken into seven information domains, as follows (each is discussed in more detail in another section; percentages that follow domains indicate allocation of coverage in the total question pool):
- Domain 1.0: Planning the Implementation (4 percent)
- Domain 2.0: Installation (12 percent)
- Domain 3.0: Configuration (15 percent)
- Domain 4.0: Administration (18 percent)
- Domain 5.0: System Maintenance (14 percent)
- Domain 6.0: Troubleshooting (18 percent)
- Domain 7.0: Identify, Install and Maintain System Hardware (19 percent)
Planning the Implementation
Candidates must understand the terminology and concepts related to open-source licensing (as covered at www.gnu.org, for example). It’s key that candidates understand the Linux kernel and its version identification or status, vis-à-vis beta versions, stable versions, pre-patched versions, patched versions and so forth. This also means understanding kernel numbering in terms of major release, minor release and patch identifiers (www.kernel.org has good info on this nomenclature).
Candidates must also understand Linux distributions, which include a kernel as well as other applications. They must also be able to identify which basic open-source software packages offer the widely used Linux services. Presented with requirements or usage scenarios that indicate needs for a firewall or DNS services, they must be ready and able to specify use of related Linux executables such as iptables, ipchains (for firewall) and Bind (for DNS). This means matching requirements with recommended software and uses, identifying system hardware requirements and making sure that Linux supports them and determining what additional software and services to install.
Mechanisms whereby Linux code is packaged into binary files (distributions) must be understood, including tar balls, Red Hat Package Manager (RPM) packages and the Debian Package handling solution (DEB). It’s also necessary to be able to determine if a particular kernel supports a specific software package and to understand the pros and cons of various distributions and their packaging solutions. Equally important is to understand where to go to obtain software and other Linux resources and information.
Licensing is another important topic, where candidates should understand basic license types, plus usage rights and restrictions associated with Linux distributions and other software. These generally fall into one of these categories: open source, GNU Public License (GPL), Berkeley Software Distribution (BSD), freeware, commercial software (closed source) or artistic license.
Those who install one or more versions of Linux onto a PC should be equipped to handle this domain. It’s essential to understand how to perform a network installation of Linux as well, using NFS, FTP or HTTP. Issues related to configuring file systems working with tools like Linux FDISK or Disk Druid, especially as they relate to partitioning drives and assigning file systems, are likewise important. If you understand the names, roles and minimum sizes for partition types—including /boot, SWAP, /(root), /usr, and /var/home—and when and how to use them, you’ll be ready to deal with this part of the exam. You should be able to create and justify various types of partition schemes for E-IDE or SCSI drives and understand the most popular file system formats, including ext2, ext3, Linux Swap and REISER (aka ReiserFS, for “Reiser File System”).
While there’s a long list of applications and services for Linux, the barest minimum you must know and understand include: Apache, Bind, ipchains, KDE, Postfix, Qmail, SAMBA, sendmail, squid and Xwindows or Xfree86. You don’t need to memorize all the details for every configuration file involved, but you should understand how such files are laid out and used and be able to determine if the hardware you’ve got matches the software you’d like to use.
It’s also necessary to understand what activities are required after installation to complete the setup process, including user logons, installing additional software, customizing the user interface and so forth. You’ll also want to be familiar with key log files (and where they reside) so you can check to make sure that applications and daemons run properly.
It’s also important to understand how to select networking configurations and protocols to work with remote or dial-up access and local area networks (plus technologies like Ethernet or Token Ring). Additional post-installation activities include establishing appropriate security settings, setting up users and passwords, working with specific hardware components and drivers and validating system behavior and performance.
This part of the exam tests your knowledge of how system behavior is controlled and modified. You need to understand what tools and utilities are involved in managing specific system capabilities or behaviors and which configuration files they create or edit. Likewise, you should know how to add a printer and specify its characteristics.
Where Internet servers are concerned, basic familiarity with key services and functions is required. You should know the names and locations of key configuration files and how to operate on them to perform typical administrative tasks (such as configuring local aliases using /etc/aliases for sendmail, or managing basic entries in the Apache httpd.conf file like ServerRoot, ServerName or Listen). Mechanisms to force configuration changes to take effect (such as halting, then restarting a service) should be understood, as well as managing basic access privileges using chmod, chown and related utilities.
You must be familiar with Xwindow utilities like Xconfigurator or XF86Setup, and working with environment variables like PATH, DISPLAY and TERM. It also means managing basic network services and settings with netconfig and linuxconf for TCP/IP, DNS, DHCP and so forth, and working with basic server services like X, SMB and NFS, among others. Understanding how to work with printers and add-in hardware like monitors, modems, NICs or scanners is also key. Working with boot loaders like GRUB or LILO to change or reconfigure boot behavior is important, as is understanding key configuration files like BASH, inittab, fstab and various /etc/* files.
This is where basic system administration tasks come to the fore. These include user management, backup creation, mounting and managing file systems and controlling services. It also embraces a good deal of general Linux system knowledge and command-line abilities, communications links, multi-user environment features and so on.
User management means adding or removing users, assigning or managing access privileges, group memberships, passwords and managing groups. It also means working with file permissions, modes and types using the chmod, chown and chgrp commands.
Mounting and managing file systems covers a lot of groun