← Back
Home › Systems › Operating systems and runtimes

ebpf-platform

eBPF observability and networking

Cilium, bpftrace

SystemTechniques · 4Primitives · 21 ebpf-platform Dataflow analysiscompilers · medium: Compute a fact per program point (live variables, reaching definitions, available expressions) by iterating transfer functions over the CFG to a fixed point.›Stack unwindingcompilers · medium: Frame-pointer, DWARF CFI and compact unwinding of call stacksDynamic instrumentation probeshardware-os · medium: Kprobes, uprobes and tracepoints: patch breakpoints at runtime and run handlersDebug info (DWARF)compilers · medium: DWARF stores a tree of typed entries (DIEs), a line-number bytecode, unwind tables and location expressions that map machine state back to source; pick it for ELF/Mach-O debug builds.›Ebpfhardware-os · low: Verified in-kernel programs on hooks (kprobes, XDP, tc) with mapsMachine code emissioncompilers · low: Encode instructions to bytes for x86-64 and AArch64, branch relaxation, constant poolsHdr histogramdata-structures · low: Log-linear bucketed histograms with bounded relative error for latency percentilesSPSC ring bufferdata-structures · low: Bounded wait-free queue for exactly one producer and one consumer thread, built from an array and two indices with acquire/release ordering.›Cgroups and namespaceshardware-os · low: Linux namespaces limit what a process can see; cgroup v2 limits and accounts what it may use. Containers, sandboxes and job schedulers are built from the two.›Connection trackingnetworking · low: Per-flow state table (5-tuple, TCP state, timeouts) for stateful packet handlingEbpf xdpnetworking · low: EBPF programs at the XDP/tc hooks for in-kernel packet processing at line rateLongest prefix matchnetworking · low: IP prefix lookup structures (DIR-24-8, Poptrie, LC-trie) for routes, ACLs and geo-IPMaglev hashingnetworking · low: Consistent hashing into a fixed prime-size lookup table filled by per-backend permutations; O(1) lookups, near-perfect balance, little disruption on backend changes.›Control-flow graphcompilers · low: Split a linear instruction list into basic blocks and connect them by jumps; the graph every optimizer, SSA builder and dataflow pass walks.›Topological sortgraphs · low: Order the vertices of a DAG so every edge points forward; the core of build systems, schedulers and dependency resolution, with cycle detection for free.›Calling conventions abicompilers · low: System V, Windows x64 and AAPCS64 ABIs: argument registers, stack frames, struct passing, FFIExecutable formats elf pecompilers · low: ELF, PE and Mach-O: sections, segments, symbol tables, relocations, dynamic loadingBreakpoints watchpointscompilers · low: Software breakpoints (int3 patching), hardware debug registers and single-steppingDisassemblycompilers · low: Instruction decoding for x86 (prefixes, ModRM, variable length) and ARM; linear sweep vs recursive traversalVarint (LEB128)compression · low: Variable-length integers in 7-bit groups with a continuation bit; small numbers take 1 byte, the wire format of Protobuf, WebAssembly and DWARF.›+ 5 more primitives

Similar systems

Share the most building blocks with this one.