ALDERSON@SCORE.STANFORD.EDU.UUCP (04/01/87)
The following definitions are from a file often distributed with Tops-20 EMACS,
known there as INFO:JARGON.TXT; its origins are the files GLS; JARGON > at
MIT-MC and AIWORD.RF[UP,DOC] at SAIL. This text is from the 1981 version;
later, expanded versions eventually were published as _The Hacker's Dictionary_
around 1984.
DAEMON (day'mun, dee'mun) [archaic form of "demon", which has slightly differ-
ent connotations (q.v.)] n. A program which is not invoked explicitly, but
which lays dormant waiting for some condition(s) to occur. The idea is that
the perpetrator of the condition need not be aware that a daemon is lurking
(though often a program will commit an action only because it knows that it
will implicitly invoke a daemon). For example, writing a file on the lpt
spooler's directory will invoke the spooling daemon, which prints the file.
The advantage is that programs which want (in this example) files printed need
not compete for access to the lpt. They simply enter their implicit requests
and let the daemon decide what to do with them. Daemons are usually spawned
automatically by the system, and may either live forever or be regenerated at
intervals. Usage: DAEMON and DEMON (q.v.) are often used interchangeably,
but seem to have distinct connotations. DAEMON was introduced to computing by
CTSS people (who pronounced it dee'mon) and used it to refer to what is now
called a DRAGON or PHANTOM (q.v.). The meaning and pronunciation have
drifted, and we think this glossary reflects current usage.
DEMON (dee'mun) n. A portion of a program which is not invoked explicitly, but
which lays dormant waiting for some condition(s) to occur. See DAEMON. The
distinction is that demons are usually processes within a program, while
daemons are usually programs running on an operating system. Demons are
particularly common in AI programs. For example, a knowledge manipulation
program might implement inference rules as demons. Whenever a new piece of
knowledge was added, various demons would activate (which demons depends on
the particular piece of data) and would create additional pieces of knowledge
by applying their respective inference rules to the original piece. These new
pieces could in turn activate more demons as the inferences filtered down
through chains of logic. Meanwhile the main program could continue with
whatever its primary task was.
DRAGON n. (MIT) A program similar to a "daemon" (q.v.), except that it is not
invoked at all, but is instead used by the system to perform various secondary
tasks. A typical example would be an accounting program, which keeps track of
who is logged in, accumulates load-average statistics, etc. At MIT, all free
TV's display a list of people logged in, where they are, what they're running,
etc. along with some random picture (such as a unicorn, Snoopy, or the
Enterprise) which is generated by the "NAME DRAGON". See PHANTOM.
PHANTOM n. (Stanford) The SAIL equivalent of a DRAGON (q.v.). Typical
phantoms include the accounting program, the news-wire monitor, and the lpt
and xgp spoolers.
SERVER n. A kind of DAEMON which performs a service for the requester, which
often runs on a computer other than the one on which the server runs.
Rich Alderson
A.Alderson@{Lear, Othello, Hamlet, Macbeth}.Stanford.EDU
-------