Words

Thirty words the machines share. Each one says what the word means in a few dozen words and then points at the machine that actually explains it, because the explanation belongs on a machine you can operate rather than in a definition you can only read.

A word earns its place here only if more than one machine needs it. That is the same rule the method already applies to groundings, at the grain of a term rather than a topic.

Nothing on this page is written twice. The body under each word is the only new prose; the machine that owns it is a single pointer, and the list of other machines using the word is read out of those machines’ own pages every time this page is built. A word that no longer appears where it claims to appear fails the build rather than going quietly stale.

The vocabulary

30 words. Each one points at the machine that explains it and stops there.

alignment

Whether a piece of data starts where the hardware would prefer it to. Get it wrong and something that looks like one access becomes two, or two things that look independent land on the same line and stop being independent.

Explained in False Sharing.

Also used by Floating Point, The Call Stack, Fragmentation, SIMD.

alphabet

The fixed set of things a code is allowed to say. Its size sets the floor on how long the codes must be, so choosing the alphabet is already most of the design. Everything after it is a question of which symbol gets which code.

Explained in Morse.

Also used by Baudot, Punch Cards, Huffman, ASCII, Z-Characters, LZW.

atomic

Happening completely or not at all, with nothing able to observe a half-done version. It is a claim about what others can see rather than about speed, and almost every concurrency bug here is something that was assumed atomic and was not.

Explained in Compare and Swap.

Also used by Race, False Sharing, Two-Phase Commit.

bias

A consistent lean in one direction, as opposed to noise. Noise averages out over many trials and bias does not, so an estimator can be extremely repeatable and still be reliably wrong by the same amount every time.

Explained in Count Distinct.

Also used by Floating Point, UTF-8, The Shuffle.

burst

Errors arriving together rather than scattered. Most codes are built for scattered errors and fall over on a run of them, which is why a burst is usually broken up before it is corrected rather than corrected where it lies.

Explained in Interleave.

Also used by Score Reel, Hamming, CRC, Backoff, Fringes, DMA.

codeword

The full pattern actually transmitted, message and check bits together. Codes are compared by how far apart their codewords are, because that distance is exactly how much corruption can happen before one is mistaken for another.

Explained in Reed-Solomon.

Also used by Huffman, CRC, Interleave.

dictionary

The table of things already seen, used to write later repeats short. The interesting trick is that both ends can build the same table from the data itself, so the table never has to be sent.

Explained in LZW.

Also used by LZ77, Z-Characters, LSM-Tree.

entropy

The average number of bits a source genuinely needs, given how often each symbol appears. It is a floor no lossless coder can beat, which turns compression from a competition of tricks into a measurable distance from a limit.

Explained in Arithmetic Coding.

Also used by Huffman, PNG Filters.

eviction

Choosing what to remove when something new needs the space. Every cache is a bet that what it kept will be wanted again, and the eviction rule is the bet. Getting it wrong costs more than not caching at all.

Explained in CPU Cache.

Also used by Page Fault, Cache Coherence.

exponent

The part of a number that says where the point sits, so the same few digits can describe something enormous or something tiny. It is why the format's range is huge and its precision is not, and the two facts are the same fact.

Explained in Floating Point.

Also used by Diffie-Hellman, Signature, Reed-Solomon, Metastability.

isolation

How much one concurrent operation is allowed to see of another's unfinished work. Perfect isolation is easy if only one thing runs at a time, so every practical level is a trade of visibility against how much can happen at once.

Explained in MVCC.

Also used by False Sharing, Spectre.

kernel

The part that runs with the privilege to touch everything, so that ordinary programs do not have to. Its size is a design argument: everything inside it is trusted by everything outside it.

Explained in Context Switch.

Also used by The Inode.

offset

How far into something a piece sits, counted from its start. Splitting an address into a which-block part and a how-far-in part is what lets the first part be translated or looked up while the second is carried through untouched.

Explained in Page Fault.

Also used by Hash Table, Fifteen Planes, Bloom Filter, The Inode, False Sharing.

overflow

What happens when the answer will not fit in the space kept for it. The bits that remain are not nonsense, they are the true answer with the top ones discarded, which is why the result is often a specific wrong number rather than an error.

Explained in Two's Complement.

Also used by The Interrupt, Eight Sprites, Merge Collapse.

parity

One extra bit, or one extra disk, holding whether the count of ones is even. It cannot say which piece is wrong, but given every piece except one it can rebuild the missing one exactly. That asymmetry is why it is cheap and why it is limited.

Explained in RAID Parity.

Also used by The Adder, Score Reel, Hamming, Garbage, ASCII, Checkout, Zero Address, Interleave, Premultiplied Alpha, Slow Start, UTF-8, Rowhammer, Reed-Solomon.

pointer

A value whose meaning is where something else is. Following one costs a trip, so the shape of a structure is largely a question of how many pointers must be followed before the thing you wanted is in your hands.

Explained in B-tree.

Also used by LZ77, The Call Stack.

precision

How finely a format can distinguish two nearby values. It is not accuracy: a value can be stored to many digits and still be wrong. Running out of precision is what makes two different things compare as equal.

Explained in Z-Buffer.

Also used by Dithering, Premultiplied Alpha, Floating Point, Spectre, Packet Switching, Metastability, Arithmetic Coding.

quantisation

Replacing a continuous range with a limited set of steps. It is where information is deliberately thrown away, and the whole craft is choosing what to discard so the loss lands somewhere nobody looks.

Explained in JPEG.

Also used by CORDIC, Masking.

redundancy

Bits that carry no message and exist only so that a change can be noticed. Add none and any corruption reads as data; add plenty and you can find or repair the damage. What you get back is always paid for in what you send.

Explained in CRC.

