Saturday, February 3, 2007

Linux related Glossary

Glossary
access permissions
The operations a person or group can perform on a file or other resource; a security feature also known as access rights. Permissions traditionally can be read, write, or execute.




address book
The software component of JDS's Email and Calendar program that organizes names, addresses, phone numbers, email addresses, and other details associated with the user's personal and business contacts.




application
A software program sometimes distributed separately from the operating system and sometimes included and integrated with the operating system to share the same windowing, control features, and look and feel with other applications and system tools. An application offers a user an interface with controls for manipulating data—in the case of the StarOffice, the control of formatted text, text files, and many other file formats; in the case of Web Browser, the control of access to Web pages on the Internet. A few other examples of applications included with JDS are Email and Calendar, Instant Messenger, GIMP and File Roller. See operating system.




archive
A single file containing multiple files, often compressed. Facilitates transfer of files between computers. Archival formats include TAR, ZIP, and GZ and are usually reflected in the trailing extension (.tar, .zip, .gz, etc.) of the filename.




background process
A program that runs while users do other things. Some processes known as daemons are started in the background and remain there. Other processes run in the background temporarily.




backup
A duplicate of data, which one can use to restore data that has been lost, damaged, or erroneously changed.




bandwidth
The capacity of a communications channel. For example, analog bandwidth is measured in cycles per second, while digital bandwidth is a volume of data that may be sent through a channel, measured in bits per second. Bandwidth impacts transmission speed. A large amount of data flowing through a narrow channel takes longer than the same amount of data flowing through a broader channel.




binary
Code compiled into an executable program, as opposed to source code that is human-readable but usually not executable. Some Linux software is distributed as source code, some as both source and binaries, and some only in binary format.




BIOS
Basic Input Output System. A hardware component that initializes important hardware processes on Intel x86 systems. Linux takes over management of the hardware from the BIOS when the bootloader appears on the screen.




bookmarks
The list you create within your web browser of stored web pages to which you would like to return. Also known as "favorites" in the Windows lexicon.




booting
A sequence of computer operations that extend from powering up the system until the system becomes ready to use.




browser
A program that searches and displays content. Often applied to programs that offer graphical displays of content on the World Wide Web, a browser can also refer to a program that looks for files on a desktop or in directories. In networking terms, a browser can look for hosts or computers in a network and broadcast information on the network about the addresses and names of other computers.




buddy
A person with whom you chat via the Internet using an Instant Messenger program.




buddy list
A list of Instant Messenger account names of friends or colleagues with whom you engage in chat. This list is stored by your Instant Messenger program to make it easy to manage chat sessions and see when colleagues are online and available for chat.




bzip2
See gzip.




calendar
The component of JDS's Email and Calendar program that tracks appointments and tasks.




client
A workstation in a computer network in which central resources are controlled by a different computer that is a server. Also, a program or computer that makes requests of a server on a local area network or over the Internet.




command line
A text-based mode of operating a computer in which a user enters commands at a prompt. Also called a CLI, or command-line interface.




compile
To turn the source code of a program into an executable (binary) program.




console
A terminal or a dedicated window on the screen that offers a character-based interface to the operating system.




contacts
The people and their associated information in the address book component of the JDS Email and Calendar program. See address book.




cursor
The block or vertical-line character that marks the input location on a computer screen. Also, the symbol representing the location of the mouse or other graphical interface device.




daemon
A background process, normally not associated with any real, human user. A daemon usually offers a service such as sending web pages, and sleeps in the background until an event such as the request for a web page triggers it into activity.




desktop
The operating system user interface, typically designed to represent an office desk with objects on it. The operating system desktop uses program and data icons, windows, and taskbars to launch and manage programs and files. GNOME is the name of the desktop interface in JDS.




device driver
The code that serves as an agent between the operating system and a device such as a hard drive, monitor, printer, flash memory, etc. The driver tells the operating system what capabilities the device has and translates system commands into instructions the device understands.




dialog
A window that opens up on the desktop to assist you in performing one of many possible commands or in carrying out functions. Used often in directions such as "Select Format Character from the Main menu, and in the Character dialog, press the OK button."




directories
The equivalent of computer system folders in which users and systems place files, programs, and subdirectories for storage. Linux uses a standard set of directories to store files common to all Linux systems.




DNS
Domain Name Service. A database of Internet names and addresses that translates alphabetic domain names into numeric IP addresses. DNS is almost always consulted by web browsers, mail servers, and other programs that accept domain names such as sun.com.




driver
See device driver




email
Electronic mail.




environment
A collection of options set by the system or the user in a command shell, such as the paths (directories) in which to find programs, the username, the current path, and the appearance of the prompt. Each piece of information is stored in an environment variable. These variables can be assigned by the shell's configuration files.




Ethernet
Popular standard for connecting systems near each other into a network. A LAN architecture developed by Xerox Corporation, DEC, and Intel in 1976. Ethernet uses a star or bus typology. The Ethernet specification serves a standard, which specifies the physical and low-level software levels of a networking stacks.




Evolution
The brand name of JDS's Email and Calendar program.




export
To send data out of an application, typically into a file or a format you designate.




EXT2
The native filesystem used by Linux prior to the 2.4 kernel. It offers high throughput, long filenames, permissions, and error tolerance.




EXT3
A journaling filesystem used by Linux. It has a significant advantage over other journaling filesystems in that users can upgrade from the popular EXT2 filesystem without having to back up and restore data, and can manage EXT3 with EXT2 tools. The journal prevents the filesystem from being corrupted in case of a hardware or system crash. Other journaling filesystems for Linux include JFS, XFS, and ReiserFS.




favorites
See bookmarks.




file content sniffer
Specifies a pattern to search for in a file. A file content sniffer associates the pattern with a MIME type; for instance, a .doc extension refers to a Microsoft Word file. If a match for the pattern is found, the MIME type associated with the pattern helps the system decide which program to invoke to handle the file.




file extension
Also known as a file suffix. The last part of a filename, which follows the last period in the file. Many applications use the file extension to determine what to do with a file. For instance, if you use Nautilus or StarOffice to open a file with the extension .ppt, they treat it as a PowerPoint file and open it with its presentation software, StarImpress.




file format
The data format of a file or document. For example, StarWriter is programmed to interpret MS Word's proprietary file format just as effectively as the XML file format of its own documents. A format is often indicated in a file's extension; a few examples include .doc (Word file), .sxw (StarWriter file), .txt (plain text file), .pdf (PDF file), and .ppt (PowerPoint file).




filesystem
A way of organizing files on the disk or other storage medium. Also refers to the software that tells the operating system how to access and decipher the contents of the medium.




filter
A program that reads data, processes it according to a set of predefined conditions, and outputs the processed data in a different order. Examples include filtering out spam from email or translating PostScript to plain text.




firewall
A system designed to protect a computer network from unauthorized access, especially via the Internet. Also refers to software performing that functions on a general-purpose computer. JDS offers this type of firewalling software, but it is an advanced feature that requires a knowledgeable system administrator to configure. Cable modems and DSL connections, because they are usually "always on" when the computer is powered on, are especially vulnerable to assault from the outside, but anyone who connects to a network is subject to malicious intrusion. A firewall helps prevent this.




free software
Software with source code that is available to everyone. The software is not only universally available for use, but can be altered by anyone for personal use or redistribution. Similar to open source software, though there are subtle differences. While free software is theoretically also free of charge, the difficulty of downloading and building the software gives many organizations an opportunity to perform these tasks for the user and charge a fee for the software. Much of the software discussed in this book is free software.




FTP
File Transfer Protocol. A method for transferring files to and from other computers, often used to access software repositories in order to download programs or documents.




function bar
The StarOffice toolbar that provides icons for the user to perform common file and edit functions in one click, such as file save, file open, export to PDF, print, cut, copy, and paste.




gaim
GNU AOL Instant Messenger, JDS's instant-messaging program.




GIMP
GNU Image Manipulation Program, a popular image editor/paint program for Linux. GIMP is included with JDS.




GNOME
The desktop software that provides the graphical environment on top of Linux for JDS. Everything the user does to open, close, or move windows; manipulate the mouse and use keystrokes within those windows; or navigate the system with Nautilus is handled by GNOME.




GUI
Graphical User Interface. The collection of icons, windows, and other onscreen graphical images that allow the user to interact with the operating system. GNOME is an example of the GUI for JDS. GNOME and Linux together comprise the JDS operating system.




gzip
GNU zip. A file compression program for Linux. Compression compacts files to save storage space and reduce transfer time. A similar utility using a different format is bzip2; its output can be recognized by the .bz2 file extension.




history
A facility of the JDS Web Browser for keeping track of the web pages the user has recently visited. The history feature allows you to retrieve a web page by pulling down the location bar in the browser or typing just a few characters into the bar. You can also manage your browser's "historical memory," or list of previously visited web pages.




home directory
The directory—also known as a folder—into which JDS places a user after he logs on, and where the user generally stores the files on which he works. An example of a home directory would be /home/swhiser.




host name
Name of a machine in JDS, usually the name by which the computer can be reached on the network.




IM
Refers both to a program called Instant Messenger and the activity of instant messaging, or chatting over the Internet using the Instant Messenger program. See also gaim and Instant Messenger.




IMAP
See POP.




incoming mail server
The computer—usually located remotely at your Internet service provider's facility—responsible for fielding and forwarding email addressed to you. You need to enter the name of your incoming mail server into the setup wizard of your JDS Email and Calendar program in order to receive and view your email from within the Email and Calendar program.




Instant Messenger
The name of the program for Internet chat. There are many such programs offered by various Internet providers (America Online, MSN, Yahoo!, and so on). Because these chat networks tend to use different protocols, some instant-messenger client programs support only one of these protocols, while others—including the JDS Instant Messenger, gaim—support almost all of them.




IP
See TCP.




ISP
Internet Service Provider. A company that provides your connection to the Internet, usually for a monthly fee.




Java
The object-oriented programming language developed by Sun Microsystems, intended to be operating system-independent. Java provides a trademarked set of technologies for creating and safely running programs in both standalone and networked environments.




JDS
The Java Desktop System.




kernel
The core of the operating system, on which the other components depend. The kernel manages such tasks as low-level hardware interaction, sharing resources, memory allocation, input/output, security, and user access. It provides and controls the way any other software component can access resources. The kernel runs with a higher privilege than other programs (user-mode programs). The power and robustness of the kernel play a major role in shaping overall system design and reliability.




LAN
Local Area Network. A way to provide communication between computers within a building or across a small campus. Many technologies, such as NFS or Samba file sharing, are intended to be used on a LAN as opposed to the wider Internet. See WAN.




link
A pointer to a file, similar to a shortcut on Windows. Also, a specification in a web page or other source that refers to a document somewhere else. In Linux, a distinction exists between "hard" and "soft" (or "symbolic") links. Hard links, which are more limited and are now rarely used, refer to positions in a single filesystem, while symbolic links point to names of files and can easily cross boundaries between disks and systems.




Linux
The computer operating system that is the foundation for the Java Desktop System. Linux is an open source variant of the Unix operating system that was originally developed by Bell Labs in the early 1970s. "Linux" is a trademark of Linux Torvalds, the lead developer of the Linux kernel.




login
The entering of a computer system by typing one's account name (username or user ID) and password. Also refers to the account name used to gain access to a computer system.




logout
The exiting of a user from the computer system. The Linux system continues to run for other users and processes.




mail server
See incoming mail server and outgoing mail server.




main toolbar
The StarOffice toolbar located along the left edge of an open document window, which provides one-click access to certain common facilities, including spellchecking, inserting objects, inserting tables, find and replace, document layout, and others.




manpages
Traditional documentation for Linux systems, which one can read using the man command and other utilities. For instance, entering man mkdir at the command line reveals documentation for the mkdir command.




MBR
Master Boot Record. Occupies the first physical sector of a hard disk. During system startup, content is loaded from the MBR to main memory and executed by the BIOS. This code then loads the operating system or a bootloader.




MIME
Multipurpose Internet Mail Extension. A standard for representing different types of data, varying as widely as web pages, MP3 music files, and spreadsheets. Originally developed for electronic mail, it is now used on the Web, on local graphical desktops, and elsewhere.




MIME information file
A text file that associates MIME types with filename extensions and filename patterns. MIME information files have a .mime file extension.




