A glossary of various terms and acronyms related to the Linux kernel. If you know something, please create yourself an account (UserPreferences) and add a term in alphabetical order. Don't be afraid to improve other people's explanations, the goal is to have a high quality document for the readers of this site. If everybody who reads this page adds a term each week, this glossary should be complete within a few months... * Classifier: also called filter, classifies a network packet by inspecting it, used by QDiscs. * Copy-on-Write: (also: COW) reuse and share existing objects and copy them not until a modification is required. * Current: a kernel variable which points to the task_struct structure of the process currently running on this CPU. * Device Mapper: A technology for presenting arbitrary groupings of underlying sectors on physical devices in a consistent logical fashion usable by higher level algorithms. Heavily used by kernel technologies such as LVM. * ISR: interrupt service routine, the function in each device driver that gets called when an interrupt happens. * Jiffies: An incrementing counter representing system "uptime" in ticks - or the number of timer interrupts since boot. Ultimately the entire original concept of a jiffy will likely vanish as systems use timer events only when necessary and become "jiffyless". * kswapd: a kernel thread that frees up memory by evicting data from caches and paging out userspace memory, part of the virtual memory subsystem. * Linux Device Drivers, 2nd Edition: http://www.xml.com/ldd/chapter/book/ * LKM: Linux Kernel Module. A (often dyanmically loadable at system runtime) kernel extension ("driver") to support, for example, some kind of new hardware device or generic software abstraction. * LKML: Linux Kernel Mailing List. The primary virtual watering hole (meeting ground) for kernel developers to share ideas and bounce opinions off oneanother during the course of the kernel development process. * LVM: Logical volume management. A technology for providing an arbitrary logical view of underlying data storage in a fashion supporting resizing and restructuring of storage on the fly. Currently in version 2, originally written by Sistina (now Redhat). * LXR: a cross-reference tool that can be used to navigate the Linux kernel source code, available at [http://lxr.linux.no/ lxr.linux.no]. * mem_map: A contiguous virtual array of struct pages representing the entirity of physical memory pages available within a system. * MMU: memory management unit, part of the CPU that is needed for virtual memory. * QDisc: [http://lartc.org/howto/lartc.qdisc.html Queueing Discipline], queues packets before they are sent out to the network device, enforces QoS requirements, provides traffic shaping and priorititizing capabilities. * QoS: Quality of Service, method to define the importance/priority of network services * Scheduler: the part of the kernel that chooses a suitable process to run on the cpu, see the [http://lxr.linux.no/ident?i=schedule schedule()] function. * Shared/Paged Socket Buffer: (also: pskb) Socket Buffer with uncontinuous data buffer, used for zero copy, TSO and Scatter/Gather capable network cards. * Socket Buffer: (also: skb) data structure used to hold the data and attributes of a network packet. * System call: (also: syscall) the way a program transitions from userspace into kernel space, to call a kernel space function. * Page table: data structure used by the MMU to translate virtual memory addresses to physical memory addresses. * Process descriptor: kernel data structure that describes/accounts proces data related to a single process. * Virtual memory: every process in the system gets its own memory address space, independant of the other processes. * Zero-Copy: A special networking code path where data is sent to the network directly from userspace memory; this avoids unnecessary copying of data and improves performance.