Books: The New Hacker\'s Dictionary version 4.2.2
V >>
Various editors >> The New Hacker\'s Dictionary version 4.2.2
Pages:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | 33 |
34 |
35 |
36 |
37
* [14991]YA-:
* [14992]YABA:
* [14993]YAFIYGI:
* [14994]YAUN:
* [14995]Yellow Book:
* [14996]yellow card:
* [14997]yellow wire:
* [14998]Yet Another:
* [14999]YHBT:
* [15000]YKYBHTLW:
* [15001]YMMV:
* [15002]You are not expected to understand this:
* [15003]You know you've been hacking too long when:
* [15004]Your mileage may vary:
* [15005]Yow!:
* [15006]yoyo mode:
* [15007]Yu-Shiang Whole Fish:
_________________________________________________________________
Node:YA-, Next:[15008]YABA, Previous:[15009]xyzzy, Up:[15010]= Y =
YA- abbrev.
[Yet Another] In hackish acronyms this almost invariably expands to
[15011]Yet Another, following the precedent set by Unix yacc(1) (Yet
Another Compiler-Compiler). See [15012]YABA.
_________________________________________________________________
Node:YABA, Next:[15013]YAFIYGI, Previous:[15014]YA-, Up:[15015]= Y =
YABA /ya'b*/ n.
[Cambridge] Yet Another Bloody Acronym. Whenever some program is being
named, someone invariably suggests that it be given a name that is
acronymic. The response from those with a trace of originality is to
remark ironically that the proposed name would then be
`YABA-compatible'. Also used in response to questions like "What is
WYSIWYG?" See also [15016]TLA.
_________________________________________________________________
Node:YAFIYGI, Next:[15017]YAUN, Previous:[15018]YABA, Up:[15019]= Y =
YAFIYGI /yaf'ee-y*-gee/ adj.
[coined in response to WYSIWYG] Describes the command-oriented
ed/vi/nroff/TeX style of word processing or other user interface, the
opposite of [15020]WYSIWYG. Stands for "You asked for it, you got it",
because what you actually asked for is often not apparent until long
after it is too late to do anything about it. Used to denote
perversity ("Real Programmers use YAFIYGI tools...and like it!") or,
less often, a necessary tradeoff ("Only a YAFIYGI tool can have full
programmable flexibility in its interface.").
This precise sense of "You asked for it, you got it" seems to have
first appeared in Ed Post's classic parody "Real Programmers don't use
Pascal" (see [15021]Real Programmers); the acronym is a more recent
invention.
_________________________________________________________________
Node:YAUN, Next:[15022]Yellow Book, Previous:[15023]YAFIYGI,
Up:[15024]= Y =
YAUN /yawn/ n.
[Acronym for `Yet Another Unix Nerd'] Reported from the San Diego
Computer Society (predominantly a microcomputer users' group) as a
good-natured punning insult aimed at Unix zealots.
_________________________________________________________________
Node:Yellow Book, Next:[15025]yellow card, Previous:[15026]YAUN,
Up:[15027]= Y =
Yellow Book n.
The print version of this Jargon File; "The New Hacker's Dictionary"
from MIT Press; The book includes essentially all the material the
File, plus a Foreword by Guy L. Steele Jr. and a Preface by Eric S.
Raymond. Most importantly, the book version is nicely typeset and
includes almost all of the infamous Crunchly cartoons by the Great
Quux, each attached to an appropriate entry. The first edition (1991,
ISBN 0-262-68069-6) corresponded to the Jargon File version 2.9.6. The
second edition (1993, ISBN 0-262-68079-3) corresponded to the Jargon
File 3.0.0. The third (1996, ISBN 0-262-68092-0) corresponded to
4.0.0.
_________________________________________________________________
Node:yellow card, Next:[15028]yellow wire, Previous:[15029]Yellow
Book, Up:[15030]= Y =
yellow card n.
See [15031]green card.
_________________________________________________________________
Node:yellow wire, Next:[15032]Yet Another, Previous:[15033]yellow
card, Up:[15034]= Y =
yellow wire n.
[IBM] Repair wires used when connectors (especially ribbon connectors)
got broken due to some schlemiel pinching them, or to reconnect cut
traces after the FE mistakenly cut one. Compare [15035]blue wire,
[15036]purple wire, [15037]red wire.
_________________________________________________________________
Node:Yet Another, Next:[15038]YHBT, Previous:[15039]yellow wire,
Up:[15040]= Y =
Yet Another adj.
[From Unix's yacc(1), `Yet Another Compiler-Compiler', a LALR parser
generator] 1. Of your own work: A humorous allusion often used in
titles to acknowledge that the topic is not original, though the
content is. As in `Yet Another AI Group' or `Yet Another Simulated
Annealing Algorithm'. 2. Of others' work: Describes something of which
there are already far too many. See also [15041]YA-, [15042]YABA,
[15043]YAUN.
_________________________________________________________________
Node:YHBT, Next:[15044]YKYBHTLW, Previous:[15045]Yet Another,
Up:[15046]= Y =
YHBT //
[Usenet: very common] Abbreviation: You Have Been Trolled (see
[15047]troll, sense 1). Especially used in "YHBT. YHL. HAND.", which
is widely understood to expand to "You Have Been Trolled. You Have
Lost. Have A Nice Day". You are quite likely to see this if you
respond incautiously to a flame-provoking post that was obviously
floated as sucker bait.
_________________________________________________________________
Node:YKYBHTLW, Next:[15048]YMMV, Previous:[15049]YHBT, Up:[15050]= Y =
YKYBHTLW // abbrev.
Abbreviation of `You know you've been hacking too long when...', which
became established on the Usenet group alt.folklore.computers during
extended discussion of the indicated entry in the Jargon File.
_________________________________________________________________
Node:YMMV, Next:[15051]You are not expected to understand this,
Previous:[15052]YKYBHTLW, Up:[15053]= Y =
YMMV // cav.
Abbreviation for [15054]Your mileage may vary common on Usenet.
_________________________________________________________________
Node:You are not expected to understand this, Next:[15055]You know
you've been hacking too long when, Previous:[15056]YMMV, Up:[15057]= Y
=
You are not expected to understand this [Unix] cav.
The canonical comment describing something [15058]magic or too
complicated to bother explaining properly. From an infamous comment in
the context-switching code of the V6 Unix kernel. Dennis Ritchie has
[15059]explained this in detail.
_________________________________________________________________
Node:You know you've been hacking too long when, Next:[15060]Your
mileage may vary, Previous:[15061]You are not expected to understand
this, Up:[15062]= Y =
You know you've been hacking too long when
The set-up line for a genre of one-liners told by hackers about
themselves. These include the following:
* not only do you check your email more often than your paper mail,
but you remember your [15063]network address faster than your
postal one.
* your [15064]SO kisses you on the neck and the first thing you
think is "Uh, oh, [15065]priority interrupt."
* you go to balance your checkbook and discover that you're doing it
in octal.
* your computers have a higher street value than your car.
* in your universe, `round numbers' are powers of 2, not 10.
* more than once, you have woken up recalling a dream in some
programming language.
* you realize you have never seen half of your best friends.
A [15066]list list of these can be found by searching for this phrase
on the web.
[An early version of this entry said "All but one of these have been
reliably reported as hacker traits (some of them quite often). Even
hackers may have trouble spotting the ringer." The ringer was
balancing one's checkbook in octal, which I made up out of whole
cloth. Although more respondents picked that one out as fiction than
any of the others, I also received multiple independent reports of its
actually happening, most famously to Grace Hopper while she was
working with BINAC in 1949. --ESR]
_________________________________________________________________
Node:Your mileage may vary, Next:[15067]Yow!, Previous:[15068]You know
you've been hacking too long when, Up:[15069]= Y =
Your mileage may vary cav.
[from the standard disclaimer attached to EPA mileage ratings by
American car manufacturers] 1. A ritual warning often found in Unix
freeware distributions. Translates roughly as "Hey, I tried to write
this portably, but who knows what'll happen on your system?" 2. More
generally, a qualifier attached to advice. "I find that sending
flowers works well, but your mileage may vary."
_________________________________________________________________
Node:Yow!, Next:[15070]yoyo mode, Previous:[15071]Your mileage may
vary, Up:[15072]= Y =
Yow! /yow/ interj.
[from "Zippy the Pinhead" comix] A favored hacker expression of
humorous surprise or emphasis. "Yow! Check out what happens when you
twiddle the foo option on this display hack!" Compare [15073]gurfle.
_________________________________________________________________
Node:yoyo mode, Next:[15074]Yu-Shiang Whole Fish,
Previous:[15075]Yow!, Up:[15076]= Y =
yoyo mode n.
The state in which the system is said to be when it rapidly alternates
several times between being up and being down. Interestingly (and
perhaps not by coincidence), many hardware vendors give out free yoyos
at Usenix exhibits.
Sun Microsystems gave out logoized yoyos at SIGPLAN '88. Tourists
staying at one of Atlanta's most respectable hotels were subsequently
treated to the sight of 200 of the country's top computer scientists
testing yo-yo algorithms in the lobby.
_________________________________________________________________
Node:Yu-Shiang Whole Fish, Next:[15077]zap, Previous:[15078]yoyo mode,
Up:[15079]= Y =
Yu-Shiang Whole Fish /yoo-shyang hohl fish/ n. obs.
The character gamma (extended SAIL ASCII 0001001), which with a loop
in its tail looks like a little fish swimming down the page. The term
is actually the name of a Chinese dish in which a fish is cooked whole
(not [15080]parsed) and covered with Yu-Shiang (or Yu-Hsiang) sauce.
Usage: primarily by people on the MIT LISP Machine, which could
display this character on the screen. Tends to elicit incredulity from
people who hear about it second-hand.
_________________________________________________________________
Node:= Z =, Previous:[15081]= Y =, Up:[15082]The Jargon Lexicon
= Z =
* [15083]zap:
* [15084]zapped:
* [15085]Zawinski's Law:
* [15086]zbeba:
* [15087]zen:
* [15088]zero:
* [15089]zero-content:
* [15090]Zero-One-Infinity Rule:
* [15091]zeroth:
* [15092]zigamorph:
* [15093]zip:
* [15094]zipperhead:
* [15095]zombie:
* [15096]zorch:
* [15097]Zork:
* [15098]zorkmid:
_________________________________________________________________
Node:zap, Next:[15099]zapped, Previous:[15100]Yu-Shiang Whole Fish,
Up:[15101]= Z =
zap
1. n. Spiciness. 2. vt. To make food spicy. 3. vt. To make someone
`suffer' by making his food spicy. (Most hackers love spicy food.
Hot-and-sour soup is considered wimpy unless it makes you wipe your
nose for the rest of the meal.) See [15102]zapped. 4. vt. To modify,
usually to correct; esp. used when the action is performed with a
debugger or binary patching tool. Also implies surgical precision.
"Zap the debug level to 6 and run it again." In the IBM mainframe
world, binary patches are applied to programs or to the OS with a
program called `superzap', whose file name is `IMASPZAP' (possibly
contrived from I M A SuPerZAP). 5. vt. To erase or reset. 6. To
[15103]fry a chip with static electricity. "Uh oh -- I think that
lightning strike may have zapped the disk controller."
_________________________________________________________________
Node:zapped, Next:[15104]Zawinski's Law, Previous:[15105]zap,
Up:[15106]= Z =
zapped adj.
Spicy. This term is used to distinguish between food that is hot (in
temperature) and food that is spicy-hot. For example, the Chinese
appetizer Bon Bon Chicken is a kind of chicken salad that is cold but
zapped; by contrast, [15107]vanilla wonton soup is hot but not zapped.
See also [15108]oriental food, [15109]laser chicken. See [15110]zap,
senses 1 and 2.
_________________________________________________________________
Node:Zawinski's Law, Next:[15111]zbeba, Previous:[15112]zapped,
Up:[15113]= Z =
Zawinski's Law
"Every program attempts to expand until it can read mail. Those
programs which cannot so expand are replaced by ones which can."
Coined by Jamie Zawinski (who called it the "Law of Software
Envelopment") to express his belief that all truly useful programs
experience pressure to evolve into toolkits and application platforms
(the mailer thing, he says, is just a side effect of that). It is
commonly cited, though with widely varying degrees of accuracy.
_________________________________________________________________
Node:zbeba, Next:[15114]zen, Previous:[15115]Zawinski's Law,
Up:[15116]= Z =
zbeba n.
[USENET] The word `moron' in [15117]rot13. Used to describe newbies
who are behaving with especial cluelessness.
_________________________________________________________________
Node:zen, Next:[15118]zero, Previous:[15119]zbeba, Up:[15120]= Z =
zen vt.
To figure out something by meditation or by a sudden flash of
enlightenment. Originally applied to bugs, but occasionally applied to
problems of life in general. "How'd you figure out the buffer
allocation problem?" "Oh, I zenned it." Contrast [15121]grok, which
connotes a time-extended version of zenning a system. Compare
[15122]hack mode. See also [15123]guru.
_________________________________________________________________
Node:zero, Next:[15124]zero-content, Previous:[15125]zen, Up:[15126]=
Z =
zero vt.
1. To set to 0. Usually said of small pieces of data, such as bits or
words (esp. in the construction `zero out'). 2. To erase; to discard
all data from. Said of disks and directories, where `zeroing' need not
involve actually writing zeroes throughout the area being zeroed. One
may speak of something being `logically zeroed' rather than being
`physically zeroed'. See [15127]scribble.
_________________________________________________________________
Node:zero-content, Next:[15128]Zero-One-Infinity Rule,
Previous:[15129]zero, Up:[15130]= Z =
zero-content adj.
Syn. [15131]content-free.
_________________________________________________________________
Node:Zero-One-Infinity Rule, Next:[15132]zeroth,
Previous:[15133]zero-content, Up:[15134]= Z =
Zero-One-Infinity Rule prov.
"Allow none of [15135]foo, one of [15136]foo, or any number of
[15137]foo." A rule of thumb for software design, which instructs one
to not place [15138]random limits on the number of instances of a
given entity (such as: windows in a window system, letters in an OS's
filenames, etc.). Specifically, one should either disallow the entity
entirely, allow exactly one instance (an "exception"), or allow as
many as the user wants - address space and memory permitting.
The logic behind this rule is that there are often situations where it
makes clear sense to allow one of something instead of none. However,
if one decides to go further and allow N (for N > 1), then why not
N+1? And if N+1, then why not N+2, and so on? Once above 1, there's no
excuse not to allow any N; hence, [15139]infinity.
Many hackers recall in this connection Isaac Asimov's SF novel "The
Gods Themselves" in which a character announces that the number 2 is
impossible - if you're going to believe in more than one universe, you
might as well believe in an infinite number of them.
_________________________________________________________________
Node:zeroth, Next:[15140]zigamorph, Previous:[15141]Zero-One-Infinity
Rule, Up:[15142]= Z =
zeroth /zee'rohth/ adj.
First. Among software designers, comes from C's and LISP's 0-based
indexing of arrays. Hardware people also tend to start counting at 0
instead of 1; this is natural since, e.g., the 256 states of 8 bits
correspond to the binary numbers 0, 1, ..., 255 and the digital
devices known as `counters' count in this way.
Hackers and computer scientists often like to call the first chapter
of a publication `Chapter 0', especially if it is of an introductory
nature (one of the classic instances was in the First Edition of
[15143]K&R). In recent years this trait has also been observed among
many pure mathematicians (who have an independent tradition of
numbering from 0). Zero-based numbering tends to reduce
[15144]fencepost errors, though it cannot eliminate them entirely.
_________________________________________________________________
Node:zigamorph, Next:[15145]zip, Previous:[15146]zeroth, Up:[15147]= Z
=
zigamorph /zig'*-morf/ n.
1. Hex FF (11111111) when used as a delimiter or [15148]fence
character. Usage: primarily at IBM shops. 2. [proposed] n. The Unicode
non-character U+FFFF (1111111111111111), a character code which is not
assigned to any character, and so is usable as end-of-string. (Unicode
is a 16-bit character code intended to cover all of the world's
writing systems, including Latin, Greek, Cyrillic, Chinese, hiragana,
katakana, Devanagari, Thai, Laotian and many other scripts - support
for [15149]elvish is planned for a future release).
_________________________________________________________________
Node:zip, Next:[15150]zipperhead, Previous:[15151]zigamorph,
Up:[15152]= Z =
zip vt.
[primarily MS-DOS] To create a compressed archive from a group of
files using PKWare's PKZIP or a compatible archiver. Its use is
spreading now that portable implementations of the algorithm have been
written. Commonly used as follows: "I'll zip it up and send it to
you." See [15153]tar and feather.
_________________________________________________________________
Node:zipperhead, Next:[15154]zombie, Previous:[15155]zip, Up:[15156]=
Z =
zipperhead n.
[IBM] A person with a closed mind.
_________________________________________________________________
Node:zombie, Next:[15157]zorch, Previous:[15158]zipperhead,
Up:[15159]= Z =
zombie n.
[Unix] A process that has died but has not yet relinquished its
process table slot (because the parent process hasn't executed a
wait(2) for it yet). These can be seen in ps(1) listings occasionally.
Compare [15160]orphan.
_________________________________________________________________
Node:zorch, Next:[15161]Zork, Previous:[15162]zombie, Up:[15163]= Z =
zorch /zorch/
1. [TMRC] v. To attack with an inverse heat sink. 2. [TMRC] v. To
travel, with v approaching c [that is, with velocity approaching
lightspeed --ESR]. 3. [MIT] v. To propel something very quickly. "The
new comm software is very fast; it really zorches files through the
network." 4. [MIT] n. Influence. Brownie points. Good karma. The
intangible and fuzzy currency in which favors are measured. "I'd
rather not ask him for that just yet; I think I've used up my quota of
zorch with him for the week." 5. [MIT] n. Energy, drive, or ability.
"I think I'll [15164]punt that change for now; I've been up for 30
hours and I've run out of zorch." 6. [MIT] v. To flunk an exam or
course.
_________________________________________________________________
Node:Zork, Next:[15165]zorkmid, Previous:[15166]zorch, Up:[15167]= Z =
Zork /zork/ n.
The second of the great early experiments in computer fantasy gaming;
see [15168]ADVENT. Originally written on MIT-DM during 1977-1979,
later distributed with BSD Unix (as a patched, sourceless RT-11
FORTRAN binary; see [15169]retrocomputing) and commercialized as `The
Zork Trilogy' by [15170]Infocom. The FORTRAN source was later
rewritten for portability and released to Usenet under the name
"Dungeon". Both FORTRAN "Dungeon" and translated C versions are
available at many FTP sites. See also [15171]grue.
_________________________________________________________________
Node:zorkmid, Previous:[15172]Zork, Up:[15173]= Z =
zorkmid /zork'mid/ n.
The canonical unit of currency in hacker-written games. This
originated in [15174]Zork but has spread to [15175]nethack and is
referred to in several other games.
(Lexicon Entries End Here)
_________________________________________________________________
Node:Appendix A, Next:[15176]Appendix B, Previous:[15177]The Jargon
Lexicon, Up:[15178]Top
Hacker Folklore
This appendix contains several legends and fables that illuminate the
meaning of various entries in the lexicon.
* [15179]The Meaning of Hack: ...and three famous ones
* [15180]TV Typewriters: A Tale of Hackish Ingenuity
* [15181]A Story About Magic: By Guy Steele
* [15182]Some AI Koans: Wit and Wisdom of the Masters
* [15183]OS and JEDGAR: Intrigue and mayhem under ITS
* [15184]The Story of Mel: One of hackerdom's great myths
_________________________________________________________________
Node:The Meaning of Hack, Next:[15185]TV Typewriters,
Previous:[15186]Appendix A, Up:[15187]Appendix A
The Meaning of `Hack'
"The word [15188]hack doesn't really have 69 different meanings",
according to MIT hacker Phil Agre. "In fact, [15189]hack has only one
meaning, an extremely subtle and profound one which defies
articulation. Which connotation is implied by a given use of the word
depends in similarly profound ways on the context. Similar remarks
apply to a couple of other hacker words, most notably [15190]random."
Hacking might be characterized as `an appropriate application of
ingenuity'. Whether the result is a quick-and-dirty patchwork job or a
carefully crafted work of art, you have to admire the cleverness that
went into it.
An important secondary meaning of [15191]hack is `a creative practical
joke'. This kind of hack is easier to explain to non-hackers than the
programming kind. Of course, some hacks have both natures; see the
lexicon entries for [15192]pseudo and [15193]kgbvax. But here are some
examples of pure practical jokes that illustrate the hacking spirit:
In 1961, students from Caltech (California Institute of Technology,
in Pasadena) hacked the Rose Bowl football game. One student posed
as a reporter and `interviewed' the director of the University of
Washington card stunts (such stunts involve people in the stands
who hold up colored cards to make pictures). The reporter learned
exactly how the stunts were operated, and also that the director
would be out to dinner later.
While the director was eating, the students (who called themselves
the `Fiendish Fourteen') picked a lock and stole a blank direction
sheet for the card stunts. They then had a printer run off 2300
copies of the blank. The next day they picked the lock again and
stole the master plans for the stunts -- large sheets of graph
paper colored in with the stunt pictures. Using these as a guide,
they made new instructions for three of the stunts on the
duplicated blanks. Finally, they broke in once more, replacing the
stolen master plans and substituting the stack of diddled
instruction sheets for the original set.
The result was that three of the pictures were totally different.
Instead of `WASHINGTON', the word ``CALTECH' was flashed. Another
stunt showed the word `HUSKIES', the Washington nickname, but
spelled it backwards. And what was supposed to have been a picture
of a husky instead showed a beaver. (Both Caltech and MIT use the
beaver -- nature's engineer -- as a mascot.)
After the game, the Washington faculty athletic representative
said: "Some thought it ingenious; others were indignant." The
Washington student body president remarked: "No hard feelings, but
at the time it was unbelievable. We were amazed."
This is now considered a classic hack, particularly because revising
the direction sheets constituted a form of programming.
Here is another classic hack:
On November 20, 1982, MIT hacked the Harvard-Yale football game.
Just after Harvard's second touchdown against Yale, in the first
quarter, a small black ball popped up out of the ground at the
40-yard line, and grew bigger, and bigger, and bigger. The letters
`MIT' appeared all over the ball. As the players and officials
stood around gawking, the ball grew to six feet in diameter and
then burst with a bang and a cloud of white smoke.
The "Boston Globe" later reported: "If you want to know the truth,
MIT won The Game."
The prank had taken weeks of careful planning by members of MIT's
Delta Kappa Epsilon fraternity. The device consisted of a weather
balloon, a hydraulic ram powered by Freon gas to lift it out of the
ground, and a vacuum-cleaner motor to inflate it. They made eight
separate expeditions to Harvard Stadium between 1 and 5 A.M.,
locating an unused 110-volt circuit in the stadium and running
buried wires from the stadium circuit to the 40-yard line, where
they buried the balloon device. When the time came to activate the
device, two fraternity members had merely to flip a circuit breaker
and push a plug into an outlet.
This stunt had all the earmarks of a perfect hack: surprise,
publicity, the ingenious use of technology, safety, and
harmlessness. The use of manual control allowed the prank to be
timed so as not to disrupt the game (it was set off between plays,
so the outcome of the game would not be unduly affected). The
perpetrators had even thoughtfully attached a note to the balloon
explaining that the device was not dangerous and contained no
explosives.
Harvard president Derek Bok commented: "They have an awful lot of
clever people down there at MIT, and they did it again." President
Paul E. Gray of MIT said: "There is absolutely no truth to the
rumor that I had anything to do with it, but I wish there were."
The hacks above are verifiable history; they can be proved to have
happened. Many other classic-hack stories from MIT and elsewhere,
though retold as history, have the characteristics of what Jan
Brunvand has called `urban folklore' (see [15194]FOAF). Perhaps the
best known of these is the legend of the infamous trolley-car hack, an
alleged incident in which engineering students are said to have welded
a trolley car to its tracks with thermite. Numerous versions of this
have been recorded from the 1940s to the present, most set at MIT but
at least one very detailed version set at CMU.
Brian Leibowitz has researched MIT hacks both real and mythical
extensively; the interested reader is referred to his delightful
pictorial compendium "The Journal of the Institute for Hacks,
Tomfoolery, and Pranks" (MIT Museum, 1990; ISBN 0-917027-03-5). The
Institute has a World Wide Web page at
[15195]http://hacks.mit.edu/Hacks/Gallery.html. There is rumored to be
a sequel entitled "Is This The Way To Baker Street?". The Caltech
Alumni Association has published two similar books titled "Legends of
Caltech" and "More Legends of Caltech".
Finally, here is a story about one of the classic computer hacks.
Back in the mid-1970s, several of the system support staff at
Motorola discovered a relatively simple way to crack system
security on the Xerox CP-V timesharing system. Through a simple
programming strategy, it was possible for a user program to trick
the system into running a portion of the program in `master mode'
(supervisor state), in which memory protection does not apply. The
program could then poke a large value into its `privilege level'
byte (normally write-protected) and could then proceed to bypass
all levels of security within the file-management system, patch the
system monitor, and do numerous other interesting things. In short,
the barn door was wide open.
Motorola quite properly reported this problem to Xerox via an
official `level 1 SIDR' (a bug report with an intended urgency of
`needs to be fixed yesterday'). Because the text of each SIDR was
entered into a database that could be viewed by quite a number of
people, Motorola followed the approved procedure: they simply
reported the problem as `Security SIDR', and attached all of the
necessary documentation, ways-to-reproduce, etc.
The CP-V people at Xerox sat on their thumbs; they either didn't
realize the severity of the problem, or didn't assign the necessary
operating-system-staff resources to develop and distribute an
official patch.
Months passed. The Motorola guys pestered their Xerox field-support
rep, to no avail. Finally they decided to take direct action, to
demonstrate to Xerox management just how easily the system could be
cracked and just how thoroughly the security safeguards could be
subverted.
They dug around in the operating-system listings and devised a
thoroughly devilish set of patches. These patches were then
incorporated into a pair of programs called `Robin Hood' and `Friar
Tuck'. Robin Hood and Friar Tuck were designed to run as `ghost
jobs' (daemons, in Unix terminology); they would use the existing
loophole to subvert system security, install the necessary patches,
and then keep an eye on one another's statuses in order to keep the
system operator (in effect, the superuser) from aborting them.
One fine day, the system operator on the main CP-V software
development system in El Segundo was surprised by a number of
unusual phenomena. These included the following:
* Tape drives would rewind and dismount their tapes in the middle of
a job.
* Disk drives would seek back and forth so rapidly that they would
attempt to walk across the floor (see [15196]walking drives).
* The card-punch output device would occasionally start up of itself
and punch a [15197]lace card. These would usually jam in the
punch.
* The console would print snide and insulting messages from Robin
Hood to Friar Tuck, or vice versa.
* The Xerox card reader had two output stackers; it could be
instructed to stack into A, stack into B, or stack into A (unless
a card was unreadable, in which case the bad card was placed into
stacker B). One of the patches installed by the ghosts added some
code to the card-reader driver... after reading a card, it would
flip over to the opposite stacker. As a result, card decks would
divide themselves in half when they were read, leaving the
operator to recollate them manually.
Naturally, the operator called in the operating-system developers.
They found the bandit ghost jobs running, and [15198]gunned them...
and were once again surprised. When Robin Hood was gunned, the
following sequence of events took place:
!X id1
Pages:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | 33 |
34 |
35 |
36 |
37