OS Glossary¶
Operating Systems terminology, ordered alphabetically. Each term lists the general branch of operating systems it falls under and a brief explanation.
Search by Letter¶
0-9 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
0-9¶
3-2-1 Backup Rule¶
Branch: Backup & Recovery
Keep 3 copies of data on 2 kinds of media with 1 copy offsite
A¶
AAAA Record¶
Branch: Domain Management & Encryption
A DNS record that maps a name to an IPv6 address, like an A Record does for IPv4
Access Control List (ACL)¶
Branch: Permissions
A detailed list of which users or groups can access a resource and how
ACID¶
Branch: Databases
Atomicity, Consistency, Isolation and Durability: the four promises a reliable database transaction makes
adduser / usermod -aG¶
Branch: User Management
Creates a new user account / adds the user to a group
Ansible¶
Branch: Server Configuration Management
An automation tool that configures servers from written playbooks
Apex Domain (@)¶
Branch: Domain Management & Encryption
The bare domain with nothing in front, such as supersims21.org; written as @ in the Host column of DNS settings
Application Server¶
Branch: Servers & Services
Server that runs application code such as Java web apps, for example Tomcat
apt update vs upgrade vs full-upgrade¶
Branch: Security
Refreshes the list of available packages / installs new versions of current packages / same but adds or removes packages when needed
Attack Surface¶
Branch: Security
All the points where an attacker could try to get into a system
Autocommit¶
Branch: Databases
A mode where each SQL statement is saved immediately as its own transaction
AUTOINCREMENT / sqlite_sequence¶
Branch: SQLite Internals
Keyword that stops SQLite from reusing ids / the internal table that remembers the highest id used
B¶
B-tree¶
Branch: SQLite Internals
A balanced tree of pages that SQLite uses to store every table and index in sorted order
Backup¶
Branch: Backup & Recovery
A copy of data kept so it can be restored after loss or damage
Bash Script¶
Branch: Command Line & Shell
A text file of shell commands run together to automate tasks
Bootloader¶
Branch: OS Overview & Components
Program that loads the kernel into memory when the computer starts, such as GRUB
Brute Force Attack¶
Branch: Security
Repeatedly guessing passwords until one works
C¶
CHECK Constraint¶
Branch: Databases
A rule in a table definition that every row must pass, such as player_count >= 0
chmod / chown¶
Branch: Permissions
Commands to change a file’s permissions and to change its owner or group
Client-Server Model¶
Branch: Networking
Architecture where clients request services and servers provide them
Command Line Interface (CLI)¶
Branch: Command Line & Shell
A text-based interface for giving commands to the OS
Configuration File¶
Branch: Server Configuration Management
A text file that controls how a program or service behaves, often found in /etc
Configuration Management¶
Branch: Server Configuration Management
Keeping server settings consistent, documented and reproducible
Container¶
Branch: Virtualization
A lightweight isolated environment that shares the host kernel, such as Docker
Context Switch¶
Branch: Process Management
Saving one process’s state and loading another’s so the CPU can switch between them
Converter / Adapter¶
Branch: Django ORM
Functions that translate values coming out of the database into Python types / Python values going in into database types
CPU Scheduling¶
Branch: Process Management
How the OS decides which ready process runs next on the CPU
Cron Job¶
Branch: Command Line & Shell
A task scheduled to run automatically at set times
D¶
Daemon / Service¶
Branch: OS Overview & Components
A background process that runs continuously to provide a service, such as a web server
Database Backend¶
Branch: Django ORM
The part of Django that knows one specific database’s SQL dialect, types and connection details, such as django.db.backends.sqlite3
Database Index¶
Branch: Databases
A sorted lookup structure that lets the database find rows without reading the whole table
Database is Locked Error¶
Branch: SQLite Internals
SQLite’s error when a connection waits too long for another connection to finish writing
Database Page¶
Branch: SQLite Internals
The fixed-size block (4096 bytes by default) that SQLite reads and writes; the file is a list of pages
Database Server¶
Branch: Servers & Services
A service that stores and manages data for applications, such as MySQL
Deadlock¶
Branch: Process Management
A state where processes wait forever on resources held by each other
Default Deny Policy¶
Branch: Security
Firewall setup that blocks all incoming traffic unless a rule allows it
Descriptor¶
Branch: Django ORM
A Python object with a __get__ method that runs code when an attribute is read; Django uses them for relationships like screen.season
Device Driver¶
Branch: OS Overview & Components
Kernel code that lets the OS communicate with a specific hardware device
df / free¶
Branch: Services & Logs
Shows remaining disk space / shows memory use
dig / nslookup¶
Branch: Networking
Command-line tools that ask DNS directly which records a name returns
Directory Hierarchy¶
Branch: File Systems & Storage
The tree structure of folders starting at the root directory /
Directory Permissions (r/w/x on folders)¶
Branch: Permissions
Gives permissions for a folder, r=read, w=add or remove files, x=enter folder
Distribution (Distro)¶
Branch: OS Options
A packaged OS built on the Linux kernel with its own tools and package manager, such as Ubuntu or Debian
Django Model¶
Branch: Django ORM
A Python class in models.py that describes one database table; each instance is one row
django_migrations Table¶
Branch: Django ORM
The table where Django records which migrations have already been applied to a database
DNS (Domain Name System)¶
Branch: Domain Management & Encryption
The system that translates domain names into IP addresses
DNS Propagation¶
Branch: Domain Management & Encryption
The delay before a DNS change is seen everywhere, because DNS servers keep old answers until their TTL runs out
DNS Record (A / CNAME)¶
Branch: Domain Management & Encryption
Entries that map a domain to an IP address (A) or to another name (CNAME)
DNS Resolver¶
Branch: Domain Management & Encryption
The server, often run by your internet provider, that looks up domain names for your computer and caches the answers
DNS Zone¶
Branch: Domain Management & Encryption
The full set of DNS records for one domain, edited in the registrar’s or DNS host’s settings
Domain Name¶
Branch: Domain Management & Encryption
A human-readable name, such as supersims21.org, that points to a server’s IP address; rented from a registrar by the year
Domain Registrar¶
Branch: Domain Management & Encryption
A company that manages the registration of domain names
E¶
Embedded Database¶
Branch: SQLite Internals
A database engine that runs as a library inside the application’s own process instead of as a separate server
Enabled vs Active (enable vs start)¶
Branch: Services & Logs
Service starts automatically / Is running currently
Environment Variable¶
Branch: Command Line & Shell
A named value available to processes that affects how they behave, such as PATH
/etc/passwd, /etc/shadow, /etc/group¶
Branch: User Management
Plain text files where Linux lists user accounts, holds password hashes, or lists groups
/etc/hosts¶
Branch: Networking
A local file that maps names to IP addresses on one computer and is checked before DNS
Exit Status¶
Branch: Command Line & Shell
A number a command returns when it finishes; 0 means success
F¶
F Expression¶
Branch: Django ORM
A reference to a column’s current value inside the database so math like revealed + 1 runs in SQL
Fail2ban¶
Branch: Security
Tool that bans IP addresses showing signs of malicious login attempts
Fail2ban Jail (jail.local)¶
Branch: Security
Ruleset that sets the number of failed logins and how long an address is banned
Field Lookup (__)¶
Branch: Django ORM
The double-underscore syntax, such as name__icontains, that tells Django which SQL comparison to use on a field
File Lock (fcntl)¶
Branch: SQLite Internals
An operating system lock on part of a file that SQLite uses so only one connection writes at a time
File Permissions (rwx)¶
Branch: Permissions
Read, write and execute rights set separately for the owner, group and others
File System¶
Branch: File Systems & Storage
The method the OS uses to organize and store files on a disk, such as ext4 or NTFS
Firewall¶
Branch: Security
Software or hardware that allows or blocks network traffic based on rules
ForeignKey¶
Branch: Django ORM
A field that links a row to a row in another table by storing that row’s primary key, such as season_id
Full / Incremental / Differential Backup¶
Branch: Backup & Recovery
Backing up all data, only changes since the last backup, or all changes since the last full backup
Full Stack Server (LAMP)¶
Branch: Servers & Services
A server running the full software stack: Linux, Apache, MySQL/MariaDB and PHP
G¶
Git Server¶
Branch: Servers & Services
A server that hosts git repositories for version control
Group¶
Branch: User Management
A collection of users that can share permissions on files and resources
H¶
.htaccess¶
Branch: Permissions
A per-directory Apache config file used to control web user access, such as password protection
HTTPS¶
Branch: Domain Management & Encryption
HTTP secured with TLS encryption
Hypervisor¶
Branch: Virtualization
Software that creates and runs virtual machines and divides hardware among them
I¶
ICMP¶
Branch: Networking
The protocol ping uses; many servers and cloud firewalls block it for security
Immutable Backup¶
Branch: Backup & Recovery
A backup that cannot be changed or deleted for a set period
Infrastructure as Code¶
Branch: Server Configuration Management
Defining server setup in files that can be version controlled and rerun
init / systemd¶
Branch: OS Overview & Components
The first process started by the kernel; it starts and manages all other services
Inode¶
Branch: File Systems & Storage
A data structure storing a file’s metadata such as owner, permissions and disk location
Interrupt¶
Branch: OS Overview & Components
A signal from hardware or software that makes the CPU pause and handle an event
IP Address¶
Branch: Networking
A numeric address that identifies a device on a network
IPv4 / IPv6¶
Branch: Networking
32-bit addresses written as four numbers like 213.0.0.1 / 128-bit addresses written in hexadecimal like 2001:db8::1
J¶
journald / journalctl¶
Branch: Services & Logs
Systemd service that collects all other service info / command for reading that log
JSON Functions (JSON1)¶
Branch: SQLite Internals
SQLite’s built-in functions like JSON_VALID and JSON_EXTRACT that Django uses for JSONField
K¶
Kernel¶
Branch: OS Overview & Components
The core of the OS that runs with full hardware privileges and manages CPU, memory and devices
L¶
Lazy Evaluation¶
Branch: Django ORM
Waiting to do work until the result is actually needed; a QuerySet runs no SQL until it is looped over, printed or counted
Load Balancing¶
Branch: Servers & Services
Spreading incoming requests across several servers to share the work
Log File¶
Branch: Security
A record of system events used for troubleshooting and security auditing
LTS (Long Term Support)¶
Branch: OS Options
An OS release that receives security and bug fixes for an extended period
M¶
makemigrations / migrate¶
Branch: Django ORM
Commands that write migration files by comparing models to past migrations / apply unapplied migrations to the database
Manager (objects)¶
Branch: Django ORM
The interface on a model class, usually named objects, that starts every database query
_meta (Model Options)¶
Branch: Django ORM
The object Django attaches to every model that describes its table: fields, table name, ordering and constraints
Metaclass (ModelBase)¶
Branch: Django ORM
The class of a class; Django’s ModelBase rebuilds each model class when it is defined to add _meta, objects, the id field and relationships
MFA (Multi-Factor Authentication)¶
Branch: User Management
A login that needs a second proof of identification
Migration¶
Branch: Django ORM
A Python file that records a change to the database schema so it can be applied to any copy of the database
Model Field¶
Branch: Django ORM
A class attribute on a model, such as CharField or JSONField, that describes one column and how to convert its values
Monolithic Kernel vs Microkernel¶
Branch: OS Overview & Components
Kernel designs that either run all services in kernel space or keep only essentials there
Mounting¶
Branch: File Systems & Storage
Attaching a storage device or partition to a point in the directory tree
Mutex / Semaphore¶
Branch: Process Management
Synchronization tools that control access to shared resources by concurrent processes
MX Record¶
Branch: Domain Management & Encryption
A DNS record that names the mail server that receives email for a domain
N¶
N+1 Query Problem¶
Branch: Django ORM
A slowdown where code runs 1 query for a list and then 1 more query for every item in it
Nameserver (NS Record)¶
Branch: Domain Management & Encryption
The server that holds the official DNS records for a domain; the registrar tells the internet which nameservers to ask
nano¶
Branch: Editors
A simple beginner-friendly terminal text editor
netfilter / nftables¶
Branch: Security
The packet filter that allows/blocks network traffic / the rule system it uses
Notepad++¶
Branch: Editors
A graphical Windows source code editor with syntax highlighting
NTP / timesyncd¶
Branch: Services & Logs
How computers keep their clocks correct across the internet
Numeric (Octal) Permissions¶
Branch: Permissions
The 3 digit permissions (rwx)
O¶
Object-Relational Mapper (ORM)¶
Branch: Django ORM
A library that maps database tables to classes and rows to objects so you can work with data in code instead of SQL
Offline / Air-Gapped Backup¶
Branch: Backup & Recovery
A backup disconnected from the network so ransomware cannot reach it
on_delete (CASCADE / SET_NULL)¶
Branch: Django ORM
Rule for what happens to linked rows when a row is deleted: delete them too / set their foreign key to NULL; Django carries it out in Python
Open Source vs Proprietary¶
Branch: OS Options
Whether the OS source code is freely available and modifiable or owned and restricted by a vendor
Operating System¶
Branch: OS Overview & Components
Software that manages hardware resources and provides common services to programs and users
Overflow Page¶
Branch: SQLite Internals
An extra page that holds the part of a row that is too large to fit on its B-tree page
P¶
Package Manager¶
Branch: OS Options
Tool that installs, updates and removes software along with its dependencies, such as apt
Packet Loss¶
Branch: Networking
The percentage of sent packets that got no reply; 100% loss on ping can mean ICMP is blocked, not that DNS failed or the server is down
Paging¶
Branch: Memory Management
Dividing memory into fixed-size pages that map virtual addresses to physical frames
Parameterized Query¶
Branch: Databases
SQL sent with placeholders (? or %s) and values passed separately so the values can never change the SQL
Partition¶
Branch: File Systems & Storage
A separately managed section of a storage device
Patch / Update¶
Branch: Security
Software changes that fix bugs and security vulnerabilities
Persistent Journal¶
Branch: Services & Logs
Keeps the system log so it survives with a reboot
Ping¶
Branch: Networking
Sends “echo request” packets and receives “echo reply” packets, used to check if a machine is up, reachable, and connection speed
Pipe¶
Branch: Command Line & Shell
The | operator that sends one command’s output as input to another
Port¶
Branch: Networking
A number that identifies a specific service on a host, such as 80 for HTTP or 22 for SSH
PRAGMA¶
Branch: SQLite Internals
A SQLite command that reads or changes database settings, such as PRAGMA foreign_keys = ON
Primary Key¶
Branch: Databases
A column that uniquely identifies each row in a table, such as id
Principle of Least Privilege¶
Branch: Permissions
Giving users and programs only the access they need to do their job
Process¶
Branch: Process Management
A program in execution with its own memory space and resources
Process ID (PID)¶
Branch: Process Management
A unique number the OS assigns to identify each running process
Process States¶
Branch: Process Management
The stages a process moves through: new, ready, running, waiting and terminated
Public / Private Key¶
Branch: Domain Management & Encryption
A key pair used in asymmetric encryption; the public key encrypts and the private key decrypts
Q¶
Query Plan (EXPLAIN QUERY PLAN)¶
Branch: SQLite Internals
The steps SQLite will use to run a query; SEARCH means an index is used and SCAN means every row is read
QuerySet¶
Branch: Django ORM
A lazy, chainable description of a database query that only runs its SQL when its data is needed
R¶
Race Condition¶
Branch: Process Management
A bug where the result depends on the unpredictable timing of concurrent processes
Ransomware¶
Branch: Security
Malware that encrypts a victim’s data and demands payment to unlock it
Reboot Required (kernel updates)¶
Branch: Security
Some updates need the server to restart before they take effect
Recovery Point / Time Objective (RPO / RTO)¶
Branch: Backup & Recovery
How much data loss is acceptable and how quickly a system must be restored
Redirection¶
Branch: Command Line & Shell
Sending a command’s input or output to or from a file using > < or >>
RETURNING Clause¶
Branch: SQLite Internals
SQL that sends back values from rows just inserted or updated, such as the new id, in the same statement
Reverse DNS (PTR Record)¶
Branch: Domain Management & Encryption
A lookup that goes the other way, turning an IP address back into a domain name
Reverse Proxy¶
Branch: Servers & Services
A server that receives client requests and forwards them to back-end servers
Rollback Journal¶
Branch: SQLite Internals
A file (db.sqlite3-journal) holding original copies of pages so an interrupted write can be undone
Root / Superuser¶
Branch: User Management
The administrator account with unrestricted access to the system
Rowid¶
Branch: SQLite Internals
The hidden 64-bit integer key of every SQLite table row; an INTEGER PRIMARY KEY column becomes an alias for it
rsync¶
Branch: Backup & Recovery
A tool that efficiently copies and syncs files between locations
S¶
Savepoint¶
Branch: Databases
A marker inside a transaction that lets you roll back part of the work without cancelling the whole transaction
Schema Editor¶
Branch: Django ORM
The Django component that turns migration operations into CREATE TABLE, ALTER TABLE and CREATE INDEX statements
Setgid Bit¶
Branch: Permissions
A permission folder that makes all new files belong to the folder’s group
Shebang¶
Branch: Command Line & Shell
The first line of a script (#!/bin/bash) that names the interpreter to run it
Shell¶
Branch: OS Overview & Components
A program that interprets user commands and passes them to the OS
Signal¶
Branch: Process Management
A notification sent to a process to trigger an action, such as SIGKILL to stop it
Snapshot¶
Branch: Backup & Recovery
A point-in-time copy of a system or file system
SQL Compiler¶
Branch: Django ORM
The Django component that turns a Query tree into an SQL string and a separate list of parameters
SQL Injection¶
Branch: Databases
An attack where user input is pasted into SQL text and changes what the query does
SQLite¶
Branch: SQLite Internals
A small, serverless, embedded SQL database engine that stores a whole database in one ordinary file
sqlite3 Module (DB-API)¶
Branch: SQLite Internals
Python’s built-in driver for SQLite, which follows the standard Python database API (PEP 249)
sqlite_master (sqlite_schema)¶
Branch: SQLite Internals
SQLite’s built-in table that stores the CREATE statement and root page of every table and index
SSH (Secure Shell)¶
Branch: Networking
An encrypted protocol for logging into and running commands on a remote server
SSH Hardening (PermitRootLogin / PasswordAuthentication)¶
Branch: User Management
Making logins safer by blocking logging in from root and allowing keys instead of password login
SSH Key Authentication¶
Branch: User Management
Logging in with a pair of keys (public and private) instead of a password
SSL/TLS¶
Branch: Domain Management & Encryption
Protocols that encrypt data sent between a client and a server
Standard Input/Output/Error¶
Branch: Command Line & Shell
The three default data streams (stdin, stdout, stderr) every process has
Subdomain¶
Branch: Domain Management & Encryption
A name in front of the domain, such as www.supersims21.org, that can point to its own address
sudo¶
Branch: User Management
Command that lets an authorized user run a command with root privileges
Swap Space¶
Branch: Memory Management
Disk space used to hold memory pages when physical RAM is full
Symbolic Link¶
Branch: File Systems & Storage
A special file that points to another file or directory
System Call¶
Branch: OS Overview & Components
The interface a program uses to request a service from the kernel, such as reading a file
systemctl¶
Branch: Services & Logs
Manages services through systemd
T¶
Table Remake¶
Branch: Django ORM
Django’s workaround for SQLite’s limited ALTER TABLE: create a new table, copy the rows, drop the old table and rename the new one
Terminal¶
Branch: Command Line & Shell
The program window that provides access to a shell
Thread¶
Branch: Process Management
The smallest unit of execution within a process; threads share the process’s memory
Top-Level Domain (TLD)¶
Branch: Domain Management & Encryption
The ending of a domain name, such as .com, .org or .ai; each ending has its own yearly price
Transaction¶
Branch: Databases
A group of database operations that succeed or fail together as one unit
transaction.atomic¶
Branch: Django ORM
Django’s way to group database statements so they all succeed or all get rolled back
TTL (Time To Live)¶
Branch: Domain Management & Encryption
How long other computers may remember (cache) a DNS answer before asking again
TXT Record¶
Branch: Domain Management & Encryption
A DNS record that holds text, often used to prove you own a domain or to set email security rules
Type Affinity¶
Branch: SQLite Internals
SQLite’s per-column type preference; the value itself carries the real type, so varchar(100) does not limit length
U¶
UFW / iptables¶
Branch: Security
Linux tools used to define firewall rules
UID / GID¶
Branch: User Management
Numeric user and group IDs the OS uses internally to identify accounts
unattended-upgrades¶
Branch: Security
Debian tool that checks security fixes everyday and installs them automatically
Unique Constraint¶
Branch: Databases
A rule that no two rows may have the same value or combination of values in certain columns
Unit File¶
Branch: Services & Logs
Configuration file that tells systemd how to run a service
User Account¶
Branch: User Management
An identity the OS uses to track who owns files and runs processes
User Mode vs Kernel Mode¶
Branch: OS Overview & Components
CPU privilege levels that separate restricted application code from privileged OS code
V¶
VDBE (Virtual Database Engine)¶
Branch: SQLite Internals
SQLite’s virtual machine that runs SQL after it has been compiled into bytecode
Version Control¶
Branch: Servers & Services
Tracking and managing changes to files over time
vi / vim¶
Branch: Editors
A modal text editor found on nearly all Unix systems, with separate insert and command modes
Virtual Host¶
Branch: Servers & Services
Configuration that lets one web server host multiple websites
Virtual Machine (VM)¶
Branch: Virtualization
A software-emulated computer that runs its own OS on top of a host system
Virtual Memory¶
Branch: Memory Management
Technique that gives each process its own address space larger than physical RAM
VNC Console¶
Branch: User Management
Your emergency way back into the system
W¶
WAL (Write-Ahead Logging)¶
Branch: SQLite Internals
A SQLite mode where changes are added to a separate -wal file so readers and a writer can work at the same time
Web Server¶
Branch: Servers & Services
Software that serves web pages to clients over HTTP, such as Apache2 or Nginx
WHOIS¶
Branch: Domain Management & Encryption
A public lookup that shows a domain’s registrar, expiration date and nameservers
Wiki¶
Branch: Servers & Services
A web application that lets users collaboratively create and edit pages, such as MediaWiki