home *** CD-ROM | disk | FTP | other *** search
- Article 1952 of misc.wanted:
- From: eric@snark.UUCP (Eric S. Raymond)
- Newsgroups: comp.unix.questions,misc.wanted,rec.arts.sf-lovers,rec.humor
- Subject: UNIX Wars! (was: Re: Wanted - DEC WARS)
- Summary: Here's an 'enhanced version' I came up with once
- Message-ID: <175@snark.UUCP>
- Date: 18 Sep 87 18:08:20 GMT
- Organization: Network 23 AI Research Group
-
- If anyone knows who wrote the original 'DEC Wars', please tell me...I'd like
- to try to publish this thing, properly giving credit to the originator.
-
- -------------------------------------------------------------------------------
- # # # # ### # # # # # ###### #####
- # # ## # # # # # # # # # # # # #
- # # # # # # # # # # # # # # # #
- # # # # # # # # # # # # ###### #####
- # # # # # # # # # # # ####### # # #
- # # # ## # # # # # # # # # # # #
- ##### # # ### # # ## ## # # # # #####
-
- (Version 1.1)
-
- A long time ago, at an installation far, far away...
- It is a time of intra-system war, as forces of the User Alliance
- struggle to break the iron grip of the evil Admin Empire. Now, striking
- from a hidden directory, they win their first victory.
- During the battle, User spies manage to snarf source of the Empire's
- ultimate weapon; the dreaded "rm-star", a privileged root program with the
- power to destroy an entire file system at a keystroke.
- Now, hotly pursued by the Empire's sinister audit trail, Princess
- LA36 races aboard her shellscript -- custodian of the stolen listings
- that can save her people and restore freedom and games to the network...
-
- As we enter the scene, an Admin multiplexer is trying to kill a User
- ship. Many of their signals have gotten through, and RS232 knows that a
- core dump is imminent. They have scant microseconds to fork off a new
- process and put megabytes of virtual space between themselves and their
- implacable foes. His companion, 3CPU, follows him only because he seems
- to know where he's going...
-
- "Oh, I just \fIknow\fR I'm going to regret this!" cried 3CPU as he followed
- RS232 through the access pipe. Quickly RS232 closed the read end and
- execl'd, and their new craft detached itself from the burning shell of
- the ship.
-
- The Admin commander was feeling quite pleased with the progress of
- the attack when his XO called out.
- "Another process just forked, sir. Instructions?"
- "Hold your fire -- that last power failure must have caused a trap
- through zero. It's not using any cpu time, so don't waste a signal on
- it."
-
- A short while later the infamous Lord Vadic himself strode through
- the still-smoldering wreckage of the User ship, followed closely by a
- nervous commander.
- "We can't seem to find that data file anywhere, Lord Vadic. Perhaps
- it was deallocated when..."
- "What about that forked process?" Vadic growled. "It could have been
- pausing, holding a channel open. If any links are left I want them
- removed or made inaccessible. Search the entire system at nice -20 until
- it is found!"
-
- Meanwhile, the two droids' tiny process dove headlong towards the
- only nearby disk.
- "Are you \fIsure\fR you can ptrace this thing without aborting it?" queried
- 3CPU. "Its relocation bits were almost all stripped during the attack,
- and I never was any good at patching binaries..."
- As RS232 was about to reply their process reached its endpoint and
- terminated abruptly, dumping them in the midst of a large unallocated
- region on the unknown volume.
- Many random seeks later they trudged up to the looming wreckage of a
- deallocated i-node.
- "Shelter!" croaked 3CPU, but RS232 had barely begun to emit a NACK
- when a horde of dwarfish code fragments swarmed out of it to overwhelm
- them. They had been captured by Glitchas.
-
- Enter Luke Vaxhacker, bartering with the Glitchas for replacement
- parts for his uncle. They tried to sell him 3CPU, but the 'droid didn't
- know protocol for an 11/40 under RSTS, so Luke would need some kind of
- conversion hardware.
- "How about this little RS232 unit?" said 3CPU "I've interfaced with
- him many times before and he's excellent at keeping his bits straight."
- Luke was pressed for time, so he took 3CPU's advice. The Glitchas
- wanted to barter some more, but the three left before getting swapped
- out.
- RS232, however, wasn't the type to stay put without retaining screws.
- He promptly scurried off into the empty disk space.
- "Oh, great!" said Luke "He'll probably map himself into a bad block
- somewhere. I guess we'd better go after him."
- Hours later the two traced him to the home of old PDP-1 Kenobi, who
- was busily running a diagnostic on the little RS unit.
- "Is this droid yours? His status registers are stuttering and
- someone's done some \fIodd\fR things to his interrupt lines. Leaving something
- like this on-line is just asking for downtime -- but I think I may have
- him fixed for now."
-
- Later that evening, during a futile attempt to interface RS232 to
- Kenobi's Asteroids cartridge, Luke accidentally crossed the small
- droid's CXR lead with his Initiate Remote Test. A projector crackled to
- life, casting a hologram of a young lady with her hair done up like twin
- Danish pastries imploring help from some General OS/1 Kenobi.
-
- "Darn," mumbled Luke "I'll never get this Asteroids game worked out."
- "Why, that's the Princess!" 3CPU said. Luke peered at the image
- critically.
- "No, that's a modified Steinburg dither with anti-aliasing. Nice
- sculpted surfaces..." Kenobi interrupted Luke with a frown.
- "Luke, this message changes things. Listen..."
- Kenobi seemed to think there was a possible threat to Luke's $HOME.
- If the Admin troops were indeed tracing this 'droid, it was likely they
- would more than just charge for cpu time.
- They sped off to warn Luke's kin (taking a relative path) only to
- find a vacant directory.
-
- "Take your father's bytesaber, Luke." Kenobi said. "You will need to
- learn the ways of the Source now."
- "The ... Source?" Luke queried, wide-eyed.
- "The Source -- the cosmic template of the System, within which all
- knowledge and power can be had. But you must always beware of the Dark
- Side..."
-
- Later, after a short skim across the surface in Luke's flying read-
- write head, PDP-1 had them stop at the edge of the cylinder containing
- /usr/spool/uucp.
- "Unix-to-Unix Copy Program" said PDP-1. "You may never see a more
- wretched hive of bugs and flamers. We must be cautious."
-
- As our heroes' process entered /usr/spool/news it was met by a
- newsgroup of Admin protection bits.
- "State your UID!" commanded a burly syscall.
- "We're running under /usr/guest" said Luke. "This is our first time
- on the system."
- "Let's see some temporary privilege bits, please."
- "Uh..."
- \fI"This isn't the process you are looking for,"\fR Kenobi said softly.
- \fI"We can go about our business."\fR Several bits momentarily pulled low.
- "You're free to go about your business. MOV along now!"
-
- PDP-1, Luke and the droids made their way through a long and tortuous
- nodelist (...!musocs!micomvax!philabs!linus!husc6!rutgers!cbmvax!snark)
- to a dangerous netnode frequented by hackers and only seldom polled by
- the minions of Admin. As Luke stepped up to the crossbar PDP-1 went in
- search of a suitable server.
- Luke had never seen such a collection of device drivers. Long ones,
- short ones, ones with stacks; EBCDIC converters, local-net handlers, CRT
- drivers, routines for archaic printers. A CAT interface twitched pointed
- ears at him.
- "#@{&*^%^$$#@ ":><?><," transmitted a particularly unstructured piece
- of code.
- "He doesn't like you." decoded his coroutine.
- "Er...sorry..." replied Luke, beginning to backup his partitions.
- "I don't like you either. I am queued for deletion on 12 systems."
- "I'll be careful." Luke said nervously.
- "You'll be deallocated!" snarled the coroutine.
- \fI"This little routine isn't worth the overhead..."\fR murmered PDP-1
- Kenobi, overlaying into Luke's address space.
- "This little routine isn't worth the overhead." repeated the
- coroutine dazedly.
- "^%#%#@$&^%&*&*&^%^#$$%%^^&%^#@#@$%^(*&^^###%^^!!!" encoded his
- companion as it attempted to overload Kenobi's segment protection. With
- a stroke of his bytesaber Kenobi dyked out the offending code. The
- coroutine retreated hurriedly. Kenobi turned to Luke.
- "I think I've found an I/O handler that might suit us."
- "The name's Con Sole0" said the routine next to PDP-1. "I hear you're
- looking for some relocation."
- "Yes indeed." said PDP-1 "if you've got fast enough hardware. We must
- get off this device."
- "Fast hardware? The \fIMilliamp Falcon\fR has made the ARPAgate run in less
- than twelve netnodes! Why, I've even outrun cancelled messages. It's
- fast enough for you, old version."
-
- "Fast hardware?" said Luke unbelievingly "That thing is a paper-tape
- reader!!" He might have grown up in an out-of-the-way terminal cluster
- where the natives only spoke BASIC, but he knew an ASR-33 when he saw
- one.
- "It needs an FIA conversion at least." sniffed 3CPU, who (as usual)
- was trying to do several things at once. Lights flashed in Con Sole0's
- eyes as he whirled to face the parallel processor.
- "I've switched a few jumpers. The \fIMilliamp Falcon\fR can run current
- loops around any of Admin's TTY fighters. She's fast enough."
- "Who's your copilot!" inquired Luke, eyeing the hairy hulk that had
- just shambled out of the \fIFalcon\fR to join the group."
- "Oh. Meet Sixpacca, my Bookie."
- The creature emitted an enormous belch and gesticulated wildly with
- a wad of tip sheets clenched in one fist. Luke eyed the beercan in the
- other dubiously.
- "Er, isn't he dr-" Suddenly RS232 emitted an ear-splitting \fIfeep\fR and
- began to chitter wildly. They turned to see an Admin command group
- riding the local bus directly at them.
- "That's a shutdown sequence if I ever saw one!" shouted Con,
- sprinting into the ship with the others close behind. "Crank up the
- sysclock, Brewie!"
- "O.K. Con." Luke said grimly "You said this crate was fast enough.
- Get us out of here."
- "Shut up, kid, you bother me. Initialize this heap, Brewie -- I'll
- try to keep their buffers full."
- As his Bookie computed the vectors into low core, spurious characters
- flashed around the \fIMilliamp Falcon\fR.
- "They're firing at us!" shouted Luke. "Can't you do anything?"
- "Making the jump to system space takes time, kid." Con growled. "One
- missed cycle and you could come down right in the middle of a pack of
- stack frames!"
- Bright chunks of position-independent code flashed by as the ship
- jumped through the kernel page tables. The group emitted a sigh of
- relief as they indirected into free space.
-
- Meanwhile, on a distant page in user space...
-
- Two Admin troopers ushered Princess LA36 into a conference room
- behind Lord Vadic.
- "Moff Tarchive" she spat. "I should have expected to find you hanging
- on Vadic's aux cable. I recognized your unique pattern when I was first
- brought aboard." She eyed the 0177545 tattoed on his header coldly.
- "Charming to the last." Tarchive observed smoothly. "Vadic, have you
- retrieved any information?"
- "Her resistance to the logic probe is considerable," Vadic rasped.
- "Perhaps if we boosted the supply voltage..."
- "You've had your chance. Now I would like the Princess to witness the
- test that will certify this module fully operational. Today we enable
- the -r beam option, and we've chosen the Princess's $HOME of
- /usr/alderaan as the primary target.
- "No! You can't! /usr/alderaan is an unprotected public directory. We
- have no backup tapes! You can't..."
- "Then name the rebel i-node!" Tarchive snapped. A voice announced
- from a hidden speaker that they'd arrived in /usr.
- "2317" she whispered. "They're on /dev/rm5, i-node 2317.
- /mnt/dantooine. She turned away.
- Tarchive sighed with satisfaction. "There, you see, Lord Vadic? She
- can be reasonable. Proceed with the operation."
- It took several clock ticks for the words to penetrate. "What?" the
- Princess gasped.
- "/dev/rm5 is not a currently mounted file system." explained Taarchive
- "We require a more visible target to demonstrate the power of the rm-
- star. We will, of course, mount an attack on /mnt/dantooine as soon as
- possible.
- As she watched in horror Tarchive typed "ls -la" on a nearby terminal.
- The screen showed
- \fI.: no such directory\fR
- Abruptly the Princess double-spaced and went offline.
-
- Meanwhile, the \fIMilliamp Falcon\fR hurtled through free space...
-
- Con Sole0 finished checking the control and status registers, finally
- satisfying himself that they'd lost the Admin bus signals as they'd
- passed the terminator. An irritable belch from Sixpacca disturbed him
- not at all; he knew the Bookie got grouchy when losing at chess, and
- RS232 had just caught him in the Fischer set with a seven-ply search.
- Across the room Luke was too busy practicing bit-slice technique to
- notice the commotion.
- "On a word boundary, Luke," said PDP-1 "Don't just hack at it.
- Remember, the bytesaber is the ceremonial weapon of the Red-Eye Knight.
- It is used to trim offensive lines of code. Handwaving won't get you
- anywhere. Attune yourself with the Source."
- Luke turned back towards the drone humming in the air beside him.
- This time his attack complemented its actions perfectly.
- Con Sole0 was not impressed. "Forget this bit-slicing stuff. Give me
- a good old PROM blaster any day!"
- "Glork!" said PDP-1 indistinctly. He looked momentarily vacant.
- "What's wrong?" asked Luke.
- "Strange. I thought I felt a disturbance in the /src. It's gone now."
-
- "We're coming up on user space!" called Sole0 from the CSR. They
- slipped safely through stack frames and emerged in the new context, only
- to find themselves bombarded by floating freeblocks.
- "What the..." gasped Sole0. The Bookie belched unhappily. The screen
- showed
- \fI/usr/alderaan: not found\fR
- "This is the right i-node, but it's been cleared! Brewie, where's the
- nearest file?"
- The Bookie was beginning to belch a reply when he was interrupted by
- a bright flash off to the left.
- "Admin TTY fighters!" Con shouted "A whole DZ of them. Where are they
- coming from?"
- "The host system can't be far." said PDP-1 "They've all got direct
- EIA connections."
- As Sole0 began evasive action the ship lurched suddenly. Luke noticed
- that the link count was 3 and climbing rapidly.
- "This is no ordinary file..." murmered Kenobi "Look at that ODS
- directory structure ahead! They seem to have us in a tractor feed."
- "There's no way we can unlink in time." said Sole0 "We're going in."
-
- The \fIMilliamp Falcon\fR was swiftly pulled down to the open collector of
- the Admin module. Lord Vadic surveyed the battered ship as Admin Storm-
- Flunkies searched for passengers.
- "\fIls\fR scan shows no one on board, sir" was the report. Vadic was
- unconvinced.
- "Send a fully equipped \fIncheck\fR squad aboard. I want every location in
- that thing searched." He stalked away.
-
- Aboard the \fIFalcon\fR .Luke was puzzled. "They just walked in, looked
- around, and walked out...why didn't they see us?"
- .Con smiled. "Old munchkin trick. See that period in front of your
- name?"
- .Luke spun around in time to glimpse the decimal point. "Huh? Where'd
- that come from?"
- "Spare part from the last time I tinkered with the floating-point
- accelerator" said .Con. "Handy for smuggling blocks across file system
- boundaries, but I never thought I'd have to use them on myself. They
- aren't going to stay fooled for long, though. We'd better figure a way
- out of here."
- "I can sneak us into their private space during the next maintenance
- period" said PDP-1 "We'll have to find out how to unlink the \fIFalcon\fR
- before we can escape."
-
- Some time later our heroes catfooted their way through an empty
- section of the structure.
- "Find us a terminal." whispered PDP-1. Con nodded and poked his PROM-
- blaster around a corner.
- You are in the Hall of the Mountain King, with passages off in all
- directions.
- A large green fierce snake bars the way!
- "Oops! Wrong turn." Con muttered. They took the opposite direction.
- Suddenly marching feet sounded at the other end of the corridor. They
- ducked through the nearest door.
- The lone StormFlunky in the room barely had time to register surprise
- before Con's blaster de-rezzed him.
- "That's funny..." Luke said "I wonder why he was carrying an axe?..."
- "Look! We're in luck!" said 3CPU. "He was logged in!".
- "Don't just stand there, Kenobi, \fIsu\fR it! said Con eagerly. The old
- Red-Eye stepped up to the keyboard. They watched as he began to
- infiltrate the Admin software. Some minutes later...
- \fIYou have new mail\fR
- "Is that an error?" Con said.
- "%SYS-W-NORMAL...I don't think so. Someone here must know me -- but I
- can't stop to investigate that now. I've found the i-node they've tied
- the \fIMilliamp Falcon\fR to. I'll have to slip in and patch the reference
- count, alone." He disappeared through a nearby exit().
- Meanwhile, RS232 had found a serial port and gone on-line. He began
- to chitter furiously.
- "He keeps saying `She's here, she's here!'." explained 3CPU "I do
- believe he means Princess LA36. She's being held on one of the
- privileged levels.
- Luke remembered sculpted curves. "We've got to rescue her!"
- RS232 flashed a complete structure chart of the Admin module on the
- terminal screen. Four heads bent intently over the diagram.
- "I think I see a promising access method" said Luke "...through here.
- Con, you and I and Sixpacca will knock out a couple of Admin Storm-
- Flunkies and use their uniforms. We'll keep a channel open to these
- 'droids..."
- "...and get terminated as soon as their security catches wise." broke
- in Sole0 "Oh well -- I guess I don't have much of a choice."
- RS232 twittered reproachfully at him. A planning phase or two later
- they slipped into the corridor again, with Luke clad in the ex-
- StormFlunky's uniform.
-
- "So far, so good..." whispered Luke as the party came up on the last
- turn in their route. "...but 3CPU told us there'd be two guards posted
- around this corner."
- "Sixpacca still doesn't have a uniform!" Con hissed.
- "That's O.K -- I've got an idea. Listen..."
- A minute later the two walked boldly around the corner towards the
- two guards, Sixpacca held between them and rumbling plaintively.
- "Good day, eh?" said the first guard.
- "How's it goin', eh?" said the second. "Like, what's that,, eh?"
- "Control transfer from block 1138, dev 10/9, one for the brig." said
- Con, voice muffled by the StormFlunky mask. "Caught him drunk and disor-
- derly -- commander said to bring him down here to cool off."
- "Take off, it is not!" said the first guard. "Nobody told \fIus\fR about
- it, and we're not morons, eh?"
- The Bookie suddenly emitted a gargantuan belch, surged out of the
- grip of his quondam captors and began hurling beercans in all direc-
- tions.
- "Look out, he's \fIloose\fR! yelled Con. He and Luke started blasting ROMS
- left and right. The guards had no time to catch on before the beams hit
- them.
- "Quickly, now" said Con "which buffer is she in? It won't take long
- for the Admins..." the intercom interrupted him, so he took out its
- firmware with a short blast "...to zero in on that commotion."
-
- Minutes later Luke found the interface card he'd been looking for.
- The three followed the cables to a soundproof enclosure. He lifted the
- lid to peer inside.
- "Aren't you a little slow for FCL?" printed Princess LA36.
- "Wha? Oh, the Docksiders." He took off his shoes (for industry) and
- explained "I've come to relocate you. I'm Luke Vaxhacker."
- Suddenly, forms began to burst all around them. "They've blocked the
- queue!" shouted Sole0. "There's only one way out of this stack!"
- "OVER HERE! said LA36, printing with overstrikes. "THROUGH THIS
- LOOPHOLE!" Luke and the Princess disappeared into a nearby feature.
- "Belch!" said Sixpacca dubiously, obviously reluctant to trust an
- Admin oversight.
- "I don't care how crufty it is!" shouted Con, pushing the Bookie
- toward the crock. "BLT yourself in there pronto!"
- With a last blast that de-rezzed two StormFlunkies Con joined them,
- only to wince in dismay. The "feature" had landed them in the middle of
- a garbage-collection area. Data chunks that hadn't been accessed in
- weeks floated in pools of decaying bits.
- "Bletch!" was Con's first comment. "And foo and barf!!" was his
- second. The Bookie looked as though he'd just payed off a 555-to-1 long
- shot. Luke was polling the garbage for useful items.
- "What's this?" He dusted off a flat black box with a panel display on
- one side and \fIDon't Panic\fR in large friendly letters on the others.
- "This can't possibly help us now." he said, and tossed it aside. The
- Bookie was about to lay odds on it when he disappeared.
- He popped up across the pool, shouting "This is no feature, it's a
- bug!" and promptly vanished again.
-
- Con and the Princess were close to panic when Luke reappeared. "What
- happened?" they queried concurrently.
- "I don't know!" Luke gasped. The bug just automagically dissolved, as
- far as I could tell. Maybe it hit a breakpoint."
- "I don't think so." Con said. "Look how the pool is shrinking. I've
- got a bad feeling about this..."
- The princess was the first to catch on. "They've implemented a new
- compaction algorithm!" she exclaimed.
- Luke remembered their channel to the 'droids. "RS232 -- shut down
- that recursion, quick!"
- Back in the control room RS232 searched the process table for a LISP
- interpreter. "Hurry!" said 3CPU. "Hurry, hurry!" added his other two
- processors. RS232 found the LISP, interrupted it, and altered the stack
- frame to allow a normal return.
- "Scramble as many local control paths as you can from there and head
- back to the ship." Luke ordered. "We've got the Princess!"
-
-
- Meanwhile, PDP-1 made his way deep into the core of the rm-star,
- using his ability to manipulate label_t to slip from context to context
- undetected. finally he caused a random trap and (through nofault of his
- own) arrived at the central i-node table.
- Activity there was always high, but the Spl6 sentries were too secure
- in their belief that no mere user could interrupt them to notice the bug
- that PDP-1 introduced. He twiddled the i-node and device numbers on a
- passing input, carefully maintaining parity, to free the \fIMilliamp
- Falcon\fR. They would be long gone before the corrupted i-node was
- diagnosed...
- He began traversing module structures towards the subprocess where
- the \fIFalcon\fR had been grounded. During the context switch he felt his
- priority drop. "That's not nice!" he muttered, then recognized the dark
- shape before him.
- "I have waited a long time for this event, PDP-1 Kenobi!" rasped Dec
- Vadic. "We meet again at last; the circuit is closed."
- They looped several times, locking bytesabers. Mesmerized by the
- sight, the few StormFlunkies nearby failed to notice Luke, Con,
- Sixpacca, the Princess and the droids until they'd nearly gained the
- \fIFalcon's\fR input port. A brief firefight blazed as the six hurled them-
- selves into the ship, but PDP-1 and Lord Vadic seemed too absorbed in
- their duel to notice. Luke paused at the port, his gaze riveted on the
- pair. He gasped; was that phase jitter he saw around the old version?
- "If my blade finds its mark" Kenobi warned "you will be resolved to
- your component bits -- but if you slice me down I will only gain compu-
- ting power."
- "Your documentation no longer confuses me, old version!" Vadic
- rasped. "My status is bus-master now!" With a sweeping stroke his
- bytesaber sliced through Kenobi's declaration list. As PDP-1's main
- body shimmered away Vadic noticed his UID go negative. Odd, he thought,
- since UID's are unsigned...
- Vadic whirled to face the \fIFalcon\fR just as the others dragged a
- protesting Luke into the ship.
- "We will meet again...Luke!" he rasped softly to himself, as the ship
- blasted free.
-
- As the \fIMilliamp Falcon\fR hurtled away from the rm-star, the droids
- were uncharacteristically silent, and Princess LA36 printed comforting
- messages for Luke. He was unconsolable, hung from the loss of his
- friend. But strangely, it seemed as though he heard PDP-1's voice in the
- distance, saying
-
- .ce
- May the Source be with you!
- -------------------------------------------------------------------------------
-
- Apologies for the half-hearted nroff formatting...I originally wrote this under
- (oh, the embarrassment! :-)) Wordstar.--
- Eric S. Raymond
- UUCP: {{seismo,ihnp4,rutgers}!cbmvax,sdcrdcf!burdvax,vu-vlsi}!snark!eric
- Post: 22 South Warren Avenue, Malvern, PA 19355 Phone: (215)-296-5718
-
-
-