# Glossary

AIX
  A version of Unix from the IBM Corporation.

argument
  Zero or more characters passed to a program or function as a single unit. The shell breaks a command line into arguments by cutting it at unquoted whitespace.

array
  An ordered collection of data items. An array has a single overall name; each item in it is called an element or member. For instance, the C shell stores its command search path in an array named path. The first array member is named `$path[1]`, the second is `$path[2]`, and so on. Some arrays are indexed from zero (e.g., C, Perl).

ASCII text file
  Formally, a text file containing only ASCII characters. More commonly (in the U.S., at least), a file containing text that's printable, viewable, and has no "binary" (non-ASCII) characters. ASCII characters use only seven of the bits in a (8-bit) byte.

backquote
  The character `. Not the same as a single quote (`'`). Used in pairs, does command substitution.

backslash
  The character `\`. In Unix, it changes the interpretation of the next character in some way. See also Section 27.18.

batch queue
  A mechanism for sequencing large jobs. A batch queue receives job requests from users. It then executes the jobs one at a time. Batch queues go back to the earliest days of data processing. They are an extremely effective, if uncomfortable, way to manage system load.

bin directory
  A directory for storing executable programs. See also Section 7.4.

binaries, binary file
  A file with nontext characters. Often, a directly executable file that can be run as a program. Binary characters use all the bits in a (8-bit) byte.

block size
  The largest amount of data that a Unix filesystem will always allocate contiguously. For example, if a filesystem's block size is 8 KB, files of size up to 8 KB are always physically contiguous (i.e., in one place), rather than spread across the disk. Files that are larger than the filesystem's block size may be fragmented: 8 KB pieces of the file are located in different places on the disk. Fragmentation limits filesystem performance. Note that the filesystem block size is different from a disk's physical block size, which is almost always 512 bytes.

brain-damaged
  How a program with poor design or other errors can be described.

BSD Unix
  The versions of Unix developed at the University of California, Berkeley. BSD (Berkeley Software Distribution) Unix has been dominant in academia and has historically had some features more advanced than System V: BSD introduced virtual memory, TCP/IP networking, and the "fast filesystem" to the Unix community. It is also the system on which Sun OS was based. System V Release 4 and some vendors' earlier System V versions also have Berkeley features.

buffer
  A temporary storage place such as a file or an area of the computer's memory. Most text editors store the file you're editing in a buffer; when you're done editing, the edited buffer is copied over (i.e., replaces) the original file.

command line
  The text you type at a shell prompt. A Unix shell reads the command line, parses it to find the command name (which is usually the first word on the command line, though it can be a variable assignment), and executes the command. A command line may have more than one command joined by operators such as semicolons (`;`), pipes (`|`), or doubleampersands (`&&`).

control character
  A character you make by holding down the keyboard CTRL (Control) key while pressing a letter or another character key.

core file, core dump
  The file made when a program terminates abnormally. The core file can be used for debugging. This comes from ancient "core" memory, where the contents of memory were stored in a magnetized ferrite core. See also Section 15.4.

.cshrc file
  See Section 3.3.

daemon
  A program that is invisible to users but provides important system services. Daemons manage everything from paging to networking to notification of incoming mail. See also Section 1.10.

data switch
  Hardware that is something like a telephone switchboard. A data switch connects many terminals to two or more computers. The user, on a terminal or through a modem, tells the data switch to which computer she wants a connection. A data switch is also called a terminal multiplexor. Computers without data switches usually have one terminal connected to each tty port; characteristics like the terminal type can be set in system files. Conversely, computers with data switches can't know in advance what sort of terminal is connected to each tty port.

default
  In a program that gives you more than one choice, the one you get by not choosing. The default is usually the most common choice. As an example, the default file for many Unix programs is the standard input. If you don't give a filename on the command line, a program will read its standard input.

dot (.) files (.cshrc, .login, .profile)
  Files that are read when you start a program (including when you log in and start a shell). These set up your environment and run any other Unix commands (for instance, tset). If your account uses the C shell, it will read .cshrc and .login. Accounts that use the Bourne shell and shells like it read .profile. See also Section 3.6.

double quote
  The `"` character. This isn't the same as two single quotes (`''`) together. The `"` is used around a part of a Unix command line where the shell should do variable and command substitution (and, on the C shell, history substitution), but no other interpretation. See also Section 27.12 and Section 27.13.

escape
  Using escape on a character or a string of characters is a way to change how it is interpreted. This can take away its special meaning, as in shell quoting; or it can add special meaning, as in terminal escape sequences.

flag
  In programming, a flag variable is set to signal that some condition has been met or that something should be done. For example, a flag can be set ("raised") if the user has entered something wrong; the program can test for this flag and not continue until the problem has been fixed.

flame
  A heated or irrational statement.

Free Software Foundation (FSF)
  A group that develops the freely available GNU software. Their address is: 675 Massachusetts Avenue, Cambridge, MA 02139 USA.

full-duplex
  Communications between a terminal and a computer where data flows in both directions at the same time. Half-duplex communications, where data flows in only one direction at a time, are unusual these days.

GNU
  Gnu's Not Unix, a system of software planned eventually to be a freely available substitute for Unix.

gotcha
  A "catch," difficulty, or surprise in the way that a program works.

hardcoded
  In general, a value that can't be changed. For example, in a shell script with the command `grep jane`, the value `jane` is hardcoded; grep will always search for jane. But in the command `grep $USER`, the text that grep searches for is not hardcoded; it's a variable value.

hash table
  Hashing data into the format of a hash table lets specially designed programs search for data quickly. A hash table assigns a special search code to each piece of data. For example, the C shell uses a hash table to locate commands more quickly; the rehash command rebuilds the hash table after you add a new command.

I/O
  Input/output of text from software or hardware.

inode
  A data structure that describes a file. Within any filesystem, the number of inodes, and hence the maximum number of files, is set when the filesystem is created.

i-number
  A Unix file has a name (for people to identify it) and an i-number (for Unix to identify it). Each file's i-number is stored in a directory, along with the filename, to let Unix find the file that you name.

job
  One Unix command. It is easy to be sloppy and use the terms job, process, and program interchangeably. I do it, and I'm sure you do, too. Within Unix documentation, though, the word "job" is usually used to mean one, and only one, command line. Note that one command line can be complex. For example:

  >     pic a.ms | tbl | eqn | troff -ms

  is one command, and hence one job, that is formed from four processes.

job number
  Shells with job control assign a job number to every command that is stopped or running in the background. You can use job numbers to refer to your own commands or groups of commands. Job numbers are generally easier to use than process IDs; they are much smaller (typically between 1 and 10) and therefore easier to remember. The C-shell jobs command displays job numbers. See also Section 23.2.

kernel
  The part of the Unix operating system that provides memory management, I/O services, and all other low-level services. The kernel is the "core" or "heart" of the operating system. See also Section 1.10.

kludge
  A program or a solution to a problem that isn't written carefully, doesn't work as well as it should, doesn't use good programming style, and so on.

library function
  Packages of system calls (and of other library functions) for programmers in C and other languages. In general (though not always), a library function is a "higher-level operation" than a system call.

load average
  A measure of how busy the CPU is. The load average is useful, though imprecise. It is defined as the average number of jobs in the run queue plus the average number of jobs that are blocked while waiting for disk I/O. The uptime command shows the load average.

.login file
  See the "dot (.) files (.cshrc, .login, .profile)" entry in this glossary and Section 3.4.

mode
  In Unix, an octal number that describes what access a file's owner, group, and others have to the file. See also Section 1.17.

modulo
  Think back to your fourth grade arithmetic. When you divide two numbers, you have a dividend (the number on top), a divisor (the number on the bottom), a quotient (the answer), and a remainder (what's left over). In computer science, this kind of division is very important. However, we're usually more interested in the remainder than in the quotient. When we're interested in the remainder, we call the operation a modulus (or modulo, or mod). For instance, one of the examples in your fourth grade arithmetic text might have been `13` ÷ `3 = 4` (with a remainder of 1). As computer users, we're more interested in `13 mod 3 = 1`. It's really the same operation, though. Modulo is also used in expressions like "modulo wildcards," which means "everything but wildcards."

NFS
  Network File System. NFS allows Unix systems and many non-Unix systems to share files via a TCP/IP network. Subject to certain security restrictions, systems are allowed complete access to another system's files. See also Section 1.21 and Section 44.9.

newline
  The character that marks the end of a line of text in most Unix files. (This is a convention, not a requirement.) Usually expressed as "\n" or LF.

null
  Empty, zero-length, with no characters -- for example, a null string. This is not the same as an ASCII NUL character.

octal number
  The base 8 numbering system. Octal numbers are made with the digits 0 through 7,and begin with O. For example, the decimal (base 10) number `12` is the same as the octal number `14`. ASCII character codes are often shown as octal numbers.

option switch
  Typed on a command line to modify the way that a Unix command works. Usually starts with a dash (`-`). The terms option and switch are more or less interchangeable. An option may have several settings, but a switch usually has two settings: on or off, enabled or disabled, yes or no, etc.

panic
  Unix jargon for a "crash." A panic is really a special kind of a crash. Panics occur when Unix detects some irreconcilable inconsistency in one of its internal data structures. The kernel throws up its hands and shuts the system down before any damage can be done. As it is going down, it prints a "panic" message on the console.

parse
  To split into pieces and interpret.

partition
  A portion of a disk drive. Unix disk drives typically have eight partitions, although not all are in use.

path, search
  See Section 35.6.

pipe
  A Unix mechanism for sending the output of one program directly to the input of another program, without using an intermediate file. All Unix systems support pipes. System V and Sun OS also provide "named pipes," which are FIFO (first-in/first-out) buffers that have names and can be accessed via the filesystem.

portable
  A program that's portable can be used on more than one version of Unix or with more than one version of a command.

POSIX
  POSIX is not an OS, but a standard for how Unix-like OSes should behave at various levels. As an effort to counter the balkanization of Unix from vendor to vendor, POSIX defines the ways in which Unix-like OSes should expose their interfaces, from the kernel up to program- and shell-argument level.

priority
  A number that determines how often the kernel will run a process. A higher-priority process will run more often -- and, therefore, will finish faster -- than a low-priority process.

process
  A lot of the time, a process is nothing more than another name for a program that is running on the system. But there is a more formal definition: a process is a single execution thread or a single stream of computer instructions. One job may be built from many different processes. For example, a command line with pipes starts two or more processes. See also Section 24.3.

process ID (PID)
  Unix assigns every process an ID number (called a PID) when it starts. See also Section 24.3. This number allows you to refer to a process at a later time. If you need to kill a runaway program, you refer to it by its process ID. The ps command displays process IDs.

.profile file
  See Section 3.4.

prompt
  How a program asks you for information: by printing a short string like `Delete afile?` to the terminal and waiting for a response. See also "shell prompt" in this glossary.

pseudo-code
  A way to write out program text, structured like a program, without using the actual programming language. Pseudo-code usually explains a program.

read-only filesystem
  Filesystems are usually set up to allow write access to users who have the proper permissions. The system administrator can mount a filesystem read-only; then no user can make changes to files there.

recursive
  A program or routine that re-executes itself or repeats an action over and over. For example, the find program moves through a directory tree recursively, doing something in each directory.

reverse video
  On a video display, reversed foreground and background colors or tones. Reverse video is used to highlight an area or to identify text to be used or modified. For instance, if text is usually shown with black letters on a white background, reverse video would have white letters on a black background.

SCSI
  Small Computer Systems Interface, a standard interface for disk and tape devices now used on many Unix (and non-Unix) systems.

search path
  A list of directories that the shell searches to find the program file you want to execute. See also Section 17.29 and Section 35.6.

shell
  A program that reads and interprets command lines and also runs programs. See also Section 27.3.

shell prompt
  A signal from a shell (when it's used interactively) that the shell is ready to read a command line. By default, the percent sign (`%`) is the default C-shell prompt and the dollar sign (`$`) is the default Bourne-shell prompt. The default bash-shell prompt is also the dollar sign (`$`).

slash
  The character `/`. It separates elements in a pathname. See also Section 1.16.

single quote
  The `'` character. This isn't the same as a backquote (`). The single quote is used around a part of a Unix command line where the shell should do no interpretation (except history substitution in the C shell). See also Section 27.12 and Section 27.13.

special file
  An entity in the filesystem that accesses I/O devices. There is a special file for every terminal, every network controller, every partition of every disk drive, and every possible way of accessing every tape drive. See also Section 1.19.

string
  A sequence of characters.

subdirectory
  A directory within a directory. See also Section 1.16 and Section 7.7.

swapping
  A technique that the Unix kernel uses to clean up physical memory. The kernel moves pages from memory to disk and then reassigns the memory to some other function. Processes that have been idle for more than a certain period of time may be removed from memory to save space. Swapping is also used to satisfy extreme memory shortages. When the system is extremely short of memory, active processes may be "swapped out."

system call
  The lowest-level access to the Unix operating system. Everything else in Unix is built on system calls.

System V Unix
  A version of Unix from AT&T. The most recent Release of System V is Release 4, known as V.4 or SVR4.

TCP/IP
  Transmission Control Protocol/Internet Protocol. A network protocol that is commonly used for communications via an Ethernet. TCP/IP is also called the "Internet protocol." It is also common to use TCP/IP over leased lines for long-distance communications.

termcap
  Stands for terminal capabilities, an early (and still common) way to describe terminals to Unix.

terminal emulator
  A program that makes a computer display emulate (act like) a terminal. For example, many terminal-emulator programs emulate the Digital Equipment Corporation VT100 terminal.

terminfo
  A newer way to describe terminal capabilities to Unix.

the Net
  A term for two particular networks: Usenet and Internet. For instance, "I read it on the Net" or "You can get that file on the Net."

timestamp
  The Unix filesystem stores the times that each file was last modified, accessed, or had a change to its inode. These times -- especially the modification time -- are often called timestamps.

truncate
  To cut, to shorten -- for example, "truncate a file after line 10" means to remove all lines after line 10.

uuencode, uudecode
  Utilities that encode files with binary (8-bit) characters into an ASCII (7-bit) format and decode them back into the original binary format. This is used for transferring data across communications links that can't transfer binary (8-bit) data. See also Section 39.2.

VAX/VMS
  A popular computer operating system from the Digital Equipment Corporation.

wedged
  A terminal or program is wedged when it's "frozen" or "stuck." The normal activity stops and often can't be restarted without resetting the terminal or killing the program.

whitespace
  A series of one or more space or TAB characters.

word
  Similar to a word in a spoken language like English, a word is a unit made up of one or more characters. But unlike English, words in Unix can contain whitespace; they can also have no characters (a zero-length word).

XENIX
  One of the first versions of Unix to run on IBM PCs, and one of the few that will run on 80286 systems. XENIX descends from Version 7 Unix, a version developed by AT&T in the late 1970s. It has many resemblances to BSD Unix. Over time, XENIX has been rewritten as a variant of System V.2.

zombies
  Dead processes that have not yet been deleted from the process table. Zombies normally disappear almost immediately. However, at times it is impossible to delete a zombie from the process table, so it remains there (and in your ps output) until you reboot. Aside from their slot in the process table, zombies don't require any of the system's resources. See also Section 24.20.

Copyright © 2003 O'Reilly & Associates. All rights reserved.