Glossary

Contained here is a set of brief definitions of important terms and acronyms used in this book.

C

Context

The set of CPU register values and other data, that describe the state of a process.

CPU

Abbreviation of central processing unit. One or more CPUs give a computer the ability to execute software such as operating systems and application programs. Modern systems may use several auxiliary processors to reduce the load on the CPU(s).

G

Gateway

A gateway refers to the system that interconnects networks and forwards IP datagrams among them.

I

I/O

Abbreviation of input/output. The transfer of data to and from peripheral devices such as hard disks, tape drives, the keyboard, and the screen.

K

Kernel

The core of any operating system which is started by the boot loader. Its job is to provide an environment in which other programs can run, provide hardware services to them (like supplying memory and access to space on disks), schedule their execution and allow multiple processes to coexist.

Kernel Mode

The state of a CPU when the kernel needs to ensure that it has privileged access to its data and physical devices.

Kernel Space

In Linux there are two basic memory spaces, kernel space and user space. Kernel space is the memory region where the kernel modules or executables reside. This is done so that programs in user space cannot directly manipulate kernel space functions and variables. Obviously the kernel needs to get/put blocks of data from userspace when a system call is performed.

P

Page

A fixed-size (4KB) block of memory.

PID

See: Process ID

Process ID
(PID)

A unique number that is assigned to every process running on a Unix system.

Ptrace

A system call that provides a means by which a parent process may observe and control the execution of another process, and examine and change its core image and registers. it is primarily used to implement breakpoint debugging and system call tracing.

R

Region

A region groups a process' pages by their function. A process has at least three regions for its data, stack, and text.

S

SMP

See: Symmetrical Multi Processing

Stack

A list of temporary data used by a program to handle function calls.

Symmetrical Multi Processing
(SMP)

Symmetrical multiprocessing is a parallel computer architecture in which multiple processors run a single copy of the operating system and share the memory and other resources of one computer. All the processors have equal access to memory, I/O and external interrupts.

T

TAP
(TAP)

It is a virtual ethernet network device. TAP driver was designed as low level kernel support for ethernet tunneling.

TUN
(TUN)

It is a virtual point-to-point network device. TUN driver was designed as low level kernel support for IP tunneling.

U

UML

See: User Mode Linux

User Mode Linux
(UML)

A user space implementation of a virtual machine, which consists of a Linux kernel running in user-mode, as a set of Linux processes. Useful for kernel development and debugging, virtual networking, etc.

UID

See: User ID

User ID
(UID)

An identification number stored in systems /etc/passwd file, used to identify any user in a UNIX system as well as any files owned by that user.

User Mode

The state of a CPU when it is executing the code of a user program that accesses its own data space in memory.

User Space

In Linux there are two basic memory spaces, kernel space and user space. User space is the memory region where the user applications or executables reside and run. A user space program can access kernel space code only through a system call.

V

Virtual Memory

A method of expanding the amount of available memory by combining physical memory (RAM) with cheaper and slower storage such as a swap area on a hard disk.