BITROT(8)resurrection.fun manualBITROT(8)

bitrot

bitrot(8) — the manual page

Name

bitrot — the slow corruption of stored data by nothing in particular

Synopsis

bitrot [--scrub] [--ecc] [--wait] SPECIMEN
integrity(t) = integrity(0) · e^(-λt),   λ > 0, always

Description

bitrot names the failure mode of a file that is not being used. No process wrote to it. No user opened it. It sat on the medium and the medium forgot, one cell at a time. The daemon does not cause the rot; it only reports it, which is the most anyone has ever managed.

There is no idle state. A stored bit is a charge held against physics, and physics collects. Invoked with no flags, bitrot leaves the specimen exactly as found and returns the amount by which "exactly as found" has already drifted. The number is never zero for long.

SCRUB and ECC are the only levers, and both are treatments rather than cures. The daemon offers no --safe flag because there is no safe, only --watched. It runs on a schedule until the schedule stops, at which point the specimen resumes rotting unobserved and the count simply stops being taken.

Options

--scrub
Rewrite the specimen from its checksum replica. Returns a pristine copy that begins decaying the instant control returns to you.
--ecc
Post parity over every cell. Catches most flips as they land. Not all. The word "most" is doing the work here.
--wait
Take no action. The default. Statistically the most effective way to advance the rot.
--verify
Read the specimen for no reason except to learn whether it is still true. Usually it is not, slightly.
--panic
Reserved. The Keeper has read the logs for thirty years and has not once panicked.
--forever
Retain the specimen indefinitely. Accepted. Not honored. Nothing is retained indefinitely.

Exit Status

0
the specimen matches its checksum on this pass
1
a cell flipped and parity rewrote it before you noticed
2
a cell flipped, parity missed it, the change is now the record
75
EX_TEMPFAIL: the plate holds, for now, which is the only tense available

History

Rot descends from Old English rotian, \"to decay,\" a verb applied for a thousand years only to things that had once been alive. The compound \"bit rot\" appears in hacker slang by the 1980s, recorded in the Jargon File alongside \"software rot,\" originally the wry claim that unused programs decay on their own. The physical cause was pinned earlier: in 1979 Timothy May and Murray Woods of Intel traced random single-bit DRAM errors to alpha particles emitted by trace uranium and thorium in the chips' own ceramic packaging. Error-correcting memory and end-to-end block checksums followed, which is to say the industry conceded that storage is not a place you leave things but a fire you keep feeding.

Bugs

--scrub reports success. Success is defined as "the rot has been reset to zero, briefly," not "the rot has stopped." Users conflate the two. WONTFIX; the definition is correct.

The integrity meter can read 100% and be wrong: a flip that lands and its checksum both corrupted in the same pass agree perfectly. Undetectable by design. Filed under the universe.

There is no --safe. Multiple requests. The state does not exist.

See Also

tombstone(5), quiescence(1), idempotent(3). The living exhibit demonstrates the word in motion:

▸ operate bitrot

Author

Maintained by The Keeper, who did nothing to the specimen and logged every year of it anyway.

resurrection.fun2026-07-17BITROT(8)