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

Back to top

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

Authentication vs Authorization

Branch: Security

Verifying who a user is versus deciding what they are allowed to do

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

Back to top

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

Back to top

C

Certificate Authority (CA)

Branch: Domain Management & Encryption

A trusted organization that issues digital certificates, such as Let’s Encrypt

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

Back to top

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

Back to top

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

Back to top

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

Back to top

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

Back to top

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

Back to top

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

Back to top

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

Back to top

K

Kernel

Branch: OS Overview & Components

The core of the OS that runs with full hardware privileges and manages CPU, memory and devices

Back to top

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

Back to top

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

Back to top

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)

Back to top

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

Back to top

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

Back to top

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

Back to top

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

Back to top

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

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

Back to top

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

Back to top

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

Back to top

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

Back to top

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

Back to top