Unix Wars

20.4.2006


-------------------------------------------------------------------------------

 # # # # ### # # # # # ###### #####

 # # ## # # # # # # # # # # # # #

 # # # # # # # # # # # # # # # #

 # # # # # # # # # # # # ###### #####

 # # # # # # # # # # # ####### # # #

 # # # ## # # # # # # # # # # # #

  ##### # # ### # # ## ## # # # # #####



  (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 know 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 sure 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 Filewalker, 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 odd 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..."

   "This isn't the process you are looking for," Kenobi said softly.

"We can go about our business." 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.

   "This little routine isn't worth the overhead..." 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 Milliamp Falcon 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 Milliamp Falcon 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 Falcon 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 feep 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 Milliamp Falcon.

   "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 Tarchive

"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

   .: no such directory

   Abruptly the Princess double-spaced and went offline.



   Meanwhile, the Milliamp Falcon 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

   /usr/alderaan: not found

"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 Milliamp Falcon 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.

   "ls scan shows no one on board, sir" was the report. Vadic was

unconvinced.

   "Send a fully equipped ncheck squad aboard. I want every location in

that thing searched." He stalked away.



   Aboard the Falcon .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 Falcon

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, su 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...

   You have new mail

   "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 Milliamp Falcon 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 us 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 loose! 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 Filewalker."

   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 Don't Panic 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 Milliamp

Falcon
. They would be long gone before the corrupted i-node was

diagnosed...

   He began traversing module structures towards the subprocess where

the Falcon 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

Falcon's 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 Falcon 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 Milliamp Falcon 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!

-------------------------------------------------------------------------------




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

fun