This is a glossary of CS - mainly comp-arch terms and their meanings, explained in their simplest ways.
VMA Tree: A Linux kernel data structure used for address space bookkeeping
Note: Imagine you mmap a file. The kernel will lazily load it on a page fault. But on the pagefault, the kernel needs to know what file descriptor to load in, what memory is valid, etc. The VMA tree stores coarse grain information about the address space, such as what is valid or not, what file descriptors map to what, etc.
predicate: A formula for constructing a proposition
Note: A formula that takes in a list of inputs and outputs a proposition (boolean statement) involving all of its inputs.
Further reading: LibreText
field: A finite set on which arithmetic is defined
Note: arithemtic being addition, subtraction, multiplication, division
coherence: Ensuring that a computer reads the result of the latest write
Note: Typically used with cache coherence
consistency: An ordering of otherwise concurrent memory instructions
fence: On operations that occur out of order, ensure that all previous instructions have occured before continuing. Thread local.
barrier: When multiple threads are running, ensure that all threads have reached this point before continuing. Thread global.
volatile: A compiler directive that says "do not allocate a register for this value". The compiler must perform a load/store every time it wants to access a value
secure binding: Proof that an application has access to a shared kernel resource (like hardware)
Note: An exokernel or -kernel environment will move traditional kernel features into userspace. To reduce the amount of IPC required, a secure binding separates:
Once an application is authorized¹ to use a resource, the kernel caches the resource's ID, and can quickly enforce the validity of an application access at runtime.
exokernel: A libOS - an OS where the kernel's job is to present hardware resources directly to applications through high-level abstractions
Note: An OS pushing the end-to-end argument. Hardware resources are managed by user-level applications (often via library functions), but that access is managed by the kernel.
microkernel: A minimalistic kernel which provides several 'optional' OS services inside of userspace
RaceTrack: A race condition detector for the Microsoft Common Language Runtime
LightVM: A lightweight virtualization regime comparable to containers
Unikernel: A kernel that runs a singular process
Tinyx: A tool that enables creating tailor-made, trimmed-down Linux virtual machines
Xen: A hypervisor…
NVIDIA Fermi: A GPGPU architecture by NVIDIA
Note: There is a whitepaper which describes the decisions used to make GPUs
CPU: A general purpose computing device
Note: Despite the 'general purpose nature' CPUs tend to be best at single-threaded (or minorly multi-threaded), branch-heavy workloads which have good locality and can benefit from speculation