Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Glossary

One line each. The chapter in brackets explains the term in full; the numbers follow the book’s contents.

TermMeaning
ADR“Architecture decision record”: a short note of one design choice, why it was made, and what it costs. [26]
agentThe small program inside a warm sandbox that loads your handler, forks per request and speaks Zygo’s protocol. [6]
backendWhere Zygo draws the wall: ns (host kernel), gvisor (user-space kernel), vm (virtual machine). [6]
bind mountShowing an existing file or folder at a second place; how your code gets into a sandbox. [4]
blobA tar file stored by the API under its hash, sent into a request as its workspace. [17]
blue/greenReplacing a running thing by warming the new one first, then switching; zygo up does this. [16, 19]
BPFA tiny, safe program format the kernel can run; seccomp filters are written in it. [4]
capabilityOne named piece of root’s power, such as CAP_NET_ADMIN; a sandbox drops them all. [1, 4]
cgroupA group of processes the kernel counts and limits together. [3]
cgroup.killA file that kills every process in a cgroup in one write. [3]
chrootThe old way to change a process’s root folder; easy to escape, replaced by pivot_root. [4]
clone3The syscall that starts a child process, optionally in new namespaces. [2]
containerA process with namespaces, a cgroup and filters on it, plus a tool’s records about it. [5]
controllerThe part of cgroups that handles one resource: memory, CPU, pids, I/O. [3]
copy-on-writeSharing memory pages after a fork and copying one only when it is written. [1]
daemonA program that runs in the background waiting for requests, such as dockerd. [5]
delegationGiving a normal user one branch of the cgroup tree to manage. [3]
dependency setA venv built once from lock files sent to POST /deps, for a runtime pool to use. [17]
deploy rightsPermission to create, change or destroy sandboxes through the API, not only call them. [17]
digestsha256:…, the hash that names an image, a layer, a script or a blob exactly. [5, 15]
dynamic linkingA program that loads shared libraries such as libc.so from the machine when it starts; it needs those files inside the sandbox. [6, 12]
egressTraffic going out of the sandbox; Zygo’s egress mode allows only listed names. [4, 6]
exec (execve)Replacing a process’s program with a new one from disk. [1]
favordynmodsA cgroup2 mount option that makes moving a process between cgroups cheap, at a small cost to every fork and exit; zygo doctor --fix can turn it on. [22, 25]
forkMaking a copy of the calling process. [1]
gVisorA kernel written in Go that runs in user space and answers a sandbox’s syscalls. [10]
HexThe package registry for Elixir and Erlang, as PyPI is for Python; the Elixir client is zygo_sdk there. [17]
imageA file system stored as layers, plus a little metadata; the OCI standard defines it. [5]
jailFreeBSD’s kernel object that confines a group of processes. [9]
KVMThe Linux feature that lets it run virtual machines using the CPU’s hardware support. [10]
LandlockA Linux feature that lets a process limit its own file and network access. [4]
layerOne tar file of changes in an image, named by the hash of its content. [5]
layer (of a spec)One sandbox.toml table — [defaults], [fn.NAME] or [runtime.NAME] — with every field optional, merged over the one below; what the API’s PUT /fn/{name} and POST /run bodies carry. [17, 20]
LimaThe tool Zygo uses to run a Linux virtual machine on a Mac. [11]
MCPModel Context Protocol: how an AI agent host starts and talks to a tool server; zygo mcp is one. [17]
microVMA very small virtual machine that boots fast, such as Firecracker’s. [10]
namespaceA separate copy of one kind of kernel table — mounts, pids, network — for a group of processes. [2]
no_new_privsA flag that stops a process and its children from ever gaining power, even through setuid. [4]
OCIThe Open Container Initiative, and its standards for images, registries and runtimes. [5]
OOM killerThe part of the kernel that kills a process when memory runs out; with cgroups, only inside the group. [3]
operatorWhoever runs the Zygo host; an operator token may act for any tenant. [17]
OTLPOpenTelemetry’s protocol for sending metrics to a collector. [17]
outcome fileThe JSON zygo run --outcome writes, saying why a sandbox ended. [21]
overlayfsA file system that stacks folders and shows them as one; how image layers become a root. [4]
p50 / p99The median time, and the time 99 requests in 100 beat. [25]
pastaA program that connects a network namespace to the host’s network in user space, without root. [4]
paused / coldA warm function after idle_timeout (frozen, still in memory) and after cold_after (dropped). [13]
pidA process’s number. [1]
pivot_rootSwapping a mount namespace’s root for a new one, so the old root can be removed. [4]
prefork poolWorker processes forked from one that has already loaded the code, such as Python’s forkserver or gunicorn --preload; fast, with no sandbox of its own. [10]
PSS / RSSMemory a process uses, with shared pages split between sharers (PSS) or counted in full (RSS). [7, 25]
registryA server that stores images, such as Docker Hub or GitHub’s. [5, 15]
rlimitAn old per-process limit, such as the number of open files. [4]
rootuid 0, the user that passes most permission checks. [1]
rootlessRunning without root at any point, thanks to user namespaces. [2, 6]
runtime poolWarm zygotes holding an interpreter and no code; each request brings its own script. [13]
sandbox.tomlThe file that describes a project’s functions, pools and API. [20]
SBOM“Software bill of materials”: the list of every library inside a binary, with versions, published with each release. [11]
seccompA filter on which syscalls a process may make. [4]
session sandboxA sandbox that stays up for minutes or hours with its state kept between commands, as hosted agent platforms sell; the opposite of a call. [10]
setnsThe syscall that joins a namespace that already exists. [2]
setuidA mark on a program that makes it run as its owner, often root. [4]
static linkingA program that carries all its library code inside its own file, so it runs on almost any image. [6, 12]
supervisorZygo’s process that keeps zygotes, hands out requests and enforces deadlines, under your user. [6]
syscallA request from a program to the kernel. [1]
tapA GitHub repository of Homebrew formulas; brew install mhmtskrc2/zygo/zygo installs Zygo from one. [11]
task runnern8n’s name for the process that runs a Code node’s code apart from n8n itself; n8n’s task broker hands it the tasks. [10, 25]
tenantOne customer of whoever embeds Zygo; has its own scripts, secrets, limits and tokens. [14, 17]
tmpfsA file system in memory that disappears when no longer used. [4]
tokenA secret a caller sends to the API to prove who it is: operator or tenant. [17]
uidA user’s number; uid_map translates uids between a user namespace and the host. [1, 2]
user spaceEverything outside the kernel: all normal programs. [1]
warm-execZygo’s mode where the sandbox is kept ready and each request is a new process entered into it. [6]
WebAssembly (Wasm)A portable instruction format that runs inside a runtime’s own process and can reach only what the runtime hands it; code must be compiled for it. [10]
workspaceA folder of files sent in with one request, and optionally returned with the result. [17]
zygo.lockThe file zygo up writes to record which image digests and package versions were used. [20]
zygoteA process that has done its start-up and is forked for every request; the name comes from Android. [6]