Shuffled pages back up a level; Added links to main page that someone else had.
[ikiwiki.git] / docs / user / GlossaryOfTerms.mdwn
CommitLineData
b790f880
C
1Glossary of Terms\r
2From DFWiki\r
3\r
4Whether you're a user or a seasoned kernel developer who's simply new to DragonFly, few things are more confusing than trying to figure out what's going on without knowing what the acronyms mean. The purpose of this page is to define (briefly) some of the more obscure technical terminology you might encounter in DragonFly discussions. \r
5\r
6Terms that are specific to DragonFly are indicated by an asterisk (*). Table of contents \r
7\r
8[[!toc levels=3 ]]\0\r
9\r
10\r
11# ACPI \r
12\r
13Advanced Configuration & Power Interface. Is a standard that defines power and configuration management interfacing between the OS and the BIOS. It is meant to replace the APM standard (for power management) but also provide a generic interface for recognition and configuration of hardware devices. \r
14\r
15# BGL \r
16\r
17Big Giant Lock. A mutual exclusion mechanism which encompasses the entire running system. \r
18\r
19# CAPS* \r
20\r
21Unknown acronym first introduced by Matt Dillon. A message-based IPC mechanism for applications; basically, LWKT message-port services exposed to userland. \r
22\r
23CAPS facilities are implemented in [lwkt_caps.c](http://www.dragonflybsd.org/cgi-bin/cvsweb.cgi/~checkout~/src/sys/kern/lwkt_caps.c) (http://www.dragonflybsd.org/cgi-bin/cvsweb.cgi/~checkout~/src/sys/kern/lwkt_caps.c). \r
24# IPI \r
25\r
26Inter-Processor Interrupt. \r
27# KPI \r
28\r
29Kernel Programming Interface. Same meaning as API (Application Programming Interface), but specifically refering to APIs in the kernel. \r
30\r
31# KVA \r
32\r
33Kernel Virtual Address space. Virtual memory used (exclusively) by the kernel. (Note: how does this differ from KVM?) \r
34\r
35# KVM \r
36\r
37Kernel Virtual Memory. Virtual memory used (exclusively) by the kernel. (Note: how does this differ from KVA?) \r
38\r
39# LKM \r
40\r
41Loadable Kernel Module. Allows the possibility to extend the kernel's functionality at runtime without recompiling or even rebooting the system. Usually these modules are devices drivers and os features. \r
42\r
43# LWKT* \r
44\r
45LightWeight Kernel Threading. A new kernel threading and scheduling mechanism implemented in DragonFly BSD. The LWKT scheduler only applies its scheduling decisions to the kernel and is independent from the userland 4.4BSD scheduler. \r
46\r
47LWKT has a fully MP clean API and allows turning off the BGL on a thread-by-thread basis; this fits with the goal of threading the subsystems in the kernel and provides a clear and straight-forward path to taking subsystems out from under the BGL. \r
48\r
49LWKT facilities are implemented in src/sys/kern/lwkt_*.c; notably, [lwkt_thread.c](http://www.dragonflybsd.org/cgi-bin/cvsweb.cgi/~checkout~/src/sys/kern/lwkt_thread.c) (http://www.dragonflybsd.org/cgi-bin/cvsweb.cgi/~checkout~/src/sys/kern/lwkt_thread.c), [lwkt_msgport.c](http://www.dragonflybsd.org/cgi-bin/cvsweb.cgi/~checkout~/src/sys/kern/lwkt_msgport.c) (http://www.dragonflybsd.org/cgi-bin/cvsweb.cgi/~checkout~/src/sys/kern/lwkt_msgport.c), and [lwkt_token.c](http://www.dragonflybsd.org/cgi-bin/cvsweb.cgi/~checkout~/src/sys/kern/lwkt_token.c) (http://www.dragonflybsd.org/cgi-bin/cvsweb.cgi/~checkout~/src/sys/kern/lwkt_token.c). \r
50\r
51# MSFBUF* \r
52\r
53Multi-page Super Fast BUFfers. An API for managing ephemeral/temporary KVM mappings for lists of pages, UIOs, arbitrary buffers, and other sources of data. Most of the sources of data described formally devolve into associating with the underlying pages. Although if the data is not backed by VM pages (e.g. userland buffers), then the backing is introduced automatically and the mapping is effectively cached. \r
54\r
55MSFBUF facilities are implemented in [kern_msfbuf.c](http://www.dragonflybsd.org/cgi-bin/cvsweb.cgi/~checkout~/src/sys/kern/kern_msfbuf.c) (http://www.dragonflybsd.org/cgi-bin/cvsweb.cgi/~checkout~/src/sys/kern/kern_msfbuf.c). \r
56\r
57The original idea of caching ephemeral mappings was introduced by David Greenman of the FreeBSD Project for the [sendfile(2)](http://leaf.dragonflybsd.org/cgi/web-man?section#2&commandsendfile) (http://leaf.dragonflybsd.org/cgi/web-man?section=2&command=sendfile) system call for minimising redundant data copies. \r
58\r
59# RTC \r
60\r
61Real Time Clock \r
62\r
63# SMP \r
64\r
65Symmetric Multi-Processor. \r
66\r
67# SSI \r
68\r
69Single System Image. A networked cluster of machines which appear as a single machine. \r
70\r
71# TLB \r
72\r
73Translation Look-aside Buffer. The component of a CPU's VM management hardware which translates between virtual memory addresses (used by userland programs) and physical memory address (used by the kernel.) \r
74\r
75# TLS \r
76\r
77\r
78Thread Local Storage. Memory storage local to a thread. \r
79\r
80# UIO \r
81\r
82\r
83Userspace(<->kernelspace)(?) Input/Output. The traditional BSD mechanism for passing data between the userland and the kernel, for example during a system call. \r
84\r
85# Variant Symbolic Links (varsym)* \r
86\r
87\r
88Variant symbolic link. A symbolic link which can point to different places depending on settings in the user's environment. \r
89\r
90# VFS \r
91\r
92\r
93Virtual File System Layer. A layer in UNIX-like kernels which translates abstract requests for files into lower-level operations. \r
94\r
95# XIO* \r
96\r
97\r
98X("cross-") Input/Output. A kernel programming interface that is used for managing VM page lists. Although originally intended for fast copying of bulk data (for example, between userspace and kernelspace, as is done by UIO,) this API is used almost anywhere where managing page lists is required. It is complementary to the MSFBUF API which manages the ephemeral mappings for VM page lists. \r
99\r
100The XIO facilities are implemented in [kern_xio.c](http://www.dragonflybsd.org/cgi-bin/cvsweb.cgi/~checkout~/src/sys/kern/kern_xio.c) (http://www.dragonflybsd.org/cgi-bin/cvsweb.cgi/~checkout~/src/sys/kern/kern_xio.c). For example use of the XIO API, look in [lwkt_caps.c](http://www.dragonflybsd.org/cgi-bin/cvsweb.cgi/~checkout~/src/sys/kern/lwkt_caps.c) (http://www.dragonflybsd.org/cgi-bin/cvsweb.cgi/~checkout~/src/sys/kern/lwkt_caps.c), and the VFS journalling code which resides in [vfs_journal.c](http://www.dragonflybsd.org/cgi-bin/cvsweb.cgi/~checkout~/src/sys/kern/vfs_journal.c) (http://www.dragonflybsd.org/cgi-bin/cvsweb.cgi/~checkout~/src/sys/kern/vfs_journal.c). \r
101\r
102XIO was first described in [this post to the kernel mailing list](http://leaf.dragonflybsd.org/mailarchive/kernel/2004-03/msg00469.html) (http://leaf.dragonflybsd.org/mailarchive/kernel/2004-03/msg00469.html).\r