||This article needs additional citations for verification. (July 2011)|
In computing, the bit bucket is jargon for where lost computerized data has gone, by any means; any data which does not end up where it is supposed to, being lost in transmission, a computer crash, or the like, is said to have gone to the bit bucket — that mysterious place on a computer where lost documents go, as in:
- "What happened to that important spreadsheet that I was just editing?"
- "Oh, it went into the bit bucket."
Originally, the bit bucket was the container on Teletype machines or IBM key punch machines into which chad from the paper tape punch or card punch was deposited; the formal name is "chad box" or (at IBM) "chip box".
The term was then generalized into any place where useless bits go. In Unix and Unix-like operating systems, this term is used to refer to /dev/null. On HP OpenVMS, this term refers to device "NLA0:" ("NL:" may also be used). The same Univac 90/60 operating systems such as VS/9, it referred to "*DUMMY". On the DEC PDP-11, the bit bucket is "NL:". On DOS and Windows CMD, it is the "NUL" device, or simply "$null" in PowerShell.
The bit bucket is also used in discussions of bit shift operations. When the width of a given binary number is fixed, one or more bits are lost when performing a simple shift. These bits are said to have "fallen off" or to have "fallen into the bit bucket". Some CPUs move the last bit shifted off the end of a number during a shift into the carry flag during some or all shift operations; since the bit bucket is usually considered the place where discarded (and therefore lost) bits go, the carry flag in this case would probably be excluded from the bit bucket—unless, perhaps, the speaker intended to ignore the bit saved in the carry flag and treat it as though it had been truly discarded.
Such a device is sometimes referred to as a "write once read never" or WORN device (named after the magneto-optical WORM devices used during the 80s), and was indeed implemented as such as an Easter egg in early versions of Atari BASIC.
In programming languages the term is used to denote a bitstream which does not consume any computer resources such as CPU or memory. In .NET Framework-based languages, it is the System.IO.Stream.Null.
See also 
- "Using null stream as bit bucket" — an article on C# at java2s.org.