MIME keys file
Provides information about a MIME type that is used in the user interface. For example, an icon that applications can display to represent files of that MIME type. MIME keys files have a .keys file extension.




MIME type
Identifies the format of a file. The MIME type enables applications to read the file. For example, an email application can use the image/jpeg MIME type to detect that a JPEG image is attached to an email.




module
Used in the context of the StarOffice office suite, as in "spreadsheet module," this term refers to one of the six software components of the office suite that share a similar menu layout and functionality. The six modules of StarOffice are StarWriter, StarCalc, StarImpress, StarDraw, StarHTML, and StarMath.




mount
To make a filesystem that is stored on a local or remote disk accessible from a directory on your workstation. When a system contains many disks or partitions of disks, each must be mounted. A mount point is the directory where a mounted filesystem appears.




MP3
A compression procedure and format for audio files, which reduces the size by a factor of 10.




multitasking
The ability of an operating system to run more than one program, or task, at a time. A preemptive multitasking operating system, such as Linux, frees up resources when ordered to by the operating system, on a priority basis, so that one application is unable to hog resources when they are needed by another program.




multithreading
Concurrently running programs divided into subcomponents, or threads. Multithreading offers efficient utilization of processors and other system resources. Multithreaded programming requires a multitasking operating system, such as Linux, capable of running many programs concurrently. A word processor can make good use of multithreading, such as printing in the background while spellchecking in the foreground. See also process.




Nautilus
The file manager used by JDS. Nautilus is a window that displays folders and files and lets you move around the system, view information about files, and move or open files.




network
A group of computers and/or associated devices connected by hardware and software communications facilities to share data and peripheral devices, such as printers and modems.




newbie
Someone who has just started to use and learn about a system or community of people (for instance, a "Linux newbie").




NFS
Network File System. A filesystem that allows the sharing of files across a network or (less often) the Internet, making files appear as if they were on local disks. NFS allows different makes of computers running different operating systems to share files and disk storage. See also Samba.




NIS
Network Information Service. Networking software that lets a system administrator control network information and services from a central server called the NIS master.




object bar
The StarOffice toolbar that provides icons for one-click access to common formatting changes, including bold and italic fonts, underline, justification, and other characteristics of text and graphics.




OMF file
Open Source Metadata Framework file. This is a file that is associated with the XML file for a technical manual. The OMF file contains information about the manual that is used by the Help browser. OMF files have a .omf extension.




open source
See free software.




operating system
Performs tasks such as recognizing input from the keyboard, sending output to the display screen, keeping track of files and directories on the disk, and controlling peripheral devices such as disk drives and printers. The operating system is centered on the kernel, but contains other software as well. GNU/Linux, also known as Linux, is the name of the operating system used by JDS.




outgoing mail server
The computer—usually located remotely at a corporate center or Internet service provider's facility—responsible for fielding and forwarding email that a user sends to others. You need to enter the name of your outgoing mail server into the setup wizard of your JDS Email and Calendar program in order to send out email from within the Email and Calendar program.




owner
The user who has access to a file, usually the one who created the file.




PAM
Pluggable Authentication Modules. A replaceable module for system security that allows programs to be written without knowing the authentication scheme deployed. A module can be replaced later without rewriting the programs that require the security provided by the module.




partition
A logically independent section of a hard drive, or a contiguous section that is treated by the operating system as a physical drive. Linux treats partitions as if they were separate physical entities.




path
Denotes the location of a file or directory. The path is an absolute path if it begins with the root directory (that is, starts with a slash) and includes every subdirectory—for example, /home/tadelste/Documents. Otherwise, the path is a relative path—for example, tadelste/Documents. Also, a list of such locations where the computer will look for commands if the full path is not given.




permission
See access permissions.




PIM
A Personal Information Management software program. JDS's Email and Calendar is a PIM, performing many of the same functions as, for example, MS Outlook.




PKI
Public Key Infrastructure. An encryption apparatus for enhancing privacy and authenticating electronic communications such as email. (See also Public key encryption).




POP
An email protocol used to deliver mail from an incoming mail server to end users. Another such protocol is IMAP.




process
An executing program. More precisely, a collection of code, data, and other system resources, including at least one thread of execution, that performs a data-processing task. Processes can consist of multiple threads that share files, memory, and other resources, although threads on Linux are called "lightweight processes," which makes the terminology confusing. Each process executes with a different ID and different access rights.




