Remove binary garbage
[ikiwiki.git] / docs / user / GlossaryOfTerms.mdwn
1 Glossary of Terms
2
3 From DFWiki
4
5
6
7 Whether 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. 
8
9
10
11 Terms that are specific to DragonFly are indicated by an asterisk (*). Table of contents 
12
13
14
15 [[!toc levels=3 ]]
16
17
18
19
20 # ACPI 
21
22
23
24 Advanced 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. 
25
26
27
28 # BGL 
29
30
31
32 Big Giant Lock. A mutual exclusion mechanism which encompasses the entire running system. 
33
34
35
36 # CAPS* 
37
38
39
40 Unknown acronym first introduced by Matt Dillon. A message-based IPC mechanism for applications; basically, LWKT message-port services exposed to userland. 
41
42
43
44 CAPS 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). 
45
46 # IPI 
47
48
49
50 Inter-Processor Interrupt. 
51
52 # KPI 
53
54
55
56 Kernel Programming Interface. Same meaning as API (Application Programming Interface), but specifically refering to APIs in the kernel. 
57
58
59
60 # KVA 
61
62
63
64 Kernel Virtual Address space. Virtual memory used (exclusively) by the kernel. (Note: how does this differ from KVM?) 
65
66
67
68 # KVM 
69
70
71
72 Kernel Virtual Memory. Virtual memory used (exclusively) by the kernel. (Note: how does this differ from KVA?) 
73
74
75
76 # LKM 
77
78
79
80 Loadable 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. 
81
82
83
84 # LWKT* 
85
86
87
88 LightWeight 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. 
89
90
91
92 LWKT 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. 
93
94
95
96 LWKT 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). 
97
98
99
100 # MSFBUF* 
101
102
103
104 Multi-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. 
105
106
107
108 MSFBUF 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). 
109
110
111
112 The 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. 
113
114
115
116 # RTC 
117
118
119
120 Real Time Clock 
121
122
123
124 # SMP 
125
126
127
128 Symmetric Multi-Processor. 
129
130
131
132 # SSI 
133
134
135
136 Single System Image. A networked cluster of machines which appear as a single machine. 
137
138
139
140 # TLB 
141
142
143
144 Translation 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.) 
145
146
147
148 # TLS 
149
150
151
152
153
154 Thread Local Storage. Memory storage local to a thread. 
155
156
157
158 # UIO 
159
160
161
162
163
164 Userspace(<->kernelspace)(?) Input/Output. The traditional BSD mechanism for passing data between the userland and the kernel, for example during a system call. 
165
166
167
168 # Variant Symbolic Links (varsym)* 
169
170
171
172
173
174 Variant symbolic link. A symbolic link which can point to different places depending on settings in the user's environment. 
175
176
177
178 # VFS 
179
180
181
182
183
184 Virtual File System Layer. A layer in UNIX-like kernels which translates abstract requests for files into lower-level operations. 
185
186
187
188 # XIO* 
189
190
191
192
193
194 X("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. 
195
196
197
198 The XIO facilities are implemented in [kern_xio.c](http://gitweb.dragonflybsd.org/dragonfly.git/history/HEAD:/sys/kern/kern_xio.c). For example use of the XIO API, look in [lwkt_caps.c](http://gitweb.dragonflybsd.org/dragonfly.git/history/HEAD:/sys/kern/lwkt_caps.c), and the VFS journalling code which resides in [vfs_journal.c](http://gitweb.dragonflybsd.org/dragonfly.git/history/HEAD:/sys/kern/vfs_journal.c). 
199
200
201
202 XIO 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).
203