Basics

Basics Glossary

platform, imperative languages, declarative languages

Term Description
Platform
802.11 IEEE standard family defining Wi-Fi. Major generations: 802.11n (Wi-Fi 4, MIMO), 802.11ac (Wi-Fi 5, MU-MIMO, 5 GHz only), 802.11ax (Wi-Fi 6/6E, OFDMA, adds 6 GHz), 802.11be (Wi-Fi 7, multi-link operation).
Access Point Device that bridges a wireless LAN to a wired network. Broadcasts beacon frames advertising the SSID and supported rates; manages client association, authentication, and channel assignment.
Autonomous System Collection of IP networks under a single administrative domain that presents a unified routing policy to the internet; identified by a globally unique autonomous system number (ASN).
Band Frequency range allocated to Wi-Fi. 2.4 GHz offers longer range and better wall penetration but is congested. 5 GHz provides more channels and higher throughput. 6 GHz (Wi-Fi 6E/7) adds 1.2 GHz of unlicensed spectrum.
BGP Border Gateway Protocol; inter-domain routing protocol that exchanges reachability information between autonomous systems and selects paths based on policy attributes rather than pure metrics.
Cache Small, fast memory between CPU and RAM that stores recently accessed data to reduce latency. Organized in levels: L1 (fastest, smallest) through L3 (slowest, largest).
CDN Content Delivery Network; distributed system that caches static assets at edge locations worldwide, directing users via DNS to a nearby server to minimize latency and reduce origin load.
Channel Frequency slot within a band. 2.4 GHz has 14 partially overlapping 20 MHz channels; only 1, 6, and 11 are non-overlapping in North America. 5 GHz offers many non-overlapping 20/40/80/160 MHz channels.
Colocation Hosting model where an organization rents rack space, power, and connectivity inside a shared data center facility while owning and operating its own servers.
Congestion Control TCP algorithms (slow start, congestion avoidance, fast retransmit) that reduce transmission rate in response to packet loss or ECN marks, preventing network collapse under load.
Container Lightweight, portable runtime that packages an application with its dependencies, sharing the host OS kernel. Starts in milliseconds; smaller overhead than a VM.
Copy-on-Write Optimization where a forked process shares read-only memory pages with its parent; a write triggers duplication of only the modified page so each process gets an independent copy.
CPU Central Processing Unit; the processor that fetches, decodes, and executes program instructions in a continuous cycle.
CSRF Cross-Site Request Forgery; attack exploiting a victim’s authenticated browser session to silently issue state-changing requests to a trusted site on their behalf.
CSMA/CA Carrier Sense Multiple Access with Collision Avoidance; Wi-Fi’s medium-access protocol. Before transmitting, a station listens for activity; if the channel is busy it backs off a random interval to reduce collisions.
DDoS Distributed Denial-of-Service; attack that floods a target with traffic from many compromised hosts to exhaust bandwidth or processing capacity and make it unavailable.
DNS Domain Name System; a distributed, hierarchical database that translates hostnames (example.com) to IP addresses through a chain of recursive and authoritative resolvers.
File System OS layer that organizes persistent data into named files and directories on storage devices, managing metadata, permissions, and allocation.
Flow Control TCP mechanism where the receiver advertises a window size limiting how much unacknowledged data the sender may have in flight, preventing the receiver from being overwhelmed.
Forward Secrecy Cryptographic property where each session uses an ephemeral key pair so that compromise of a long-term key cannot decrypt previously captured sessions.
GPU Graphics Processing Unit; a processor with thousands of small cores optimized for massively parallel computation - graphics rendering, machine learning, and scientific simulation.
Hyperscale Massive data center design employed by cloud providers that scales horizontally across hundreds of thousands of commodity servers with software-defined networking and infrastructure.
Hyper-threading Intel’s simultaneous multithreading implementation where each physical core presents two logical processors to the OS, sharing execution units to reduce pipeline stalls during memory waits.
Hypervisor Software layer that creates and manages virtual machines by abstracting physical hardware; Type 1 runs on bare metal, Type 2 runs inside a host OS.
I/O Input/Output; data transfer between memory and external devices such as disks, network interfaces, and keyboards. I/O is orders of magnitude slower than CPU operations.
Inode Unix filesystem data structure storing file metadata (size, permissions, timestamps, block pointers) separately from the filename; a directory entry maps name to inode number.
IP Address Numerical label assigned to a network interface. IPv4 is 32 bits (e.g., 192.168.1.1); IPv6 is 128 bits (e.g., 2001:db8::1).
IXP Internet Exchange Point; neutral physical facility where many autonomous systems connect to exchange traffic directly, reducing latency and eliminating the need to pay transit providers.
Kernel Core of an operating system that manages hardware resources - CPU scheduling, memory, file systems, and devices - and exposes them to processes through system calls.
LAN Local Area Network; a network spanning a building or campus where devices share one broadcast domain and communicate at Ethernet or Wi-Fi speeds.
MFA Multi-Factor Authentication; security practice requiring two or more independent verification factors (e.g., password plus hardware key or TOTP code) to authenticate a user.
MIMO Multiple Input Multiple Output; uses multiple antennas at transmitter and receiver to send parallel spatial streams, multiplying throughput. MU-MIMO extends this to serve several clients simultaneously on the same channel.
MMU Memory Management Unit; CPU hardware that translates virtual addresses to physical addresses using page tables maintained by the OS, enforcing process isolation and access protection.
NAT Network Address Translation; maps many private IP addresses (RFC 1918) to a single public IP by rewriting packet headers and tracking port mappings.
NUMA Non-Uniform Memory Access; multi-socket server architecture where memory access latency depends on which socket’s memory is accessed, requiring NUMA-aware thread and memory placement.
OFDM Orthogonal Frequency-Division Multiplexing; Wi-Fi modulation scheme that splits a channel into many narrow parallel subcarriers, improving resistance to multipath interference. Wi-Fi 6 extends this to OFDMA for multi-user access.
Operating System System software that abstracts hardware and provides services - process isolation, virtual memory, file systems, networking - to applications through a system call interface.
OSI Model Seven-layer reference model for network protocol design (Physical, Data Link, Network, Transport, Session, Presentation, Application); more useful as a teaching framework than a strict implementation specification.
OSPF Open Shortest Path First; link-state interior routing protocol that floods topology information to all routers and runs Dijkstra’s algorithm to compute shortest paths within an autonomous system.
Out-of-Order Execution CPU optimization that dynamically reorders instructions to keep execution units busy while earlier instructions wait on cache misses or other dependencies.
Packet Unit of data transmitted over a network. Carries a header with source/destination addresses and a TTL, plus a payload. IP provides best-effort datagram delivery.
Page Fault Exception triggered when a process accesses a virtual address with no current physical mapping; the OS handles it by allocating a page frame or loading the page from disk.
Peering Direct traffic exchange between two autonomous systems at an IXP or private interconnect, typically without payment when traffic volumes are roughly symmetric.
Process Running instance of a program with its own virtual address space, file descriptor table, and OS resources. Isolation between processes is enforced by the kernel.
Protocol Formal agreement on message formats and exchange sequences between communicating systems. TCP provides reliable ordered delivery; UDP provides low-overhead datagram delivery.
QUIC Transport protocol over UDP providing reliable ordered delivery, stream multiplexing, and integrated TLS 1.3; eliminates TCP’s head-of-line blocking and reduces connection setup latency.
RAM Random Access Memory; volatile memory holding running programs and active data. Access latency is nanoseconds - much faster than SSDs (microseconds) or HDDs (milliseconds).
Routing Forwarding packets across networks using routing tables and longest-prefix matching. BGP exchanges routes between autonomous systems on the internet; OSPF routes within one.
RSSI Received Signal Strength Indicator; vendor-specific measure of received radio power, expressed in dBm. Used by clients to select access points and by both ends to adapt the transmission rate to current link quality.
SIMD Single Instruction, Multiple Data; CPU instruction set extension (SSE, AVX, NEON) that applies one operation to a vector of values simultaneously, enabling data-level parallelism.
SSD Solid State Drive; non-volatile flash storage with microsecond access latency. No moving parts; faster and more durable than magnetic HDDs but more expensive per byte.
SSID Service Set Identifier; the human-readable name of a Wi-Fi network, carried in beacon frames broadcast by the access point. Multiple access points sharing an SSID form an ESS, enabling client roaming across the coverage area.
System Call Controlled entry point into the kernel that lets a user-space process request privileged operations such as file I/O, memory allocation, or socket communication.
TCP Transmission Control Protocol; adds reliable ordered delivery, retransmission, flow control, and congestion control on top of IP using a three-way handshake to establish connections.
Thread Unit of execution within a process. Threads share the process address space, enabling low-latency communication but requiring explicit synchronization to avoid races.
TLB Translation Lookaside Buffer; per-core hardware cache of recent virtual-to-physical page mappings; a hit avoids a full page-table walk, dramatically reducing address-translation overhead.
TLS Transport Layer Security; cryptographic protocol that negotiates session keys and encrypts data (typically with AES-GCM) to provide confidentiality, integrity, and server authentication.
TTL Time-to-Live; field in IP packets decremented by each router hop; when it reaches zero the packet is dropped, preventing routing loops from circulating indefinitely.
UDP User Datagram Protocol; connectionless transport with no handshake, ordering, or retransmission. Used where low latency matters more than reliability: DNS, games, video streaming.
Virtual Memory Abstraction giving each process its own address space, backed by physical RAM and disk paging. Enables isolation, memory-mapped files, and programs larger than physical RAM.
WAN Wide Area Network; a network spanning cities or continents that interconnects multiple LANs through routers. The internet is the largest WAN.
Wi-Fi Brand name for wireless LAN technology certified under the IEEE 802.11 standard family. Operates in unlicensed spectrum (2.4, 5, and 6 GHz) using OFDM modulation and CSMA/CA medium access control.
WPA3 Wi-Fi Protected Access 3; current Wi-Fi security standard. Uses SAE (Simultaneous Authentication of Equals) instead of WPA2’s PSK handshake, eliminating offline dictionary attacks and providing forward secrecy per session.
XSS Cross-Site Scripting; injection attack where malicious scripts are embedded in pages served from a trusted site and execute in victims’ browsers, stealing session tokens or redirecting users.
Imperative Languages
Access Modifier Keyword controlling visibility of a declaration outside its defining scope: pub in Rust, private/protected/public/internal in C# and C++.
Borrow Checker Rust compiler component that enforces ownership and borrowing rules at compile time, guaranteeing memory safety without a garbage collector.
Borrowing Temporary access to a value through a reference without transferring ownership; Rust enforces either any number of shared (&T) references or exactly one exclusive (&mut T) reference at a time.
Closure Anonymous function that captures variables from its enclosing scope. Capture mode (borrow, copy, or move) determines whether the captured value is shared or owned.
Concurrency Composition of independently executing computations. Requires synchronization when threads share mutable state; message passing avoids shared state entirely.
Cooperative Multitasking Concurrency model where tasks explicitly yield control at suspension points, allowing others to run without OS context switches; the basis of async/await in Rust, Python, and C#.
Crate Rust’s unit of compilation and distribution; a library or binary with a Cargo.toml manifest specifying dependencies, metadata, and build configuration.
Data Race Concurrent access to shared memory where two threads access the same location simultaneously and at least one writes, with no synchronization; produces undefined behavior.
Deadlock State where two or more threads each hold a lock the other needs, blocking indefinitely with no progress possible.
Drop Trait Rust trait whose drop method runs automatically when a value goes out of scope, enabling deterministic cleanup of resources without a garbage collector.
Enum Type representing exactly one of a fixed set of named variants. In Rust, variants can carry data, making enums full algebraic sum types. In C++, enums are integer aliases.
Error Propagation Forwarding a failure from a callee to its caller without handling it. Done implicitly by exception unwinding in C++/C#/Python; explicitly with Rust’s ? operator.
Exception Object representing a runtime error that interrupts normal control flow and unwinds the call stack until a matching handler catches it.
Function Named, reusable unit of computation taking zero or more parameters and optionally returning a value. Functions are the primary abstraction in imperative programming.
Garbage Collection Automatic runtime memory management that traces reachable objects and reclaims unreachable heap allocations. Eliminates manual deallocation but introduces pause overhead.
Generic Type or function parameterized by one or more type variables. Instantiated at compile time (monomorphization in Rust/C++) or via type erasure (Java/C# generics).
Green Threads Lightweight user-space threads managed by the language runtime rather than the OS scheduler; faster to create and context-switch than OS threads, enabling millions of concurrent tasks.
Heap Dynamically allocated memory region where objects with runtime-determined lifetimes are stored; allocation and deallocation are explicit (C/C++) or runtime-managed (GC, reference counting).
Lambda Inline anonymous function expression; in C++ and Rust may capture variables from the enclosing scope (making it a closure) or operate as a plain function pointer when no captures are needed.
Lifetime Rust annotation describing how long a reference remains valid. The borrow checker enforces that references never outlive the data they point to.
Macro Compile-time code transformation. Rust declarative macros match token patterns; procedural macros receive a token stream and emit new code. C preprocessor macros are textual.
Memory Leak Heap allocation that remains live but is no longer reachable by any reference; accumulates over time, eventually exhausting available memory.
Module Named scope grouping related items and controlling their visibility. Rust modules must be explicitly declared; Python modules map one-to-one to files.
Move Semantics Transfer of resource ownership from one variable to another, invalidating the source. Avoids deep copies for heap-allocated types. Used in Rust (always) and C++11+ (explicit).
Mutability Whether a binding’s value can change after initialization. Rust and many modern languages default to immutable; mutation requires an explicit mut annotation.
Namespace Named scope that organizes identifiers and prevents collision between unrelated code; accessed via qualified paths (e.g., std::io::Read in Rust, System.IO in C#).
Operator Overloading Defining custom behavior for built-in operators on user types. Rust uses trait implementations (e.g., impl Add); Python uses dunder methods; C# uses operator keywords.
Option Type Generic algebraic type encoding a possibly-absent value with Some(T) and None variants; forces explicit handling of absence at compile time, eliminating null pointer errors.
Ownership Rust’s rule that every value has exactly one owner; when the owner goes out of scope, the value is dropped. Ownership is the foundation of Rust’s memory safety guarantees.
Panic Rust mechanism for unrecoverable errors (failed assertions, index out of bounds) that unwinds the stack, runs destructors, and terminates the thread.
Pattern Matching Structural decomposition of a value in a match expression. Rust enforces exhaustiveness at compile time. Can destructure enums, tuples, structs, and apply guards.
Pointer Variable holding a memory address. Raw pointers in C/C++ carry no lifetime or ownership guarantees. Rust raw pointers (*const T, *mut T) require unsafe to dereference.
RAII Resource Acquisition Is Initialization; C++ idiom tying resource lifetime to object lifetime via destructors. Rust’s Drop trait is the direct equivalent.
Reference Borrow of a value without taking ownership. In Rust, shared (&T) or exclusive (&mut T); the borrow checker enforces that only one exclusive reference exists at a time.
Reference Counting Memory management strategy that tracks active owners of a heap allocation; when the count drops to zero the memory is freed immediately. Cycles prevent reclamation without supplemental collection.
Result Type Generic algebraic type encoding a fallible operation with Ok(T) for success and Err(E) for failure; forces callers to handle both cases explicitly.
Scope Region of code where a name is valid. In Rust and C++, scope determines when destructors run and heap memory is freed. Nested scopes shadow outer bindings.
Stack Per-thread memory region that holds function call frames and local variables; allocation and deallocation are automatic (push/pop) and extremely fast relative to heap operations.
Stack Unwinding Process of exiting nested scopes and calling destructors when an exception or panic propagates, cleaning up resources before the thread terminates or the exception is caught.
Struct Named composite type grouping related fields by name. A value type on the stack by default in Rust and C++. In C#, struct is a value type while class is a reference type.
Thread Safety Property of code that executes correctly when called concurrently from multiple threads; typically achieved via synchronization primitives, immutable shared state, or Rust’s Send/Sync traits.
Trait Rust abstraction defining a set of method signatures a type must implement. Used for generic bounds (T: Display) and dynamic dispatch (dyn Trait).
Type Inference Compiler-deduced type for a variable or expression when not explicitly annotated. Rust infers types from usage context; C++ uses auto; Python uses runtime duck typing.
Unsafe Rust keyword enabling operations the borrow checker cannot verify: raw pointer dereference, calling C FFI functions, and accessing mutable statics. Must be audited manually.
Use-After-Free Memory safety bug where code accesses heap memory after it has been freed; produces undefined behavior and is a common source of exploitable security vulnerabilities.
Variable Named binding associating an identifier with a value in memory. In Rust, bindings are immutable by default. In Python, a variable is a reference to a heap object.
Variance How subtyping of a generic container relates to subtyping of its element type: covariant (read-only), contravariant (write-only), or invariant (read-write).
Declarative Languages
Applicative Type class for applying wrapped functions to wrapped values: (<*>) :: f (a -> b) -> f a -> f b. Stronger than Functor, weaker than Monad; allows parallel effect composition.
Catamorphism Generalization of fold; recursively reduces an algebraic data structure to a single value by applying a combining function at each node. Called foldr on lists.
Combinator Higher-order function built entirely from other functions, carrying no external state. Combinators compose to build complex behavior from simple pieces: map, filter, compose.
Currying Transforming a function of N arguments into a chain of N single-argument functions. All Haskell functions are curried by default; partial application is the idiomatic result.
Functor Type class for structures that can be mapped over: fmap :: (a -> b) -> f a -> f b. Lists, Maybe, and IO are all Functors. Preserves structure while transforming contained values.
Higher-Kinded Type A type that takes another type as a parameter: * -> * in Haskell (e.g., Maybe, []). Required to abstract over Functor, Monad, and similar classes.
Immutability Data that cannot be modified after creation. The default in purely functional languages; eliminates a class of aliasing and concurrency bugs. Shared immutable values need no synchronization.
Lazy Evaluation Deferring computation until the result is demanded. Haskell is lazy by default, enabling infinite data structures. Avoids work for values never consumed but complicates reasoning about space.
Monad Abstraction for sequencing computations in a context: provides return :: a -> m a and (>>=) :: m a -> (a -> m b) -> m b. Encodes IO, state, failure, and non-determinism uniformly.
Monad Transformer Type constructor that stacks one monadic effect on top of another. StateT s Maybe a combines stateful computation with possible failure; avoids nested bind calls.
Pattern Matching Structural decomposition of algebraic data types in a case or match expression. The compiler enforces exhaustiveness, preventing unhandled cases at compile time.
Pure Function Function whose output depends only on its inputs and that causes no observable side effects. Pure functions are referentially transparent and trivially composable and testable.
Recursion Primary looping mechanism in functional languages, replacing mutable loop counters. Structural recursion follows the shape of the data; tail recursion avoids stack growth when optimized.
Referential Transparency Property of an expression: it can be replaced by its value anywhere without changing program behavior. Implies no side effects. Enables equational reasoning and aggressive compiler optimization.
Side Effect Observable action beyond returning a value: I/O, mutation, exception, or non-determinism. Functional languages isolate side effects in a Monad (Haskell IO) or effect system to maintain purity elsewhere.
Tail Call Function call in the tail position of its caller. Tail-call optimization (TCO) reuses the caller’s stack frame, enabling tail-recursive functions to run in O(1) stack space. Haskell and Scheme guarantee TCO.
Type Class Interface-like abstraction in Haskell and Scala defining behavior over types. Eq, Ord, Show, and Functor are standard type classes; instances provide implementations per type.
Type Inference Hindley-Milner algorithm that deduces principal types without explicit annotations. Used in Haskell, ML, F#, and Rust. Produces the most general type for each expression.
Unfold / Anamorphism Dual of catamorphism; generates a (possibly infinite) structure from a seed value by repeatedly applying a step function. Used to produce streams, trees, and corecursive data.