prompt
A symbol that appears in a terminal to indicate that the computer is ready to receive a command. With Linux, the two most common prompts are the user prompt ($) and the root prompt (#).




protocol
An agreed-upon method of communications used by computers. Usually describes the messages exchanged and the rules one should follow to perform activities on a network, such as transmitting data. Low-level protocols define the physical standards such as bit- and byte-ordering and the transmission and error detection and correction of a bit stream. High-level protocols deal with data formatting, including the syntax of messages, character sets, and sequencing of data.




proxy
An intermediary program that makes requests on behalf of clients. Proxies are often used as trusted agents to access the Internet on the client's behalf through a network firewall, and for handling requests through protocols not implemented by the user agent.




Public key encryption
A particular type of data encryption that requires every participant in a communication chain to have two separate keys: a public key and a private key. When a targeted message is being secured for transmission, data is encrypted with the recipient's public key and can be decrypted only when her private key is applied to the message. To authenticate a message—or prove that the sender is who he claims to be—the sender's private key is first used to sign data, and then the sender's public key is applied by the recipient to the message to guarantee its provenance. See also PKI.




ReiserFS
A general-purpose filesystem designed and implemented by a team led by Hans Reiser. It is currently supported by Linux. With Linux Version 2.4.1, it was the first journaling filesystem to be included in the standard kernel. Now it is a strong alternative to EXT3, and JDS uses ReiserFS automatically for some partitions.




root
The user account with authority to perform all system-level tasks. Also called superuser. A system administrator must become the root user to perform certain functions, such as creating new user accounts, changing passwords, installing most kinds of software, and carrying out other tasks ordinary users are not allowed to perform for security reasons.




RPM
A packaging and installation tool for Internet downloads, included with JDS distributions. The initials originally stood for Red Hat Package Manager. The tool produces files with a .rpm extension. Some RPMs contain prebuilt binaries, while some, known as source RPMs, provide all the source code required to build binaries.




Samba
A set of programs that allows JDS and other Unix or Linux systems to share files and printers with Microsoft Windows systems. Similar to NFS. Named after the protocol used for Windows file and printer sharing, SMB (now enhanced and called CIFS).




screensaver
An application that replaces the image on a screen when the screen is not in use. The screensaver application for the GNOME Desktop is XScreenSaver. A screensaver display shows images of the user on the screen when the screen is not in use.




script
A series of commands in an executable file in human-readable text format. Used to automate the repetitive execution of commands.




server
A computer on a network that is dedicated to a particular purpose and that stores all information and performs the critical functions for that purpose. For example, a web server stores all files related to a web site and performs all work necessary for hosting the web site. The systems that make use of server offerings are called clients.




shell
A series of text prompts offering a command-line interface to the operating system. The shell interprets the commands typed at a terminal and can also run scripts containing commands. By default, JDS offers the shell called bash.




signature
In the context of email, a signature is a text sequence that you set up in the Email and Calendar program and is appended to outgoing email. You can have a signature appended automatically or store multiple signatures and manually select the appropriate one for each outgoing email message.




slash (/)
The symbol used in file pathnames to separate directory and filenames.




SMTP
Simple Mail Transport Protocol. An email protocol used to send mail from end-user computers to mail servers, and exchange it among mail servers.




source code
The human-readable programming statements from which executable programs can be built.




SSH
Secure Shell. Sometimes known as Secure Socket Shell,. this is a Linux command interface and protocol for securely gaining access to a remote computer. It allows you to log in without revealing your password to potential snoopers, and encrypt all data traveling from your computer to another computer using different types of encryption algorithms.




StarCalc
The spreadsheet module of StarOffice. Functionally equivalent to MS Excel.




StarImpress
The presentation module of StarOffice. Functionally equivalent to MS PowerPoint.




StarOffice 7
The office suite included with JDS.




StarWriter
The word-processing program included with StarOffice. Functionally equivalent to MS Word.




superuser
See root.




symbolic link
See link.




tar
Tape Archive. A file-packaging tool included with Linux for combining several files into one for archiving. Tar was originally designed for tape backup and then used with other storage media. When run by itself, it produces files with a .tar extension. When combined with gzip for data compression, the resulting file extension may be .tgz or .tar.gz.




tarball
A file created with the tar utility, containing one or more other archived and possibly compressed files.




TCP
Transmission Control Protocol. Like UDP, a protocol used by some applications over the Internet or local networks using Internet software. Because TCP is the most common protocol used on top of the basic Internet protocol (IP), the whole suite of Internet protocols is sometimes casually referred to as TCP/IP.




terminal
In the past, a physical device with a keyboard and monitor connected to a central computer. The term also describes programs that emulate actual terminals. In JDS, a terminal emulation of that sort exists under System Tools and provides users with a command-line interface.




thread
See multithreading and process.




TrueType fonts
A variety of fonts designed to be printer-independent. Used in JDS systemwide to provide a high-quality look and feel.




UDP
User Datagram Protocol. Like TCP, a protocol used by some applications over the Internet or local networks using Internet software.




URI
Uniform Resource Identifier, or Universal Resource Identifier. A string that identifies a particular location in a filesystem or on the Web. This is a more general term than the more familiar URL.




URL
Uniform Resource Locator, or Universal Resource Locator. A string that identifies a resource on the Web and can be used by a web server and web browser to retrieve content over the Web. A typical URL is http://www.sun.com/software/looking_glass/, which contains the protocol used to retrieve the resource (http://), the domain name of the system hosting the resource (www.sun.com), and a directory or filename that represents the actual resource fetched (software/looking_glass/).




user account
A set of resources for an individual logging in to a system. Generally, each person using a system has a single user account, and a special user account is set aside for the root user. However, people could have multiple accounts. Furthermore, some system services run under their own user accounts, which are never used for anyone to log in.




VESA
Video Electronic Standards Association. The consortium that defines video standards. In JDS, the term VESA appears when monitors are configured. One can choose the VESA standard and enter the horizontal and vertical frequencies as well as color depth when it is necessary to manually configure a specific monitor.




vfolder
A virtual representation of items that reside in a physical location or locations on your system. For example, a vfolder might represent the contents of several directories. In terms of menus, a vfolder is a representation in a menu of items that might be physically located in several directories.




WAN
Wide Area Network. In contrast to LAN (local area network), a WAN is a dedicated company, school, or agency network that's distributed among offices or buildings that are located many miles apart, even across countries or continents. A WAN typically uses the standard Internet communication protocols, just like a LAN or the Internet itself, but requires special equipment and configuration.




web browser
See browser.




Web-mail service provider
A company that provides hosting services for downloading, viewing, and distributing email. Yahoo!, Hotmail, and Gmail are among the free web mail service providers. Many, if not most, Internet service providers also provide a web-based interface for handling email.




web-safe color palette
A general-purpose palette of 216 colors. The web-safe color palette is designed to optimize the use of color on systems that support 8-bit color. The web-safe color palette is also called the Netscape color palette and the Netscape color cube.




window
A graphical frame—-with a blue name band and control buttons on top in JDS—through which you view and interact with programs and system tools on the desktop.




window manager
The layer between the user and the X Window System. It provides the desktop display and handles activities that affect a whole window, such as moving, resizing, or closing it.




wizard
A software utility that helps you perform certain computer functions by taking you through a series of interactive steps. People use wizards to set up a program for installation. Some wizards provide templates that allow a user to enter information to create documents such as web pages, letters, and spreadsheets. In JDS, some wizards are called assistants.




X Window System
The graphical windowing environment for JDS. It provides the underlying programming required by the GNOME user interface.




X11
Version 11 of the X Window System. This version that has been in use ever since the X Window System achieved widespread use and commercial viability.




XDM
The X Display Manager. A user-friendly frontend for logging in to the X Window System. It provides a graphical login screen and enables remote use of an X server.




XFree86
A free software version of the X Window System commonly used on Linux.




XML
eXtensible Markup Language. This is a powerful markup language encompassing the rules for standard document layout. It is used for for formatting documents and designing Web Services. GNOME uses XML to define schemas in the desktop, menu, icons, and configurations. XML is a standard governed by the World Wide Web Consortium (http://www.w3.org). The implementation of XML specifically for office software file formats—the same one found in StarOffice and OpenOffice.org—is developed and governed by the Organization for the Advancement of Structured Information Standards, or OASIS (http://www.oasis-open.org).

Linux Books resources

Books
If you are a new Linux user, the books by Powers or Siever are both good general references. If you want to know more about Linux system administration, my favorite is Nemeth. Frisch, a quicker read but less detailed book, is also a good place to begin. If you need more information on the Linux kernel, Bovet is a reasonable book to look at. For fine-tuning your system, Musumeci is a good resource. For a detailed overview of Unix security issues, you might look at Garfinkel. Limoncelli provides a general overview of system administration practices.

A robust network is a crucial part of any cluster. While general Linux books will take you a long way, at some point you'll need more specialized information than a general administration book can provide. If you want a broad overview of networking, Tanenbaum is very readable. For Ethernet, Spurgeon is a great place to start. If you want more information on TCP/IP, Comer, Hall, and Stevens are all good starting points. For setting up a TCP/IP network, you should consider Hunt. For more information on firewalls, look at Cheswick or Sonnenreich.

Of course, setting up a system will require configuring a number of network services. Hunt provides a very good overview. If you need to delve deeper, there are a number of books dedicated to individual network services, particularly from O'Reilly. For Apache, consider Laurie. For DNS, you won't do better than Albitz. For NFS, look at Callaghan or Stern. For SSH, you might consult Barrett.

For general information on parallel computing, good choices include Culler, Dongarra, and Dowd. Culler is more architecture and performance oriented. Dongarra is a very good source for information on how parallel computing is used. Dowd provides a wealth of information on parallel programming techniques.

For additional information on clusters, the best place to start is Sterling's book. Many of the tools described in this text are discussed by their creators in the book edited by Sterling, listed below. Although uneven at times, parts of Bookman are very helpful.

There are a number of books available on parallel programming with MPI. For a general introduction, look to Gropp or Pacheco. Both will provide you with more examples and greater depth that I had space for in this book. Snir is an indispensable reference. If you are using PVM, Geist is the best place to start. For producing efficient code, Bentley is wonderful. Unfortunately, it is out of print, but you may be able to find it in a local library. Dowd is also useful.

Albitz, Paul and Cricket Liu. DNS and BIND. Fourth Edition. Sebastopol, CA: O'Reilly & Associates, Inc., 2001.

Barrett, Daniel and Richard Silverman. SSH, the Secure Shell: The Definitive Guide. Sebastopol, CA: O'Reilly & Associates, Inc., 2001.

Bentley, Jon Louis. Writing Efficient Programs. Upper Saddle River, NJ: Prentice-Hall, Inc., 1982.

Bookman, Charles. Linux Clustering: Building and Maintaining Linux Clusters. Indianapolis, IN: New Riders Publishing, 2002.

Bovet, Daniel and Marco Cesati. Understanding the Linux Kernel. Second Edition. Sebastopol, CA: O'Reilly & Associates, Inc., 2002.

Callaghan, Brent. NFS Illustrated. Reading, MA: Addison Wesley Professional, 1999.

Cheswick, William, Steven Bellovin, and Aviel Rubin. Firewalls and Internet Security: Repelling the Wiley Hacker. Second Edition. Reading, MA: Addison Wesley Publishing Co., 2003.

Comer, Douglas. Internetworking with TCP/IP: Principles, Protocols, and Architectures. Volume 1. Fourth Edition. Upper Saddle River, NJ: Prentice Hall, 2000.

Culler, David, Jaswinder Pal Singh, with Anoop Gupta. Parallel Computer Architecture: A Hardware/Software Approach. San Francisco, CA: Morgan Kaufmann Publishers, Inc., 1998.

Dowd, Kevin and Charles Severance. High Performance Computing. Second Edition. Sebastopol, CA: O'Reilly & Associates, Inc., 1998.

Dongarra, Jack et al., eds. Sourcebook of Parallel Computing. San Francisco, CA: Morgan Kaufmann Publishers, Inc., 2003.

Frisch, Æleen. Essential System Administration. Sebastopol, CA: O'Reilly & Associates, Inc., 1991.

Garfinkel, Simson, Gene Spafford, and Alan Schwartz. Practical Unix & Internet Security. Third Edition. Sebastopol, CA: O'Reilly & Associates, Inc., 1993.

Geist, Al et al. PVM: Parallel Virtual Machine: A User's Guide and Tutorial for Networked Parallel Computing. Cambridge, MA: MIT Press, 1994.

Gropp, William, Ewing Lusk, and Anthony Skjellum. Using MPI: Portable Parallel Programming with the Message-Passing Interface. Second Edition. Cambridge, MA: MIT Press, 1999.

Hall, Eric A. Internet Core Protocols: The Definitive Guide with CD-ROM. Sebastopol, CA: O'Reilly & Associates, Inc., 2000.

Hunt, Craig. TCP/IP Network Administration. Second Edition. Sebastopol, CA: O'Reilly & Associates, Inc., 1998.

Jain, Raj. The Art of Computer Systems Performance Analysis. New York, NY: John Wiley & Sons, 1991.

Laurie, Ben and Peter Laurie. Apache: The Definitive Guide. Third Edition. Sebastopol, CA: O'Reilly & Associates, Inc., 2002.

Limoncelli, Thomas and Christine Hogan. The Practice of System and Network Administration. Upper Saddle River, NJ: Addison Wesley, 2002.

Message Passing Interface Forum. MPI-2: Extensions to the Message-Passing Interface. Knoxville, TN: University of Tennessee, 1997.

Musumeci, Gian-Palol and Mike Loukides. System Performance Tuning. Second Edition. Sebastopol, CA: O'Reilly & Associates, Inc., 2002.

Nemeth, Evi et al. Linux Administration Handbook. Upper Saddle River, NJ: Prentice Hall, 2002.

Oram, Andy, ed. Peer-to-Peer: Harnessing the Power of Disruptive Technologies. Sebastopol, CA: O'Reilly & Associates, Inc., 2001.

Pacheco, Peter. Parallel Programming with MPI. San Francisco, CA: Morgan Kaufmann Publishers, Inc., 1997.

Powers, Shelley et al.. Unix Power Tools. Third Edition. Sebastopol, CA: O'Reilly & Associates, Inc., 2003.

Siever, Ellen, Aaron Weber, and Stephen Figgins. Linux in a Nutshell. Fourth Edition. Sebastopol, CA: O'Reilly & Associates, Inc., 2003.

Snir, Marc et al. MPI: The Complete Reference. 2 vols. Cambridge, MA: MIT Press, 1998.

Sonnenreich, Wes and Tom Yates. Building Linux and OpenBSD Firewalls. New York, NY: John Wiley & Sons, Inc., 2000.

Spurgeon, Charles. Ethernet: The Definitive Guide. Sebastopol, CA: O'Reilly & Associates, Inc., 2000.

Stallman, Richard et. al. Debugging with GDB: The GNU Source-Level Debugger. Boston, MA: GNU Press, 2003.

Sterling, Thomas, ed. Beowulf Cluster Computing with Linux. Cambridge, MA: MIT Press, 2002.

Stern, Hal, Mike Eisler, and Ricardo Labiaga. Managing NFS and NIS. Second Edition. Sebastopol, CA: O'Reilly & Associates, Inc., 2001.

Stevens, W. Richard. TCP/IP Illustrated. Volume 1, The Protocols. Reading, MA: Addison Wesley Longman, 1994.

Tanenbaum, Andrew. Computer Networks. Fourth Edition. Saddle River, NJ: Pearson Education, 2002.

Thompson, Robert and Barbra Thompson. Building the Perfect PC. Sebastopol, CA: O'Reilly & Associates, Inc., 2004.

Thompson, Robert and Barbra Thompson. PC Hardware in a Nutshell. Third Edition. Sebastopol, CA: O'Reilly & Associates, Inc., 2003.

Wilkinson, Barry and Michael Allen. Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers. Upper Saddle River, NJ: Prentice-Hall, Inc., 1999.

Linux News and Information

News and Information
These sites are mainly informational, keeping you abreast of what’s going on in the Linux world. DistroWatch focuses on the various distributions available out there and what features they have, whereas Linux Today and LinuxPlanet are more of the online magazine/newspaper genre.

Linux Today http://linuxtoday.com

LinuxPlanet www.linuxplanet.com

DistroWatch www.distrowatch.com

Linux Reference Sites

Linux Reference Sites
These are general sites, which are geared toward newbies, where you can learn a bit more about using Linux in general.

LinuxCommand.org http://linuxcommand.org

If you’ve become interested in the Linux Command Terminal and the commands you use in it, this site has lots for you, including tutorials and explanations of other useful Linux commands.

NewToLinux.org www.newtolinux.org.uk

Tutorials and other information for newbies, with a focus on helping migrants from the Windows world ease into Linux.

Linux Online www.linux.org

All sorts of information about Linux, including information on Linux history, distributions, and links to various downloadable applications.

Linux Download Sites

Download Sites
If you find yourself looking for more applications to play around with, you should be able to find plenty of free software to download at one of these sites.

Applications and Other Packages
FreshRPMs http://freshrpms.net/packages

A collection of add-on RPM packages that are specifically prepared for Red Hat Linux/Fedora and are grouped by version.

DAG http://dag.wieers.com/packages

Another collection of add-on RPM packages prepared for Red Hat Linux/ Fedora. Packages from DAG are designed to be compatible with those from FreshRPMs.

Fedora.us http://download.fedora.us/fedora/fedora/1/i386/RPMS.stable

Another collection of add-on RPM packages, though not guaranteed to be compatible with those from FreshRPMs and DAG.

Planet CCRMA http://ccrma-www.stanford.edu/planetccrma/software

Mostly specialty-music-related packages, many of which are not easily found on other sites. This is a good place to find things like music notation software and sequencers.

RPMFind www.rpmfind.net/linux/RPM

An RPM file search tool you can use to find specific files you are looking for (perhaps to get you out of dependency hell?).

SourceForge.net http://sourceforge.net

A source for RPM and tarball packages. Click the software map button for a category listing of what’s available. Be aware that a few of the applications are only for the Windows environment.

FreshMeat.net http://freshmeat.net

Similar to SourceForge.net. Click the browse link for a category listing of what’s available.

GNOME.org www.gnome.org/softwaremap

Applications specifically designed for the GNOME environment.

Customization
art.gnome.org http://art.gnome.org

Customization files for the GNOME environment. (Wallpapers downloaded for use in GNOME can also be used in KDE.)

KDE-Look.org www.kdelook.org

Customization files for the KDE environment. (Wallpapers downloaded for use in KDE can also be used in GNOME.)

X MultiMedia System www.xmms.org/skins.php

Skins for the XMMS media player.

Winamp http://classic.winamp.com/skins

Skins for the Windows Winamp2 media player that can also be used with XMMS.

Free Fonts
Font Freak www.fontfreak.com

Font Paradise www.fontparadise.com

Fontor.com www.fontor.com

Divide by Zero Fonts http://fonts.tom7.com

Wireless Related Sites for Linux

Wireless Related Sites
Wireless LAN Resources for Linux www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Wireless.html

EZGoal HotSpots www.ezgoal.com/hotspots/wireless

A listing of wireless hotspots throughout the United States and around the world — everything from hotels to city parks. Very cool.

Linux Hardware Compatibility Issues

Hardware Compatibility Issues
If you want to check to see whether or not your hardware is compatible with Linux, or you want to read up on other matters related to hardware support, take a look at the following sites:

Linux Compatible www.linuxcompatible.org/compatibility.html

An alphabetical listing of all kinds of hardware, from motherboards to scanners. Listings are located near the bottom of the page.

LinuxPrinting.org www.linuxprinting.org

Linmodems.org www.linmodems.org

SANE Project (scanners) www.sane-project.org

Linux on Laptops www.linux-laptop.net

TuxMobil http://tuxmobil.org

Linux Mailing Lists

Mailing Lists
Another way to get community feedback on your various questions and to learn the concerns of fellow Fedora users is via mailing lists. Postings are received and sent by email. You do not have to access a Web page in order to use this sort of service (except, in some cases, to sign up for the list). There are many such lists out there, so you might want to do an Internet search for “Fedora mailing lists.” Yahoo Groups also has a number of Linux-, Fedora-, and Red Hat–specific lists available that you might want to check out. You can search through the various Yahoo Groups by going to http://groups.yahoo.com.

If you like, you can also give the “official” Fedora list a try by having a look through the list’s archives, which can be accessed at www.redhat.com/mailman/ listinfo/fedora-list. If the level of things seems to be in sync with your pace and understanding, you can sign up for the list at the same URL.

Online resources about Linux

Online resources
These Web sites are also relevant as further information sources:

Equinox Systems Web site

http://www.equinox.com

Freshmeat Web site information on tftp

http://freshmeat.net/projects/atftp

GNU General Public License information

http://www.linux.org/info/gnu.html

GPFS for Linux Web site

http://www.ibm.com/servers/eserver/clusters/software/gpfs.html

IBM alphaWorks ETC Web site

http://www.alphaworks.ibm.com/tech/ect4linux

IBM developerWorks® Web site

http://www.ibm.com/developerworks

IBM Cluster 1350 main Web site

http://www.ibm.com/servers/eserver/clusters/hardware/1350.html

IBM xSeries Clustering Web site

http://www.pc.ibm.com/ww/eserver/xseries/clustering/info.html

IBM FAStT200 High Availability Storage Servers information

http://www.pc.ibm.com/qtechinfo/MIGR-43824.html

IBM GPFS FAQ Web site

http://www-1.ibm.com/servers/eserver/clusters/software/gpfs_faq.html

IBM GPFS/Linux Portability Layer Project

http://oss.software.ibm.com/developerworks/projects/gpfs

IBM Linux Technology Center - Patches Web site

http://www.ibm.com/developerworks/oss/linux/patches

IBM PC Support Web site

http://www.pc.ibm.com/support

IBM Storage Systems for Linux information

http://www.storage.ibm.com/linux/index.html

IBM TotalStorage FAStT700 Fibre Channel Storage Server information

http://www.pc.ibm.com/qtechinfo/MIGR-40358.html

IEEE Web site

http://www.ieee.org

Internet Software Consortium Web site

http://www.isc.org/products/BIND

Linux Documentation project Web site

http://www.linuxdoc.org

Linux Kernel Crash Dumps information

http://lkcd.sourceforge.net

MRV Communications Inc Web site

http://www.mrv.com/product/MRV-IR-002/

Myricon Inc. Web site

http://www.myri.com

Myrinet Frequently Asked Questions (FAQ) Web site

http://www.myri.com/scs/faq/faq-install.html

Myrinet Software and Documentation Web site

http://www.myrinet.com/scs

Network Time Protocol Web site

http://www.ntp.org

Open Source Project Web site

http://www.opensource.org

OpenBSD Web site

http://www.openbsd.org

OpenSSH Project Web site

http://www.openssh.org

Red Hat Linux 7.3 General Advisories

http://rhn.redhat.com/errata/rh73-errata.html

Red Hat versions supported by IBM hardware information

http://www.pc.ibm.com/us/compat/nos/redchat.html

xCat Project Web site

http://www.alphaworks.ibm.com/tech/xCAT

Other publications about Linux Art

Other publications
These publications are also relevant as further information sources:

IBM Cluster Systems Management for Linux: Administration Guide, SA22-7873

IBM Cluster Systems Management for Linux: Hardware Control Guide, SA22-7856

IBM Cluster Systems Management for Linux: Planning and Installation Guide, SA22-7853

IBM General Parallel File System for Linux: Administration and Programming Reference, SA22-7843

IBM General Parallel File System for Linux: Concepts, Planning, and Installation Guide, GA22-7844

IBM General Parallel File System for Linux: Problem Determination Guide, GA22-7842

IBM General Parallel File System (GPFS) for Linux: RSCT Guide and Reference, SA22-7854

IBM Reliable Scalable Cluster Technology for Linux: Guide and Reference, SA22-7892

How to Build a Beowulf: A Guide to the Implementation and Application of PC Clusters (Scientific and Engineering Computation), by Thomas Sterling, et al. MIT Press, May 1999. ISBN 026269218X.

The following publications can be found at http://www.pc.ibm.com/support:

IBM xSeries Model 345 Remote Supervisor Adapter Installation Guide

IBM xSeries Model 335 Remote Supervisor Adapter User's Guide

Another Good Linux Books

Books
There are quite a few books out there about Linux and about embedded systems in general. Here are a few titles that you may find useful:

Advanced Programming in the UNIX Environment, by Richard Stevens (Addison Wesley)
Considered by many as the most important Unix programming book available. If you need to understand how to think and program in the Unix mindset, this is the book you need. Stevens' books are, in general, highly recommended.

The Art of Designing Embedded Systems, by Jack Ganssle (Newnes Press)
This book's style is different from most other technical books in that it uses a mix of technical explanations and practical advice about real-life issues. It captures the essence of the experiences most embedded system designers have in their day-to-day work. Jack Ganssle has regular columns in Embedded Systems Programming magazine and is a frequent speaker at embedded systems conferences.

Embedded Systems Design, by Arnold S. Berger (CMP Books)
An introductory text to embedded system design from both the hardware and the software perspective. If you are not familiar with the process of developing embedded systems, you will find this book helpful.

Linux Device Drivers, by Alessandro Rubini and Jonathan Corbet (O'Reilly)
The classic text book for understanding how Linux device drivers are developed. Written by two respected members of the open source and free software community. A must read for any Linux device driver developer.

Running Linux, by Matt Welsh, Lar Kaufman, Terry Dawson, and Matthias Kalle Dalheimer (O'Reilly)
This book provides you with all that you need to learn how to install and use Linux without requiring any prior knowledge of either Linux or Unix. I've owned a copy of this book's first edition and have come back to it every time I forgot how something was done in Linux. A terrific book that covers much of the background material required to make the best out of the use of Linux in embedded systems.

Programming Embedded Systems in C and C++, by Michael Barr (O'Reilly)
This introductory book covers the basics of embedded software development and offers insight into many of the software tricks used in developing embedded systems.

Understanding the Linux Kernel, by Daniel Bovet and Marco Cesati (O'Reilly)
There have been a number of books on the Linux kernel's internals over the years. This one is particularily well researched and structured, and has been updated to cover the current stable version of Linux, 2.4.

Linux and Open-Source-Oriented Hardware Projects

Linux and Open-Source-Oriented Hardware Projects
FreeIO (http://www.freeio.org/)
FreeIO (Free Hardware Resources for the Free Software Community) is an effort to develop and distribute hardware schematics and designs under the terms of the GNU GPL. The web site already hosts a number of hardware designs along with the relevant Linux drivers.

LART (http://www.lart.tudelft.nl/)
This project's goal is to develop a StrongARM-based embedded board that runs Linux. The board schematics and lots of extension modules and software are available from the project's web site.

MyLinux (http://www.azpower.com/mylinux/)
This project aims to develop a SuperH-based PDA-like embedded system that runs Linux. The project's details along with pictures are available from the project's web site.

Opencores.ORG (http://www.opencores.org/)
A collection of projects that develop Intellectual Property (IP) cores and distribute them under the terms of the GNU GPL. Quite a few building blocks are already available.

Simputer (http://www.simputer.org/)
An effort to develop an inexpensive reference hardware platform that runs Linux.

TuxScreen (http://www.tuxscreen.net/)
Originally a Philips product, TuxScreen is a StrongARM-based platform that includes a phone set, a screen, and a full keyboard. Though no more units are available for purchase, the site includes schematics that may be useful to other projects.

uClinux boards (http://www.uclinux.org/)
One of the first hardware projects specifically aimed at building an embedded system capable of running Linux. The MMU-less port of Linux originates from this project.

Linux Related Terms

A
absolute directory name
A directory name that begins with a slash (/), indicating that it’s to be interpreted starting from the root (/) directory.
access control list (ACL)
A security system that provides a list of usernames or groups and their permissions to access a resource. ACLs are expanding and supplementing traditional Unixstyle permissions on new filesystems. XFS supports ACLs natively, and ACL extensions for other filesystems are becoming popular.
account
Stored information and a reserved directory that allows one individual to use a computer. The term is often used and thought of as if it were a distinct virtual component of a computer that a person can use, as in “Sam logged into his account,” or “Miranda’s account isn’t working.”
ACL
See access control list (ACL).
ACPI
See Advanced Configuration and Power Interface (ACPI).
Address Resolution Protocol (ARP)
A protocol used to learn a network hardware address based on an IP address.
Advanced Configuration and Power Interface (ACPI)
A power management protocol. Linux includes limited ACPI support.
Advanced Graphics Port (AGP)
A type of bus for plug-in cards that’s used by graphics cards. AGP provides better performance than common forms of PCI.
Advanced Power Management (APM)
A power management protocol. Linux includes better APM support than ACPI support.
Advanced Technology Attachment (ATA)
A type of interface for hard disks, CD-ROM drives, tape drives, and other mass storage devices. Also often referred to as EIDE.
AGP
See Advanced Graphics Port (AGP).
anonymous FTP site
A server computer that allows access via the FTP protocol, using a username of anonymous and any password. (Conventionally, you give your e-mail address as the password.) Anonymous FTP servers are commonly used for distributing files on the Internet.
anti-aliasing
See font smoothing.
APM
See Advanced Power Management (APM).
AppleTalk
A network protocol stack used by Apple with its Macintosh computers. AppleTalk is used primarily on local networks for file and printer sharing.
ARP
See Address Resolution Protocol (ARP).
ATA
See Advanced Technology Attachment (ATA).

B
bad block
A sector on a disk that’s unable to reliably store data. Bad blocks inevitably develop on magnetic media over time, but when this begins to happen, the disk tends to deteriorate rapidly.
Basic Input/Output System (BIOS)
A low-level software component included on a computer’s motherboard in read-only memory (ROM) form. The CPU runs BIOS code when it first starts up, and the BIOS is responsible for locating and booting an OS or OS loader.
baud rate
A measure of data transmission speed, commonly used over serial lines, corresponding to the number of signal elements transmitted per second. This term is often used as a synonym for “bits per second,” but many modems encode more than one bit per signal element, so the two aren’t always synonymous.
Berkeley Standard Distribution (BSD)
Originally a set of add-on utilities for very early versions of AT&T Unix. BSD later became an independent family of Unix-like OSs. BSD also refers to specific components or ways of doing things derived from these.
binary
1. The base-2 numbering system. 2. A program or file that contains data other than plain text, such as graphics or program data. 3. The version of a program that the computer runs, as opposed to the source code version of the program.
binary package
A file that contains a compiled and ready-to-run Linux program, including necessary configuration files, documentation, and other support files.
BIOS
See Basic Input/Output System (BIOS).
bit
A binary digit (0 or 1).
boot loader
A program that directs the boot process. The BIOS calls the boot loader, which loads the Linux kernel or redirects the boot process to another boot loader.
boot sector
The first sector of a disk or partition. The boot sector for a bootable disk or partition includes boot loader code, although this code may be absent from non-bootable disks or partitions. See also boot loader.
broadband
1. High-speed (greater than 200Kbps) Internet connections delivered to homes and small businesses. 2. Networking technologies that support simultaneous transmission of data, voice, and video.
broadcast
A type of network access in which one computer sends a message to many computers (typically all the computers on the sender’s local network segment).
BSD
See Berkeley Standard Distribution (BSD).
build number
A number identifying minor changes made to a binary package by its maintainer, rather than changes implemented by the program’s author, which are reflected in the version number.
bus
A data transfer mechanism within the computer, such as the SCSI bus or the memory bus.
byte
An 8-bit number, typically represented as falling between 0 and 255.

C
C library (libc)
Standard programming routines used by many programs written in the C programming language. The most common Linux C library is also referred to as GNU libc (glibc).
cache memory
A fast form of memory that’s used to temporarily hold a subset of a larger but slower memory store. When properly implemented, caches can improve system performance. Hard disks include RAM as cache for data on disk, and computers can implement their own disk caches. Modern CPUs include a form of cache for RAM, and some motherboards include the same.
Card Services
A package that helps integrate PC Card or Cardbus (a.k.a. PCMCIA) devices into Linux.
Cardbus
The high-speed version of PCMCIA; provides notebook computers with support for removable network adapters, modems, SCSI interfaces, and similar hardware. See also Card Services and PC Card.
cathode ray tube (CRT)
A type of computer display that uses a glass screen with an electron gun that shoots charged particles at the screen to make images. CRTs are similar to conventional television sets, but they’re declining in popularity in favor of LCD monitors.
central processing unit (CPU)
The main chip on a computer, which handles the bulk of its computational tasks.
checksum
A simple file integrity check in which the values of individual bits or bytes are summed up and compared to a stored value for a reference version of the file.
child process
A relative term referring to a process that another one has created. For instance, when you launch a program from a bash shell, the program process is a child process of the bash shell process.
chipset
One or more chips that implement the main features of a motherboard or add-in board for a computer. The chipset is not the CPU, though; the chipset provides more specialized functions, such as the ability to control a hard disk or produce a video display.
CHS addressing
See cylinder/head/sector (CHS) addressing.
CHS mode
See cylinder/head/sector (CHS) mode.
CHS translation
See cylinder/head/sector (CHS) translation.
CIFS
See Common Internet Filesystem (CIFS).
client
1. A program that initiates data transfer requests using networking protocols. 2. A computer that runs one or more client programs.
command prompt
One or more characters displayed by a shell or other program to indicate that you should type a command. Many Linux distributions use a dollar sign ($) as a command prompt for ordinary users, or a hash mark (#) as a command prompt for root.
Common Internet Filesystem (CIFS)
Name for an updated version of the Server Message Block (SMB) file sharing protocols. CIFS is implemented in Linux via the Samba suite. It’s often used to share files with Windows computers.
compiler
A program that converts human-readable source code for a program into a binary format that the computer runs.
Complementary Metal Oxide Semiconductor (CMOS) setup utility
A part of the BIOS that gives the user the ability to control key chipset features, such as enabling or disabling built-in ports.
conditional expression
A construct of computer programming and scripting languages used to express a condition, such as the equality of two variables or the presence of a file on a disk. Conditional expressions enable a program or script to take one action in one case and another action in the other case.
console
1. The monitor and keyboard attached directly to the computer. 2. Any command prompt, such as an xterm window.
Coordinated Universal Time (UTC)
See Greenwich Mean Time (GMT).
copyleft
Slang term referring to the GNU GPL or certain other open source licenses.
core dump
A record of a crashed process’s memory, stored in a disk file at the time of the process’s crash. Core dumps can sometimes be used to debug the cause of the crash.
CPU
See central processing unit (CPU).
cracker
An individual who breaks into computers. Crackers may do this out of curiosity, malice, for profit, or for other reasons.
crash
An event in which a program terminates abruptly and abnormally. Crashes are typically the result of programming errors.
creating a filesystem
Writing low-level filesystem (meaning 1) data structures to a disk. This is sometimes also called high-level formatting. See also filesystem.
cron job
A program or script that’s run at a regular interval by the cron daemon. See also system cron job and user cron job.
CRT
See cathode ray tube (CRT).
cylinder/head/sector (CHS) addressing
A method of hard disk addressing in which a triplet of numbers (a cylinder, a head, and a sector) are used to identify a specific sector. CHS addressing contrasts with linear block addressing (LBA).
cylinder/head/sector (CHS) mode
See cylinder/head/sector (CHS) addressing.
cylinder/head/sector (CHS) translation
Modifying one CHS addressing scheme into another. CHS translation is commonly used by BIOSs from the mid-to-late 1990s to enable the systems to use hard disks between 504MB and 8GB in capacity.

D
daemon
A program that runs constantly, providing background services. Linux servers are typically implemented as daemons, although there are a few non-server daemons.
Data Display Channel (DDC)
A protocol that enables a computer to query a monitor for its maximum horizontal and vertical refresh rates and other vital statistics.
DDC
See Data Display Channel (DDC).
Debian package
A package file format that originated with the Debian distribution but is now used on several other distributions. Debian packages feature excellent dependency tracking and easy installation and removal procedures.
default route
The route that network packets take if a more specific route doesn’t direct them in some other way. The default route typically involves a gateway or router system that can further redirect the packets.
dependency
A requirement of one software package that another one be installed. For instance, most Linux programs include a dependency on the C library.
desktop computer
A computer that sits on a desk and that’s used by an individual for productivity tasks. A desktop computer is similar to a workstation, but some people use “desktop” to refer to somewhat lower-powered computers or those without network connections. See also workstation.
desktop environment
A set of programs that provide a friendly graphical environment for a Linux user.
development kernel
A kernel with an odd middle number, such as 2.5.67. These kernels incorporate experimental features and are not as stable as are release kernels. See also release kernel.
device file
A special file, typically residing in the /dev directory, that provides programs with access to hardware. Device files exist for most types of hardware, such as RS-232 serial ports, floppy disks, sound cards, and so on. Many devices sport multiple device files.
DHCP
See Dynamic Host Configuration Protocol (DHCP).
DHCP lease
A temporary assignment of an IP address to a DHCP client by a DHCP server. Clients must periodically renew their DHCP leases or risk losing the right to use the address.
DIMM
See dual inline memory module (DIMM).
direct memory access (DMA)
A means of transferring data between devices (such as sound cards or SCSI host adapters) and memory without directly involving the CPU.
distribution
A complete collection of a Linux kernel and programs necessary to do work with Linux. Dozens of different Linux distributions exist, each with its own unique characteristics, but they all work in a similar way and can run the same programs, assuming similar vintages of critical support libraries like libc.
DMA
See direct memory access (DMA).
DNS
See Domain Name System (DNS).
domain
A collection of related computers. See also domain name.
domain name
A name associated with an organization or set of computers. Individual computers are assigned names within a domain, and domains can be partitioned into subdomains.
Domain Name System (DNS)
A distributed set of computers that run servers to convert between computer names (such as ns.example.com) and IP addresses (such as 192.168.45.204). DNS servers are organized hierarchically and refer requests to systems responsible for successively more specific domains.
dot file
A Linux or Unix file whose name begins with a dot (.). Most Linux shells and programs hide such files from the user, so user configuration files usually come in this form to be unobtrusive in directory listings.
drag bar
See title bar.
DRAM
See dynamic RAM (DRAM).
dual inline memory module (DIMM)
One of several types of small circuit boards on which memory chips are distributed, for ease of installation in computers. DIMMs are used on some Pentium-level and later computers.
Dynamic Host Configuration Protocol (DHCP)
A protocol used on local networks for dissemination of network configuration information. A single DHCP server can maintain information for many DHCP clients, reducing overall configuration effort.
dynamic RAM (DRAM)
One of several types of RAM. Plain DRAM is now largely obsolete in desktop computers.
dynamically linked
Programs that call on information in libraries by loading a separate library file when the program runs. This contrasts with statically linked programs. See also library.

E
effective user ID
The owner associated with a running process. This may or may not be the same as the user ID of the individual who ran the program.
EIDE
See Enhanced Integrated Device Electronics (EIDE) and Advanced Technology Attachment (ATA).
electrostatic discharge (ESD)
A transfer of an electrical charge from one body to another. ESD frequently occurs when a person who’s shuffled around on a carpet in dry weather touches a metallic object such as a doorknob or computer component. It can be very damaging to electronic devices such as computers.
Enhanced Integrated Device Electronics (EIDE)
Another name for the Advanced Technology Attachment (ATA) interface.
envelope
In networking, the portion of a data packet that directs the transmission and routing of the packet. The envelope includes such information as the source and destination addresses and other housekeeping information.
environment variable
A setting that’s available to any program running in a session. Environment variables can define features such as the terminal type being used, the path to search for executable programs, and the location of an X server for GUI programs.
ESD
See electrostatic discharge (ESD).
Ethernet
The most common form of wired local networking.
ext2
See Second Extended Filesystem (ext2 or ext2fs).
ext2fs
See Second Extended Filesystem (ext2 or ext2fs).
ext3
See Third Extended Filesystem (ext3 or ext3fs).
ext3fs
See Third Extended Filesystem (ext3 or ext3fs).
extended INT13
BIOS routines added in the late 1990s to enable x86 computers to boot from hard disks larger than 8GB.
extended partition
A type of disk partition used on x86 systems. Extended partitions are placeholders for one or more logical partitions.
Extent Filesystem (XFS)
One of several journaling filesystems for Linux. XFS was developed by Silicon Graphics (SGI) for its IRIX OS, and then ported to Linux.
external transfer rate
The data transfer rate between one device and another. The external transfer rate is frequently applied to disks and similar devices in reference to the speed of the ATA or SCSI interface, as opposed to the speed of the drive mechanism itself. In this context, the external transfer rate is almost always higher than the internal transfer rate.
F
failed dependency
A state in which a package’s dependencies are not met when attempting to install it, or in which removing a package would cause other installed packages to have unmet dependencies.
FDDI
See Fiber Distributed Data Interface (FDDI).
FHS
See Filesystem Hierarchy Standard (FHS).
Fiber Distributed Data Interface (FDDI)
A type of network hardware that supports up to 100Mbps speeds over fiber-optic cables.
Fibre Channel
A type of network hardware that supports up to 1062Mbps speeds over fiberoptic cables.
file access permissions
See file permissions.
file manager
A GUI program that enables users to manipulate files using mouse point-and-click operations.
filename completion
A feature of some shells that enables them to complete a command or filename when you press the Tab key.
file owner
The account with which a file is most strongly associated. The owner often has permission to do more with a file than other users can do.
file permissions
Linux’s file access control mechanism. Every file has an owner, a group, and permissions that define how the owner, group members, and all other users (the “world”) may access the file. Permissions include read, write, and execute for the owner, group, and world.
file sharing protocol
A network protocol that enables one computer to access files stored on a second computer as if the second computer’s files were local to the first computer. Examples include SMB/CIFS (used on Windows-dominated networks), NFS (used on Unix-dominated networks), and AppleShare (used on Macintosh-dominated networks).
filesystem
1. The low-level data structures recorded on a disk in order to direct the placement of file data. The filesystem determines characteristics like the maximum partition size, the file naming rules, and what extra data (time stamps, ownership, and so on) may be associated with a file. 2. The overall layout of files and directories on a computer. For instance, a Linux filesystem includes a root directory (/), several directories falling off this (/usr, /var, /boot, etc.), subdirectories of these, and so on.
Filesystem Hierarchy Standard (FHS)
A standard that defines the names and contents of critical directories in a Linux filesystem (meaning 2).
Filesystem Standard (FSSTND)
An early attempt to define the names and contents of critical directories in a Linux filesystem (meaning 2). FSSTND has been supplanted by the FHS.
File Transfer Protocol (FTP)
A simple protocol for transferring files over TCP/IP networks.
file type code
A code that defines the type of a file—a normal file, a directory, a symbolic link, and so on.
FireWire
A name for IEEE-1394 that’s favored by Apple.
focus
In the context of window managers, focus refers to the window that receives input from the keyboard and mouse. Focus may be changed in various ways, depending on the window manager and its settings. See also window manager.
font server
A program that provides font bitmaps to client programs on the same or (sometimes) other computers. The font server may work directly from font bitmaps, or it may generate the bitmaps from outline fonts such as PostScript Type 1 or TrueType fonts.
font smoothing
A technique in which the edges of letters are displayed in shades of gray rather than pure white or black. The result reduces the jagged appearance the characters would otherwise have at screen resolutions, but not all people like the results. Also known as anti-aliasing.
fork
The method by which one process creates another process.
formatting
Writing data structures necessary for a disk to hold data. Formatting may be either high-level or low-level. High-level formatting is synonymous with creating a filesystem. Low-level formatting is seldom necessary on hard disks, but it is more common on floppies. It entails re-creating the low-level data structures that define the locations of individual sectors.
fragmented
Adjective describing files whose contents are split across several parts of a disk, rather than placed contiguously. File fragmentation tends to degrade disk performance because it increases head movements when reading files.
frame
In networking, a data packet associated with network hardware (such as Ethernet), as opposed to the software (such as TCP/IP).
frame buffer
A low-level but standardized interface between software and video hardware. X uses a frame buffer interface on many non-x86 computers.
free software
Term favored by the Free Software Foundation to refer to certain types of open source software. Used in this way, the term should not be confused with freeware.
freeware
Any software that may be distributed and used free of charge, whether or not it’s open source. Not to be confused with free software, at least as the term is most commonly used within the open source community. See also free software.
FSSTND
See Filesystem Standard (FSSTND).
FTP
See File Transfer Protocol (FTP).
full duplex
A mode of communication in which data can be transferred in two directions at the same time.

G
gateway
A computer that functions as a router between two networks.
General Public License (GPL)
A software license developed by the Free Software Foundation. The GPL is one of several open source licenses. It allows anybody to modify a program and distribute modifications, as long as the changed version is also distributed under the terms of the GPL.
getty
A program that handles the login process from a text-mode console or serial port.
GID
See group ID (GID).
gigabit Ethernet
A variety of Ethernet that can transfer 1,000 megabits (1 gigabit) per second.
glibc
A specific type of C library used on Linux systems since the late 1990s.
GMT
See Greenwich Mean Time (GMT).
GNOME
See GNU Network Object Model Environment (GNOME).
GNU
Recursive acronym for GNU’s Not Unix. GNU is a Free Software Foundation (FSF) project whose goal is to build an entirely open source OS that works like Unix. The term is also used by some non-FSF projects.
GNU/Linux
Generic term for a complete Linux OS to distinguish the complete OS from the kernel alone. This term is favored by Debian; most other distributions use “Linux” alone.
GNU Network Object Model Environment (GNOME)
A common desktop environment for Linux.
GPL
See General Public License (GPL).
Grand Unified Boot Loader (GRUB)
A popular boot loader for Linux. Can boot a Linux kernel or redirect the boot process to another boot loader in a non-Linux partition, thus booting other OSs. Similar to the competing Linux Loader (LILO). See also boot loader.
graphical user interface (GUI)
A method of human/computer interaction characterized by a graphical display, a mouse to move a pointer around the screen, and the ability to perform actions by pointing at objects on the screen and clicking a mouse button.
Greenwich Mean Time (GMT)
The time in Greenwich, England, unadjusted for daylight savings. Linux systems use this time internally and adjust to local time by knowing the system’s time zone.
group
A collection of users. Files are owned by a user and a group, and group members may be given access to files independent of the owner and all other users. This feature may be used to enhance collaborative abilities by giving members of a group read/write access to particular files, while still excluding those who aren’t members of the group. It can also be used by system administrators to control access to system files and resources.
group administrator
A person with administrative authority over a group. A group administrator can add or delete members from a group and perform similar administrative tasks.
group ID (GID)
A number associated with a particular group. Similar to a user ID (UID).
group owner
The group with which a file is most strongly associated, after the file owner.
GRUB
See Grand Unified Boot Loader (GRUB).
GUI
See graphical user interface (GUI).

H
hacker
1. An individual who is skilled at using or programming computers and who enjoys using these skills in constructive ways. Many Linux programmers consider themselves hackers in this sense of the term. 2. A cracker (see also cracker). This use of the term is more prevalent in the mass media, but it is frowned upon in the Linux community.
half-duplex
A type of data transmission in which data can be sent in only one direction at a time.
hard link
A directory entry for a file that has another directory entry. All hard links are equally valid ways of accessing a file, and all must be deleted before a file is deleted. See also soft link.
hardware address
A code that uniquely identifies a single network interface. This address is built into the device itself rather than assigned in Linux.
hash
An encryption method in which a file or string is encoded in a manner that cannot be reversed. Hashes are commonly used for password storage and as a more secure variant on checksums, among other things. See also checksum.
header files
Files that contain interface definitions for software routines contained in a library. Program source code that uses a library must refer to the associated header files.
High-Performance Parallel Interface (HIPPI)
A type of network hardware that supports speeds of up to 1600Mbps over fiber-optic cabling.
HIPPI
See High-Performance Parallel Interface (HIPPI).
home directory
A directory associated with an account, in which the user’s files reside.
hostname
A computer’s human-readable name, such as persephone.example.com.
hot swapping
Adding or removing hardware while the computer is turned on.
HOWTO documents
Linux documentation that describes how to accomplish some task or use a particular program. HOWTOs are usually tutorial in nature. They’re archived at http://tldp.org, and all major distributions ship with them as well.
HTTP
See Hypertext Transfer Protocol (HTTP).
hub
A type of network hardware that serves as a central exchange point in a network. Each computer has a cable that links to the hub, so all data pass through the hub. Hubs echo all data they receive to all the other computers to which they connect. See also switch.
hung
Term used to describe a program that’s stopped responding to user input, network requests, or other types of input to which it should respond. Hung processes sometimes consume a great deal of CPU time.
Hypertext Transfer Protocol (HTTP)
A protocol used for transferring Web pages from a Web server to a Web browser.

I
IEEE-1394
An external bus technology that’s used to connect high-speed external devices such as hard disks, scanners, and video equipment. IEEE-1394 is slowly gaining in popularity. Linux 2.4.x added limited IEEE-1394 support.
IMAP
See Internet Message Access Protocol (IMAP).
incremental backup
A type of backup in which only files that have changed since the last backup are backed up. This is used to reduce the time required to back up a computer, at the cost of potentially greater restoration complexity.
Industry Standard Architecture (ISA)
The expansion bus used on the original IBM PC. Most manufacturers began dropping ISA from their motherboards around 2001. ISA is inferior to PCI in most respects, but it has a huge installed base.
inode
A filesystem (meaning 1) data structure that contains critical information on the file, such as its size and location on the disk.
input/output (I/O)
A term that describes the acceptance of data from an external source or the sending of data to an external source. In some cases, the “external source” may be internal to the computer, as in I/O between a hard disk and the CPU or memory. In other cases, I/O is more clearly external, as in network I/O.
installed file database
A database of files installed via the computer’s package manager (RPM or Debian), as well as associated information such as dependencies. Also called the package database.
Integrated Services Digital Network (ISDN)
A type of digital telephone service that also supports data transfer at speeds of up to 128Kbps for the most common variety (3.5Mbps for a less common variant). ISDN never took off in North America, but is moderately popular in Europe.
internal transfer rate
The rate of data transfer within a device. This is typically applied to hard disks and similar devices to describe how quickly they can read or write data from their physical media.
internet
Any collection of networks linked together by routers. See also Internet.
Internet
The largest network on Earth, which connects computers from around the globe. When used in this way, the word is always capitalized. See also internet.
Internet Message Access Protocol (IMAP)
A protocol for exchanging mail messages. The recipient initiates an IMAP session. IMAP differs from POP in that IMAP enables the recipient to leave messages in organized folders on the server; POP requires that the recipient download the messages to organize them.
Internet Packet Exchange (IPX)
A protocol that underlies much of Novell’s original networking protocols. Despite the name, this protocol is unrelated to the Internet.
Internet Printing Protocol (IPP)
A relatively new protocol for printing on a network.
interrupt request (IRQ)
A method by which peripherals (SCSI host adapters, sound cards, etc.) signal that they require attention from the CPU. An IRQ also refers to a specific interrupt signal line. The x86 architecture supports 16 IRQs, numbered 0–15, but IRQs 2 and 9 are linked, so in practice, there are only 15 IRQs, and many of these are used by basic hardware like floppy disks.
I/O
See input/output (I/O).
IP address
A computer’s numeric TCP/IP address, such as 192.168.45.203.
IPP
See Internet Printing Protocol (IPP).
IPv6
The “next-generation” Internet Protocol. This upgrade to TCP/IP allows for a theoretical maximum of approximately 3.4 × 1038 addresses, as opposed to the 4 billion addresses possible with the IPv4 that’s in common use in 2004.
IPX
See Internet Package Exchange (IPX).
IRQ
See interrupt request (IRQ).
ISA
See Industry Standard Architecture (ISA).
ISDN
See Integrated Services Digital Network (ISDN).

J
JFS
See Journaled Filesystem (JFS).
Journaled Filesystem (JFS)
One of several journaling filesystems for Linux. JFS was developed by IBM for its AIX. A subsequent implementation was created for OS/2, and Linux’s JFS is derived from this code.
journaling filesystem
A type of filesystem that maintains a record of its operations. Such filesystems can typically recover quickly after a power failure or system crash. Common Linux journaling filesystems are ext3fs, ReiserFS, JFS, and XFS. See also filesystem.
jumper
Metal pins on a circuit board that may be shorted via a plastic and metal cap (which is also called a jumper). When a jumper is so set, it alters the behavior of the circuit board. Jumpers were especially common on old ISA cards, and they still exist on some motherboards and many disk devices.

K
KDE
See K Desktop Environment (KDE).
K Desktop Environment (KDE)
A common desktop environment on Linux.
kernel
The core program of any OS. The kernel provides interfaces between the software and the hardware and controls the operation of all other programs. Technically, the Linux kernel is the only component that is Linux; everything else, such as shells, X, and libraries, is available on other Unix-like systems.
kernel module
A driver or other kernel-level program that may be loaded or unloaded as required.
kernel module autoloader
A utility that loads and unloads kernel modules as required by the kernel, obviating the need to manually load and unload kernel modules.
kernel oops
A kernel error and its aftermath (such as a program or system crash). These errors are most commonly caused by a bug in the kernel or a hardware problem.
kernel ring buffer
A record of recent messages generated by the Linux kernel. Immediately after a Linux system boots, this buffer contains the bootup messages generated by drivers and major kernel subsystems. This buffer may be viewed with the dmesg command.

L
laptop computer
A small portable computer, typically somewhat smaller than a briefcase. Laptops use special miniaturized components. Special software requirements of laptops include power management (APM or ACPI) and Card Services. A laptop computer is also known as a notebook computer.
LBA
See linear block addressing (LBA).
LCD
See liquid crystal display (LCD).
libc
See C library (libc).
library
A collection of code that’s potentially useful to many programs. This code is stored in special files to save disk space and RAM when running programs that use the library.
LILO
See Linux Loader (LILO).
linear block addressing (LBA)
A method of accessing data on a disk that uses a single sector number to retrieve data from that sector. LBA contrasts with cylinder/head/sector (CHS) addressing. Some sources refer to LBA as logical block addressing.
Linux
1. The open source kernel designed by Linus Torvalds as the core of a Unix-like operating system (OS). 2. A complete OS built around Linus Torvalds’s kernel. See also GNU/Linux.
Linux Loader (LILO)
A popular Linux boot loader. Can boot a Linux kernel or redirect the boot process to another boot loader in a non-Linux partition, thus booting other OSs. Similar to the competing Grand Unified Boot Loader (GRUB). See also boot loader.
Linux user group (LUG)
A group of Linux users who meet on a regular basis (usually monthly) to exchange information, attend presentations, and help one another.
liquid crystal display (LCD)
A type of flat-panel display that’s common on laptops and is becoming more common on desktop systems. LCDs are lightweight and consume little electricity, but they’re more expensive to produce than are conventional monitors.
load average
A measure of the demands for CPU time by running programs. A load average of 0 means no demand for CPU time; 1 represents a single program placing constant demand on the CPU; and values higher than 1 represent multiple programs competing for CPU time. The top and uptime commands both provide load average information.
LocalTalk
A type of network hardware common on older Macintosh networks. lock file A file that’s created by an application to indicate that some resource (such as an RS-232 serial port) is in use, in order to prevent conflicts over accessing that resource.
log file
A text file maintained by the system as a whole or an individual server, in which important system events are recorded. Log files typically include information on user logins, server access attempts, and automatic routine maintenance.
log rotation
A routine maintenance process in which the computer suspends recording data in log files, renames them, and opens new log files. This process keeps log files available for a time, but ultimately it deletes them, preventing them from growing to consume all available disk space.
logical block addressing (LBA)
See linear block addressing (LBA).
logical partition
A type of x86 hard disk partition that has no entry in the primary partition table. Instead, logical partitions are carried within an extended partition.
loop
A programming or scripting construct enabling multiple executions of a segment of code. Typically terminated through the use of a conditional expression.
LUG
See Linux user group (LUG).

M
MAC address
See Media Access Control (MAC) address.
machine name
The portion of a hostname that identifies a computer on a network, as opposed to the network as a whole (for instance, gingko is the machine name portion of gingkgo.example.com). The machine name is sometimes used in reference to the entire hostname.
main memory
The main type of RAM in a computer, as opposed to cache memory.
major version number
The first number in a program’s version number. For instance, if a program’s version number is 1.2.3, the major version number is 1.
master
One of two ATA devices on a single ATA chain. The master device gets a lower Linux device letter than the slave device does.
Master Boot Record (MBR)
The first sector of a hard disk. The MBR contains code that the BIOS runs during the boot process, as well as the primary partition table.
MBR
See Master Boot Record (MBR).
MD5 password
See Message Digest 5 (MD5) password.
Media Access Control (MAC) address
A low-level address associated with a piece of network hardware. The MAC address is usually stored on the hardware itself, and it is used for local network addressing only. Addressing between networks (such as on the Internet) uses higher-level addresses, such as an IP address.
Message Digest 5 (MD5) password
A password that’s stored using the Message Digest 5 (MD5) hash.
mode
The permissions of a file. In conjunction with the file’s owner and group, the mode determines who may access a file and in what ways.
mode lines
Definition of the timings required by particular video resolutions running at particular refresh rates.
modem
This word is short for “modulator/demodulator.” It’s a device for transferring digital data over an analog transmission medium. Traditionally, the analog transmission medium has been the normal telephone network, but the word “modem” is increasingly being applied to devices used for broadband Internet access as well.
module
A kernel driver or other kernel component that’s stored in a separate file. Linux can load modules on demand or on command, saving RAM when modules aren’t in use and reducing the size of the kernel.
motherboard
The main circuit board in a computer. The CPU, RAM, and add-on cards typically plug directly into the motherboard, although some designs place some of these components on extender cards. The motherboard is also sometimes referred to as the mainboard or the system board.
mount point
A directory in a filesystem (meaning 2) at which a new filesystem (meaning 1) is attached. Mount points are typically empty directories before their host filesystems are mounted.
mounted
A state in which a filesystem (meaning 1) is attached to its associated mount point.

N
NetBEUI
A network stack similar to AppleTalk or TCP/IP in broad outline, but used primarily on local networks.
NetBIOS
Networking protocols that are often used in conjunction with NetBEUI or TCP/IP. NetBIOS underlies the SMB/CIFS file sharing protocols used by Microsoft Windows and implemented in Linux by Samba.
netmask
See network mask.
Network Filesystem (NFS)
A file sharing protocol used among Linux and Unix computers.
Network Information Service (NIS)
A network protocol that enables computers to share simple database files. Commonly used to provide centralized login authentication and as a substitute for DNS on small networks.
network mask
A bit pattern that identifies the portion of an IP address that’s an entire network and the part that identifies a computer on that network. The pattern may be expressed as 4 decimal bytes separated by dots (as in 255.255.255.0) or as the number of network bits following an IP address and a slash (as in 192.168.45.203/24). The network mask is also referred to as the netmask or subnet mask.
Network Time Protocol (NTP)
A protocol that enables computers to communicate the time with a precision of well under a second. You can use NTP to ensure that all the computers on a network have consistent clock settings and that these settings are accurate with reference to an off-site atomic clock.
NFS
See Network Filesystem (NFS).
NIS
See Network Information Service (NIS).
non-rewinding tape device
A tape device file that does not cause the tape to automatically rewind when the job is done. The non-rewinding nature of the device is indicated by the presence of a leading n in the device filename, such as /dev/nst0 or /dev/nht0. This file is used for handling multiple backups on a single tape. See also rewinding tape device.
notebook computer
See laptop computer.
NTP
See Network Time Protocol (NTP).

O
open mail relay
An SMTP mail server that’s configured to relay mail from anywhere to anywhere. Open mail relays are frequently abused by spammers to obfuscate their messages’ true origins.
open source
A type of software that’s freely redistributable, is available with source code, and may be modified by anybody wanting to do so. (There is a formal 10-point definition, which is summarized in Chapter 1, “Planning the Implementation.”)
Open System Interconnection (OSI) model
A means of describing network stacks, such as TCP/IP, NetBEUI, or AppleTalk. In the OSI model, such stacks are broken down into several layers, each of which communicates directly with the layers above and below it.
OSI model
See Open Systems Interconnection (OSI) model.

P
package database
See installed file database.
packet
A limited amount of data packaged together with an envelope and sent over a network. See also envelope.
packet filter
A type of firewall that operates on individual network data packets, passing or rejecting packets based on information such as the source and destination addresses and ports.
pager
In X, this is a utility, window manager feature, or desktop environment feature that provides several virtual desktops. You can run separate programs in each virtual desktop and switch between them, thus minimizing desktop clutter.
parameter
An option passed to a program on a command line, or occasionally as part of a configuration file.
parent process
A relative term referring to the process that started another. For instance, if you launch a program from a bash shell, the bash shell process is the new program’s parent process.
partition
A contiguous part of a hard disk that’s set aside to hold a single filesystem (meaning 1). Also used as a verb to describe the process of creating partitions on a hard disk.
partition table
The disk data structure that describes the layout of partitions on a hard disk.
path
A colon-delimited list of directories in which program files may be found. (Similar lists define the locations of directories, fonts, and other file types.)
payload
The portion of a network data packet that contains the actual data to be transmitted, as opposed to the envelope.
PC Card
A type of expansion card that’s common on laptop computers. This interface is commonly used for Ethernet cards, modems, and storage devices. Also known as PCMCIA. A higher-speed variant is Cardbus.
PCI
See Peripheral Component Interconnect (PCI).
PCL
See Printer Control Language (PCL).
PCMCIA
See Personal Computer Memory Card International Association (PCMCIA).
peripheral
A device that connects to and is controlled by a computer. Many peripherals, such as Web cams and keyboards, are external to the computer’s main box. Some definitions include devices that reside within the computer’s main box, such as hard disks and CD-ROM drives.
Peripheral Component Interconnect (PCI)
An expansion bus capable of much higher speeds than the older ISA bus. Modern computers usually include several PCI slots.
permission bit
A single bit used to define whether a given user or class of users has a particular type of access to a file. For instance, the owner’s execute permission bit determines whether the owner can run a file as a program. The permission bits together comprise the file’s mode.
Personal Computer Memory Card International Association (PCMCIA)
1. An earlier name for PC Card and Cardbus (but one that’s still used by many Linux utilities and documentation). 2. The trade group that developed the PC Card and Cardbus standards.
PIO
See Programmed Input/Output (PIO).
pipe
A method of executing two programs so that one program’s output serves as the second program’s input. Piped programs are separated in a Linux shell by a vertical bar (|).
pipeline
See pipe.
plug-and-play (PnP)
A term applied to hardware (especially ISA cards, and sometimes PCI cards) to denote that no hardware configuration is required, especially via jumpers. PnP devices sometimes require special configuration via Linux files, however.
PnP
See plug-and-play (PnP).
Point-to-Point Protocol (PPP)
A method of initiating a TCP/IP connection between two computers over an RS-232 serial line or modem.
port number
A number that identifies the program from which a data packet comes or to which it’s addressed. When a program initiates a network connection, it associates itself with one or more ports, enabling other systems to uniquely address data.
Post Office Protocol (POP)
A mail server protocol in which the recipient initiates transfer of messages. POP differs from IMAP in that POP doesn’t provide any means for the recipient to organize and store messages on the server.
PostScript
A programming language used on many high-end printers. PostScript is optimized for displaying text and graphics on the printed page. The Linux program Ghostscript converts from PostScript to bitmapped formats understood by many low-end and mid-range printers.
PostScript Printer Definition (PPD)
A configuration file that provides information on a printer’s capabilities—its paper size, whether it prints in color, and so on.
power-on self-test (POST)
A series of hardware checks performed by an x86 computer when it boots, to guarantee minimal functionality.
POST
See power-on self-test (POST).
PPD
See PostScript Printer Definition (PPD).
PPP
See Point-to-Point Protocol (PPP).
primary boot loader
The first boot loader run by the BIOS.
primary partition
A type of x86 partition that’s defined in a data structure contained in the hard disk’s partition table in the MBR. An x86 computer can host only four primary partitions per hard disk.
print queue
A storage place for files waiting to be printed.
Printer Control Language (PCL)
A language developed by Hewlett-Packard for controlling printers. (Many of Hewlett-Packard’s competitors now use PCL.) PCL is most commonly found on mid-range laser printers, but some inkjet printers also support the language. Several PCL variants exist, the most common ranging from PCL 3 to PCL 6.
printer driver
A software component that converts printable data generated by an application into a format that’s suitable for a specific model of printer. In Linux, printer drivers usually reside in Ghostscript, but some applications include a selection of printer drivers to print directly to various printers.
process
A piece of code that’s maintained and run by the Linux kernel separately from other pieces of code. Most processes correspond to programs that are running. One program can be run multiple times, resulting in several processes.
Programmed Input/Output (PIO)
A method of data transfer between memory and expansion cards in which the CPU actively performs the transfer. PIO tends to consume much more CPU time than DMA does.
proprietary
A protocol, file format, hardware design, program, or other technology that uses features unique to the technology in question. Proprietary technologies are often difficult to handle in an open source environment because they’re often poorly documented or because developers must sign nondisclosure agreements before they can obtain the documentation.
protocol stack
A collection of drivers, kernel procedures, and other software that implements a standard means of communicating across a network. Two computers must support compatible protocol stacks to communicate. The most popular protocol stack today is TCP/IP.
public domain
Copyrighted works (software, music, books, etc.) that have either outlived their copyrights or for which the authors have removed the copyrights. (No software is yet old enough to have outlived its copyright.) Public domain software may be modified and redistributed by anybody who wants to do so.
pull mail protocol
A mail protocol in which the recipient initiates the transfer. Examples include POP and IMAP.
push mail protocol
A mail protocol in which the sender initiates the transfer. SMTP is the most common push mail protocol.

R
RAMbus Dynamic RAM (RDRAM)
A type of RAM used in RIMMs.
random access
A method of access to a storage device (RAM, hard disk, etc.) in which information may be stored or retrieved in an arbitrary order with little or no speed penalty. See also sequential access.
RDRAM
See RAMbus Dynamic RAM (RDRAM).
RDRAM Inline Memory Module (RIMM)
A small circuit board that holds memory chips configured as RDRAM. Used in some Pentium II and later computers.
redirection
A procedure in which a program’s standard output is sent to a file rather than to the screen, or in which the program’s standard input is obtained from a file rather than from the keyboard. See also standard input and standard output.
regular expression
A method of matching textual information that may vary in important ways but that contains commonalities. The regular expression captures the commonalities and uses various types of wildcards to match variable information.
ReiserFS
One of several journaling filesystems for Linux. ReiserFS was developed from scratch for Linux.
relative directory name
A directory name that’s specified relative to the current directory. Relative directory names often include the parent specification (..), which indicates the current directory’s parent.
release kernel
A kernel with an even second number, such as 2.4.22 or 2.6.1. Release kernels should have few bugs, but they sometimes lack drivers for the latest hardware. See also development kernel.
release number
See build number.
remote login server
A type of server that enables individuals at distant locations to use a computer. Examples include Telnet, SSH, and XDM.
Request for Comments (RFC)
An Internet standards document. RFCs define how protocols like Telnet and SMTP operate, thus enabling tools developed by different companies or individuals to interoperate.
rewinding tape device
A tape device file that causes the tape to automatically rewind when the access is complete. The rewinding nature of the device is indicated by the lack of a leading n in the device filename, such as /dev/st0 or /dev/ht0. This file is often used for reading or writing the first backup on a tape. See also non-rewinding tape device.
RFC
See Request for Comments (RFC).
ribbon cable
A type of cable in which insulated wires are laid side by side, typically bound together by plastic. The result is a wide but thin multiconductor cable that resembles a ribbon.
RIMM
See RDRAM Inline Memory Module (RIMM).
root directory
The directory that forms the base of a Linux filesystem (meaning 2). All other directories are accessible from the root directory, either directly or via intermediate directories.
root filesystem
The filesystem (meaning 1) on a Linux system that corresponds to the root directory, and often several directories based on it.
root partition
The partition associated with the root filesystem.
router
A computer that transfers data between networks. See also gateway.
RPM
See RPM Package Manager (RPM).
RPM Package Manager (RPM)
A package file format designed by Red Hat but now used on many other distributions as well. RPM features excellent dependency tracking and easy installation and removal procedures.
runlevel
A number associated with a particular set of services that are being run. Changing runlevels changes services or can shut down or restart the computer.

S
Samba Web Administration Tool (SWAT)
A server that allows administrators to configure Samba servers from another computer by using an ordinary Web browser.
SAS
See Serial Attached SCSI (SAS).
SATA
See Serial ATA (SATA).
script kiddies
Individuals with little knowledge or skill, who break into computers using scripts created by others. Such break-ins often leave obvious traces, and script kiddies frequently cause collateral damage that produces system instability.
scripting language
Interpreted computer programming language designed for writing small utilities to automate simple but repetitive tasks. Examples include Perl, Python, Tcl, and shell scripting languages like those used by bash and tcsh.
SCSI
See Small Computer System Interface (SCSI).
Second Extended Filesystem (ext2 or ext2fs)
The most common filesystem (meaning 1) in Linux from the mid-1990s through approximately 2001.
secondary boot loader
A boot loader that’s launched by another boot loader.
Secure Shell (SSH)
A remote login protocol and program that uses encryption to ensure that intercepted data packets cannot be used by an interloper. Generally regarded as the successor to Telnet on Linux systems.
Sequenced Packet Exchange (SPX)
Part of the Novell networking stack, along with IPX.
sequential access
A method of accessing a storage medium that requires reading or writing data in a specific order. The most common example is a tape; to read data at the end of a tape, you must wind past the interceding data. See also random access.
Serial ATA (SATA)
A type of ATA interface that uses serial data transfer rather than the parallel data transfers used in older forms of ATA.
Serial Attached SCSI (SAS)
A type of SCSI interface that uses serial data transfer rather than the parallel data transfers used in older forms of SCSI.
server
1. A program that responds to data transfer requests using networking protocols. 2. A computer that runs one or more server programs.
Server Message Block (SMB)
A file sharing protocol common on Windows-dominated networks. SMB is implemented in Linux via the Samba suite. Also known as the Common Internet Filesystem (CIFS).
server program
See server, meaning 1.
set group ID (SGID)
A special type of file permission used on program files to make the program run with the permissions of its group. (Normally, the user’s group permissions are used.)
set user ID (SUID)
A special type of file permission used on program files to make the program run with the permissions of its owner, rather than those of the user who runs the program.
SGID
See set group ID (SGID).
shadow password
A method of storing encrypted passwords separately from most other account information. This allows the passwords to reside in a file with tighter security options than the rest of the account information, which improves security when compared to storing all the account information in one file with looser permissions.
shareable files
Files that might reasonably be shared with another computer. These include users’ data files and standard program files.
shareware
Software that’s freely redistributable but for which the author requests payment.
shell
A program that provides users with the ability to run programs, manipulate files, and so on.
shell script
A program written in a language that’s built into a shell.
signal
In reference to processes, a signal is a code that the kernel uses to control the termination of the process or to tell it to perform some task. Signals can be used to kill processes.
SIMM
See Single Inline Memory Module (SIMM).
Simple Mail Transfer Protocol (SMTP)
The most common push mail protocol on the Internet. SMTP is implemented in Linux by servers such as sendmail, Postfix, Exim, and qmail.
Simple Network Management Protocol (SNMP)
A protocol for reporting on the status of a computer over a network, or adjusting a computer’s settings remotely.
Single Inline Memory Module (SIMM)
A small circuit board that holds memory chips for easy installation in a computer. SIMMs come in 30- and 72-pin varieties. They were used on 80386, 80486, many Pentium-level, and a few Pentium II systems. They are still used in many peripherals such as printers.
slave
The second of two possible devices on an ATA chain. The slave device has a higher Linux device letter than the master device does.
Small Computer System Interface (SCSI)
An interface standard for hard disks, CD-ROM drives, tape drives, scanners, and other devices.
Small Outline (SO) DIMM
A type of DIMM that’s physically smaller than conventional DIMMs. Most commonly used to add RAM to notebook computers.
smart filter
A program, run as part of a print queue, that determines the type of a file and passes it through appropriate programs to convert it to a format that the printer can handle.
SMB
See Server Message Block (SMB).
SMTP
See Simple Mail Transfer Protocol (SMTP).
SNMP
See Simple Network Management Protocol (SNMP).
SO DIMM
See Small Outline (SO) DIMM.
soft link
A type of file that refers to another file on the computer. When a program tries to access a soft link, Linux passes the contents of the linked-to file to the program. If the linked-to program is deleted, the soft link stops working. Deleting the soft link doesn’t affect the original file. Also referred to as a symbolic link. See also hard link.
software modem
Modems that implement key functionality in software that must be run by the host computer. These modems require special drivers, which are uncommon in Linux.
software rot
Deterioration of software caused by filesystem errors, accidental overwriting of software files, and so on.
source package
A file that contains complete source code for a program. The package may be compiled into a binary package, which can then be installed on the computer.
source RPM
A type of source package that uses the RPM file format.
spam
Unsolicited bulk e-mail.
spawn
The action of one process starting another.
spool directory
A directory in which print jobs, mail, or other files wait to be processed. Spool directories are maintained by specific programs, such as the printing system or SMTP mail server.
SPX
See Sequenced Packet Exchange (SPX).
SSH
See Secure Shell (SSH).
stable kernel
See release kernel.
standard input
The default method of delivering input to a program. It normally corresponds to the keyboard at which you type.
standard output
The default method of delivering purely text-based information from a program to the user. It normally corresponds to a text-mode screen, xterm window, or the like.
standoff
A small hardware component that separates circuit boards from each other or from the case to which a board is mounted.
startup script
A script that controls part of the Linux boot process.
static files
Files that don’t change except through direct intervention of the system administrator. Examples include system binary and configuration files. Static files may be stored on partitions that are mounted read-only.
statically linked
Programs that incorporate library code into their finished binary executables. Statically linked programs are larger and use more RAM than their dynamically linked counterparts, but they don’t depend on the underlying library existing on the computer.
sticky bit
A special file permission bit that’s most commonly used on directories. When set, only a file’s owner may delete the file, even if the directory in which it resides can be modified by others.
subdomain
A subdivision of a domain. A subdomain may contain computers or subdomains of its own.
subnet mask
See network mask.
SUID
See set user ID (SUID).
super server
A server that listens for network connections intended for other servers and launches those servers. Examples on Linux are inetd and xinetd.
superuser
A user with extraordinary rights to manipulate critical files on the computer. The superuser’s username is normally root.
swap file
A disk file configured to be used as swap space.
swap partition
A disk partition configured to be used as swap space.
swap space
Disk space used as an extension to a computer’s RAM. Swap space enables a system to run more programs or to process larger data sets than would otherwise be possible.
SWAT
See Samba Web Administration Tool (SWAT).
switch
A type of network hardware that serves as a central exchange point in a network. Each computer has a cable that links to the switch, so all data pass through the switch. A switch usually sends data only to the computer to which it’s addressed. See also hub.
symbolic link
See soft link.
system cron job
A cron job that handles system-wide maintenance tasks, like log rotation or deletion of unused files from /tmp. See also user cron job.
System V (SysV)
A form of AT&T Unix that defined many of the standards used on modern Unix systems and Unix clones, such as Linux.
SysV
See System V (SysV).
SysV startup script
A type of startup script that follows the System V startup standards. Such a script starts one service or related set of services.

T
tarball
A package file format based on the tar utility. Tarballs are easy to create and are readable on any version of Linux, or most non-Linux systems. They contain no dependency information and are not easy to remove once installed, however.
TCP/IP
See Transmission Control Protocol/Internet Protocol (TCP/IP).
Telnet
A protocol used for performing remote text-based logins to a computer. Telnet is a poor choice for connections over the Internet because it passes all data, including passwords, in an unencrypted form, which is a security risk. See also Secure Shell (SSH).
terminal program
A program that’s used to initiate a simple text-mode connection between two computers, especially via a modem or RS-232 serial connection.
text editor
A program for editing text files on a computer.
Third Extended Filesystem (ext3 or ext3fs)
A variant of the Second Extended Filesystem (ext2 or ext2fs) that adds a journal to reduce startup times after a power failure or system crash. See also journaling filesystem.
time server
A computer that runs a server that delivers an accurate time signal to other computers. See also Network Time Protocol (NTP).
title bar
A part of a window, typically displayed at the top of the window, that displays the program’s name and enables users to drag the window around the screen. The title bar is sometimes also called the drag bar.
Token Ring
A type of network hardware that supports speeds of up to 16Mbps or 100Mbps on twisted-pair cabling.
Transmission Control Protocol/Internet Protocol (TCP/IP)
A very popular network stack, and the one on which the Internet is built.

U
UID
See user ID (UID).
umask
See user mask (umask).
Universal Serial Bus (USB)
A type of interface for low- to medium-speed external devices, such as keyboards, mice, cameras, modems, scanners, and removable disk drives. Linux added USB support with the 2.2.18 and 2.4.x kernels.
unshareable files
Files that are not reasonably shared with another computer. The most common example is system configuration files.
USB
See Universal Serial Bus (USB).
user
An individual who has an account on a computer. This term is sometimes used as a synonym for account.
user cron job
A cron job created by an individual user to handle tasks for that user, such as running a CPU-intensive job late at night when other users won’t be disturbed by the job’s CPU demands. See also system cron job.
user ID (UID)
A number associated with a particular account. Linux uses the UID internally for most operations, and it converts to the associated username only when interacting with people.
user mask (umask)
A bit pattern representing the permission bits that are to be removed from files created from a process.
user private group
A group strategy in which every user is associated with a unique group. Users may then add other users to their groups in order to control access to files on an individual basis.
username
The name associated with an account, such as theo or miranda. Linux usernames are case-sensitive and may be from 1 to 32 characters in length, although they’re usually entirely lowercase and no longer than 8 characters.
UTC
See Coordinated Universal Time (UTC) and Greenwich Mean Time (GMT).

V
variable
In computer programming or scripting, a “placeholder” for data. Variables may change from one run of a program to another, or even during a single run of a program.
variable files
Files that may vary without direct intervention by the system administrator. Examples include users’ data files and log files. Variable files must be stored on partitions mounted for read/write access.
virtual filesystem
A filesystem that doesn’t correspond to a real disk partition, removable disk, or network export. A common example is /proc, which provides access to information on the computer’s hardware.
virtual terminal (VT)
One of several independent text-mode or GUI screens maintained by Linux. You can log in multiple times and run different programs in each VT, then switch between them by pressing Ctrl+Alt+Fn, where n is the terminal number (such as Ctrl+Alt+F4 to switch to VT 4).
VT
See virtual terminal (VT).

W
widget
A GUI control, such as a button to be pressed.
widget set
A set of programming tools that provide useful GUI elements, such as buttons, menu bars, and dialog boxes. A widget set is used by programmers to implement common GUI features.
wildcard
A character or group of characters that, when used in a shell as part of a filename, match more than one character. For instance, b??k matches book, back, and buck, among many other possibilities.
window manager
A program that provides decorative and functional additions to the plain windows provided by X. Linux supports dozens of window managers.
workstation
A type of computer that’s used primarily by one individual at a time to perform productivity tasks, such as drafting, scientific or engineering simulations, or writing. See also desktop computer.

X
X
Shortened form of X Window System.
X client
A program that uses X to interact with the user.
X Display Manager (XDM)
A program that directly accepts either remote or local logins to a computer using X without involving a text-based login protocol like Telnet or SSH. Some Linux distributions use the original XDM program, but other distributions use variants such as the GNOME Display Manager (GDM) or KDE Display Manager (KDM), both of which provide additional features.
XDM
See X Display Manager (XDM).
XFS
See Extent Filesystem (XFS).
X server
A program that implements X for a computer; especially the component that interacts most directly with the video hardware.
X Window System
The GUI environment for Linux. The X Window System is a network-aware, cross-platform GUI that relies on several additional components (such as a window manager and widget sets) to provide a complete GUI experience.
XFree86
A set of X servers and related utilities for Linux and other OSs.
xterm
A program that enables the running of text-mode programs in X. As used in this book, xterm refers both to the original xterm program and to various programs that provide similar functionality.

Z
zombie
A process that’s been killed, but for which the parent hasn’t removed the process table entries. The zombie shows up in ps listings, but it doesn’t normally consume CPU time or memory. Zombies cannot be killed with kill; you must kill the parent process to remove the zombie.