Glossary

alignment

The placement of a data item in memory. For a data item to be aligned, its lowest-addressed byte must reside at an address that is a multiple of the size of the data item (in bytes).

API

Application programming interface.

argument

See parameter.

atomicity

A type of serialization that refers to the indivisibility of a small number of actions, such as those occurring during the execution of a single instruction or a small number of instructions.

attribute table

An array of the cfg_subsys_attr_t data structure, where each instance of cfg_subsys_attr_t represents one table entry defining some data item for the kernel module.

boot timeline

The series of events and dispatch points that occur as the system boots. For example, at dispatch point CFG_PT_VM_AVAIL virtual memory is available. See also dispatch point.

class/port driver

The class/port driver comprises two drivers. The class driver supports user interfaces while the port driver supports the hardware and handles interrupts. The driver model is always made of more than one module and it can have multiple class drivers, multiple port drivers, and some common code in a middle layer. The structure of this driver eliminates code duplication.

complex lock

A mechanism for protecting resources in an SMP environment. A complex lock achieves the same result as a simple lock but is used when there are blocking conditions. Routines that implement complex locks synchronize access to kernel data between multiple kernel threads. See also simple lock.

device driver

A kernel module that supports one or more hardware components. There are two driver models: the monolithic driver and the class/port driver.

dispatch point

Points along the boot timeline and post-boot that mark when certain resources or capabilities are available. Dispatch points initiated from user space can occur in any order. In kernel mode, these points are in strict chronological order. For example, the dispatch point indicating that virtual memory is available (CFG_PT_VM_AVAIL) always occurs before locks are available (CFG_PT_LOCKAVAIL).

dynamic mode

The ability to add or remove software or hardware while the system is operational. For example, dynamic hardware configuration and dynamic module loading occur late in the boot timeline once these features are enabled. Contrast with static mode.

entry point

The address of a routine.

granularity

The size of neighboring units of memory that can be written independently and atomically by multiple CPUs. See also atomicity.

initialization

The tasks that incorporate a kernel module into the kernel after it has been loaded and make it available for use by the system.

interface

A collection of routine definitions and data structures that perform related functions. There are kernel interfaces and user interfaces. For example, the kernel set management (KSM) interface consists of a variety of cfg_ksm_xxx library routines that allow applications to manage the kernel sets. See also routine.

kernel module

The code and data structures in a .mod file, either statically linked into /vmunix or dynamically loaded as part of the kernel.

kernel thread

A single, sequential flow of control within a program.

load

The process of bringing a kernel module into memory and calling its configure routine with the CFG_OP_CONFIGURE request code.

lock

A means of protecting a resource from multiple CPU access in an SMP environment. See also simple lock and complex lock.

module

See kernel module.

module framework

The subsystem in the kernel that loads, unloads, makes other management requests, and generally keeps track of modules in the kernel.

monolithic driver

Kernel module code that is all-inclusive; supporting everything from user requests to processing interrupts from hardware.

parameter

A variable or constant associated with some value that is passed to a routine. Also called an argument.

pseudodevice driver

A driver, such as the pty terminal driver, structured like other drivers but not operating on a bus and not controlling hardware. A pseudodevice driver does not register itself in the hardware topology (system configuration tree). Instead, it relies on the device driver method of the cfgmgr framework to create the associated device special files.

routine

Code that can be called to perform a function. See also interface.

scan

The process of looking for hardware components for the purpose of configuring hardware that is not currently configured.

simple lock

A general-purpose mechanism for protecting resources in an SMP environment. A simple lock is a spin lock. That is, routines that implement simple locks do not return until the lock has been returned. See also complex lock.

single binary image

A single .mod file that can be statically loaded as part of /vmunix or dynamically loaded into the kernel any time after a system boots.

SMP

Symmetric multiprocessing.

software synchronization

The coordination of events in such a way that only one event happens at a time.

static mode

The permanent and nonremovable parts of the kernel. Contrast with dynamic mode.

string

An array of characters terminated by a null character.

subsystem

A collection of code that provides one or more interfaces or performs one or more functions.

symmetric multiprocessing

A computer environment that uses two or more central processing units (CPUs). Software applications and the associated kernel modules can operate on two or more of these CPUs.

thread

See kernel thread.