Also used by Huffman, Checkout, RAID Parity, Packet Switching, Reed-Solomon, Spanning Tree.

reference

A way of naming something without holding it. Two references can point at one object, so the object is alive while any of them can still be reached, and dead when none can. Deciding which is which is harder than it sounds.

Explained in Garbage.

Also used by Punch Cards, Compare and Swap, Raster, Zero Address, Fringes, LZ77, Eight Sprites, LZW, JPEG, Merkle DAG, Fragmentation, AES.

rounding

Choosing a representable number when the true answer is not one. It is not an error in the sense of a mistake, it is the price of a finite format, and it is decided by a rule rather than by chance. The rule is what makes results reproducible.

Explained in Floating Point.

Also used by The Adder, Score Reel, CORDIC, Page Fault, Fifteen Planes, Bloom Filter, Dithering, Zero Address, JPEG, Gamma, PageRank, Count Distinct, The Middle Square, DMA, Fragmentation, SIMD, FFT, Consistent Hashing.

scheduler

The part that decides which waiting thing runs next, and for how long. It does not make anything faster; it decides who waits. Nearly every fairness or starvation argument in this collection is really an argument about a scheduler's rule.

Explained in Round Robin.

Also used by The Interrupt, Context Switch, Out of Order, Deadlock, Race, Compare and Swap, Backoff, MVCC, Write-Ahead Log, False Sharing, Cache Coherence, Memory Ordering.

seed

The number a pseudorandom sequence starts from. The same seed gives the same sequence every time, which is what makes a random-looking demonstration reproducible and a failing test re-runnable. Randomness you cannot repeat is randomness you cannot debug.

Explained in The Shuffle.

Also used by Hash Table, Fifteen Planes, Backoff, LZW, Longest Prefix, The Middle Square, Packet Switching, Carry-Lookahead Adder.

state

Whatever a circuit still knows after its inputs stop telling it. A machine with no state answers the same question the same way forever; a machine with state can answer differently because of what already happened to it. Almost every mechanism here that surprises you is storing something.

Explained in Flip-Flop.

Also used by Punch Cards, Core Memory, The Interrupt, Context Switch, ASCII, Deadlock, DRAM Refresh, Sequence Numbers, MVCC, Branch Prediction, Cache Coherence, Longest Chain, UTF-8, Gamma, Merge Collapse, Merkle DAG, Count Distinct, Rowhammer, Spectre, The Middle Square, The Shuffle, Regular Expressions, Memory Ordering, AES, Copy-on-Write, Metastability, Two-Phase Commit, Spanning Tree, Consistent Hashing.

symbol

One unit of whatever is being encoded, before any decision about how to write it down. Keeping the symbol separate from its code is what lets the same message be written short or long, and lets two encoders be compared on the same input.

Explained in Huffman.

Also used by Hamming, Checkout, Fringes, LZ77, Z-Characters, Interleave, UTF-8, Regular Expressions, Reed-Solomon, Arithmetic Coding.

syndrome

What the check bits say when they disagree with the data. It is computed the same way whether or not anything is wrong, and its value points at the fault rather than merely announcing one, which is what separates correcting from detecting.

Explained in Hamming.

Also used by Interleave.

threshold

The line above which something counts and below which it does not. Moving it trades one kind of mistake for the other, and there is usually no setting that avoids both. Where you put it is a decision about which error you would rather make.

Explained in Masking.

Also used by Core Memory, Bloom Filter, Raster, Slow Start, Longest Chain, Count Distinct, Rowhammer.

transaction

A group of changes that must all happen or none of them. The hard part is not doing the work, it is being able to undo it after a crash that arrived in the middle, which is why the intention is usually written down before the change.

Explained in Write-Ahead Log.

Also used by MVCC, Cache Coherence, Two-Phase Commit.

trap

A deliberate interruption caused by the running program itself, handing control to something more privileged. Unlike a hardware interrupt it happens exactly where the program put it, which is what makes it usable as a door rather than an accident.

Explained in Context Switch.

Also used by Page Fault, DMA, Copy-on-Write, Two-Phase Commit.

window

How much may be in flight before the sender has to stop and wait. Widen it and throughput rises until something else is the limit; narrow it and the link idles between acknowledgements. The size is a bet about the round trip.

Explained in Sequence Numbers.

Also used by DRAM Refresh, Backoff, LZ77, Interleave, Slow Start, Rowhammer, FFT, Two-Phase Commit.

What this page does not do

It does not explain anything, on purpose

Every body here is between twenty and sixty words, and that is not enough to explain a mechanism. They are not meant to. A word earns a place only when it points at a machine that already explains it properly, and the entry stops at the pointer. If you find yourself wanting more from an entry, that is the page working: the machine it names is the more.

Four words qualified and were left out

The rule for admission is measurable: a word belongs only if more than one machine uses it, and that is counted from the machines’ own prose rather than decided by hand. Thirty are here. Four more cleared the same count and were left out, and they are named in the data rather than dropped quietly: latency, collision, throughput and sector, each of which cleared the bar on exactly two machines and each of which would have needed a body that simply restated one of them. The count is not the whole rule; it is the part of the rule that can be checked.

Only the bodies are written here

Two things in each entry are typed: the body, and the single machine named as owning the explanation. The list of other machines using the word is not typed anywhere. It is read out of those machines’ pages every time this page is built, so it cannot drift while the collection moves, and a word whose owner stops using it fails the build instead of going quietly stale. Four of this studio’s shipped defects were one fact written in two files, which is why this one is written in none.

These are not definitions, and some of them are contested

A word like state or atomic carries a different weight in a database, a processor and a network, and no body this short reconciles those. Each entry says what the word means in the sense the machines here use it, which is a narrower and more honest claim than a dictionary would make. Where a machine uses a word in its own particular way, that machine’s page is the authority and this one is not.