Node:bug, Next:bug-compatible, Previous:buffer overflow, Up:= B =

bug n.

An unwanted and unintended property of a program or piece of

hardware, esp. one that causes it to malfunction. Antonym of

feature. Examples: "There's a bug

in the editor: it writes things out backwards." "The system

crashed because of a hardware bug." "Fred is a winner, but he has

a few bugs" (i.e., Fred is a good guy, but he has a few

personality problems).

Historical note: Admiral Grace Hopper (an early computing

pioneer better known for inventing COBOL) liked to tell a story in which a

technician solved a glitch in the

Harvard Mark II machine by pulling an actual insect out from

between the contacts of one of its relays, and she subsequently

promulgated bug in its hackish sense as

a joke about the incident (though, as she was careful to admit,

she was not there when it happened). For many years the logbook

associated with the incident and the actual bug in question (a

moth) sat in a display case at the Naval Surface Warfare Center

(NSWC). The entire story, with a picture of the logbook and the

moth taped into it, is recorded in the "Annals of the History of

Computing", Vol. 3, No. 3 (July 1981), pp. 285-286.

The text of the log entry (from September 9, 1947), reads

"1545 Relay #70 Panel F (moth) in relay. First actual case of bug

being found". This wording establishes that the term was already

in use at the time in its current specific sense -- and Hopper

herself reports that the term `bug' was regularly applied to

problems in radar electronics during WWII.

Indeed, the use of `bug' to mean an industrial defect was

already established in Thomas Edison's time, and a more specific

and rather modern use can be found in an electrical handbook from

1896 ("Hawkin's New Catechism of Electricity", Theo. Audel &

Co.) which says: "The term `bug' is used to a limited extent to

designate any fault or trouble in the connections or working of

electric apparatus." It further notes that the term is "said to

have originated in quadruplex telegraphy and have been

transferred to all electric apparatus."

The latter observation may explain a common folk etymology of

the term; that it came from telephone company usage, in which

"bugs in a telephone cable" were blamed for noisy lines. Though

this derivation seems to be mistaken, it may well be a distorted

memory of a joke first current among telegraph operators

more than a century ago!

Or perhaps not a joke. Historians of the field inform us that

the term "bug" was regularly used in the early days of telegraphy

to refer to a variety of semi-automatic telegraphy keyers that

would send a string of dots if you held them down. In fact, the

Vibroplex keyers (which were among the most common of this type)

even had a graphic of a beetle on them (and still do)! While the

ability to send repeated dots automatically was very useful for

professional morse code operators, these were also significantly

trickier to use than the older manual keyers, and it could take

some practice to ensure one didn't introduce extraneous dots into

the code by holding the key down a fraction too long. In the

hands of an inexperienced operator, a Vibroplex "bug" on the line

could mean that a lot of garbled Morse would soon be coming your

way.

Further, the term "bug" has long been used among radio

technicians to describe a device that converts electromagnetic

field variations into acoustic signals. It is used to trace radio

interference and look for dangerous radio emissions. Radio

community usage derives from the roach-like shape of the first

versions used by 19th century physicists. The first versions

consisted of a coil of wire (roach body), with the two wire ends

sticking out and bent back to nearly touch forming a spark gap

(roach antennae). The bug is to the radio technician what the

stethoscope is to the stereotype medical doctor. This sense is

almost certainly ancestral to modern use of "bug" for a covert

monitoring device, but may also have contributed to the use of

"bug" for the effects of radio interference itself.

Actually, use of `bug' in the general sense of a disruptive

event goes back to Shakespeare! (Henry VI, part III - Act V,

Scene II: King Edward: "So, lie thou there. Die thou; and die our

fear; For Warwick was a bug that fear'd us all.") In the first

edition of Samuel Johnson's dictionary one meaning of `bug' is "A

frightful object; a walking spectre"; this is traced to

`bugbear', a Welsh term for a variety of mythological monster

which (to complete the circle) has recently been reintroduced

into the popular lexicon through fantasy role-playing games.

In any case, in jargon the word almost never refers to

insects. Here is a plausible conversation that never actually

happened:

"There is a bug in this ant farm!"

"What do you mean? I don't see any ants in it."

"That's the bug."

A careful discussion of the etymological issues can be found

in a paper by Fred R. Shapiro, 1987, "Entomology of the Computer

Bug: History and Folklore", American Speech 62(4):376-378.

[There has been a widespread myth that the original bug was

moved to the Smithsonian, and an earlier version of this entry so

asserted. A correspondent who thought to check discovered that

the bug was not there. While investigating this in late 1990,

your editor discovered that the NSWC still had the bug, but had

unsuccessfully tried to get the Smithsonian to accept it -- and

that the present curator of their History of American Technology

Museum didn't know this and agreed that it would make a

worthwhile exhibit. It was moved to the Smithsonian in mid-1991,

but due to space and money constraints was not actually exhibited

years afterwards. Thus, the process of investigating the

original-computer-bug bug fixed it in an entirely unexpected way,

by making the myth true! --ESR]

Node:bug-compatible, Next:bug-for-bug

compatible, Previous:bug,

Up:= B =

bug-compatible adj.

[common] Said of a design or revision that has been badly

compromised by a requirement to be compatible with fossils or misfeatures in other programs or (esp.)

previous releases of itself. "MS-DOS 2.0 used \ as a path

separator to be bug-compatible with some cretin's choice of / as

an option character in 1.0."

Node:bug-for-bug

compatible, Next:bug-of-the-month club, Previous:bug-compatible, Up:= B =

bug-for-bug compatible n.

Same as bug-compatible,

with the additional implication that much tedious effort went

into ensuring that each (known) bug was replicated.

Node:bug-of-the-month club,

Next:buglix, Previous:bug-for-bug

compatible, Up:= B =

bug-of-the-month club n.

[from "book-of-the-month club", a time-honored

mail-order-marketing technique in the U.S.] A mythical club which

users of `sendmail(8)' (the UNIX mail daemon) belong to; this was

coined on the Usenet newsgroup comp.security.unix at a time when

sendmail security holes, which allowed outside crackers access to the system, were being

uncovered at an alarming rate, forcing sysadmins to update very

often. Also, more completely, `fatal security bug-of-the-month

club'. See also kernel-of-the-week club.

The Jargon File, Version 4.2.2, 20 Aug 2000 · 第 293 / 1941 题