A version of Unix from the IBM Corporation.
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.
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).
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.
The character `. Not the same as a single quote ('
). Used in pairs, does command
substitution.
The character \
. In Unix, it changes
the interpretation of the next character in some way. See
also
Section 27.18.
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.
A directory for storing executable programs. See also Section 7.4.
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.
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.
How a program with poor design or other errors can be described.
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.
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.
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
(&&
).
A character you make by holding down the keyboard CTRL (Control) key while pressing a letter or another character key.
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.
See Section 3.3.
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.
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.
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.
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.
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.
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.
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.
A heated or irrational statement.
A group that develops the freely available GNU software. Their address is: 675 Massachusetts Avenue, Cambridge, MA 02139 USA.
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's Not Unix, a system of software planned eventually to be a freely available substitute for Unix.
A "catch," difficulty, or surprise in the way that a program works.
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.
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.
Input/output of text from software or hardware.
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.
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.
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.
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.
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.
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.
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.
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.
See the "dot (.) files (.cshrc, .login, .profile)" entry in this glossary and Section 3.4.
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.
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."
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.
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.
Empty, zero-length, with no characters — for example, a null string. This is not the same as an ASCII NUL character.
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.
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.
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.
To split into pieces and interpret.
A portion of a disk drive. Unix disk drives typically have eight partitions, although not all are in use.
See Section 35.6.
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.
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 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.
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.
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.
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.
See Section 3.4.
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.
A way to write out program text, structured like a program, without using the actual programming language. Pseudo-code usually explains a program.
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.
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.
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.
Small Computer Systems Interface, a standard interface for disk and tape devices now used on many Unix (and non-Unix) systems.
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.
A program that reads and interprets command lines and also runs programs. See also Section 27.3.
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 ($
).
The character /
. It separates elements
in a pathname. See also
Section 1.16.
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.
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.
A sequence of characters.
A directory within a directory. See also Section 1.16 and Section 7.7.
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."
The lowest-level access to the Unix operating system. Everything else in Unix is built on system calls.
A version of Unix from AT&T. The most recent Release of System V is Release 4, known as V.4 or SVR4.
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.
Stands for terminal capabilities, an early (and still common) way to describe terminals to Unix.
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.
A newer way to describe terminal capabilities to Unix.
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."
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.
To cut, to shorten — for example, "truncate a file after line 10" means to remove all lines after line 10.
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.
A popular computer operating system from the Digital Equipment Corporation.
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.
A series of one or more space or TAB characters.
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).
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.
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.