This document contains common terms and concepts that are reference by the other documents in the LinuxKernelNotes repository
Note some of these definitions are copied from https://kernelnewbies.org/KernelGlossary
- ABI - Application Binary Interface, the interface of passed structures between the user processes (and libraries) and the kernel. For compatibility, it is important that these remain as static as possible (i.e. making sure that variables and structure members have the same byte size as before, and in the same ordering). Occasionally breakage is necessary, requiring re-compilation of the user-space sources (note that this does not affect source-compatibility; that is a separate issue).
- BusyBox - software that provides several stripped-down Unix tools in a single executable file. BusyBox originally aimed to put a complete bootable system on a single floppy disk that would serve both as a rescue disk and as an installer for the Debian distribution. Since that time, it has been extended to become the de facto standard core user space toolset for embedded Linux devices and Linux distribution installers. Since each Linux executable requires several kilobytes of overhead, having the BusyBox program combine over two hundred programs together often saves substantial disk space and system memory. (Wikipedia)
- dmesg - Command to display or clear messages from the kernel write buffer. The default action (no parameters) is to display all messages from the kernel ring buffer.
- GDT The Global Descriptor Table is a data structure used by Intel x86-family processors starting with the 80286 in order to define the characteristics of the various memory areas used during program execution, including the base address, the size and access privileges like executability and writeability. These memory areas are called segments in Intel terminology. The GDT can hold things other than segment descriptors as well. Every 8-byte entry in the GDT is a descriptor, but these can be Task State Segment (or TSS) descriptors, Local Descriptor Table (LDT) descriptors, or Call Gate descriptors. The last ones, Call Gates, are particularly important for transferring control between x86 privilege levels although this mechanism is not used on most modern operating systems. (Wikipedia)
- hypervisor - A hypervisor or virtual machine monitor (VMM) is computer software, firmware or hardware that creates and runs virtual machines. The hypervisor presents the guest operating systems with a virtual operating platform and manages the execution of the guest operating systems. Multiple instances of a variety of operating systems may share the virtualized hardware resources. (Wikipedia)
- IDT - The Interrupt Descriptor Table is a data structure used by the x86 architecture to implement an interrupt vector table. The IDT is used by the processor to determine the correct response to interrupts and exceptions. Use of the IDT is triggered by three types of events: hardware interrupts, software interrupts, and processor exceptions, which together are referred to as "interrupts". The IDT consists of 256 interrupt vectors–the first 32 (0-31 or 00-1F) of which are reserved for processor exceptions. (Wikipedia)
- Logical Processor - on an Intel processor this is the number of cores, times the number of hyper threads per core. So an 8 core system, with 2 hyper threads per core would be a total of 16 logical processors. See Virtual Processor for a virtual machine environment.
- Mainline - vanilla Linux Kernel, without any vendor/distribution specific code or drivers. This branch is officially released as a new version approximately every ten weeks. This is not the same as the stable version, which has been more thoroughly tested over a longer period, but doesn't have the latest features and fixes that the mainline version has.
- MMU - Memory Management Unit, part of the CPU hardware that enforces memory boundaries, and throw page faults, upon which the OS builds its coherent protection. The MMU maps virtual memory to actual, where protections allow
- QEMU (Quick Emulator) is a free and open-source hosted hypervisor that performs hardware virtualisation (not to be confused with hardware-assisted virtualisation). It is a hosted virtual machine monitor: it emulates CPUs through dynamic binary translation and provides a set of device models, enabling it to run a variety of unmodified guest operating systems. It also can be used with KVM to run virtual machines at near-native speed (requiring hardware virtualisation extensions on x86 machines). QEMU can also do CPU emulation for user-level processes, allowing applications compiled for one architecture to run on another. (Wikipedia)
- Virtual Processor = on a Hyper-V image you can have up to the total number of logical processors on your host (cores + hyper threads). This total includes all virtual machines currently running, so if you have 16 logical host processors, you can have one virtual machine with 16 virtual processors, or two virtual machines with 8 virtual processors each, etc. See Logical Processor
- Xen - Xen Project is a hypervisor using a microkernel design, providing services that allow multiple computer operating systems to execute on the same computer hardware concurrently. (Wikipedia)