TCLUG Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

FW: DEC Wars



I'm sorry about the large message, but this was too funny not to post to the
list. :)




        A long time ago, on a node far, far away (from ucbvax)
        a great Adventure (game?) took place...


     XXXXX   XXXXXX   XXXX           X    X    XX    XXXXX    XXXXX    X
     X    X  X       X    X          X    X   X  X   X    X  X         X
     X    X  XXXXX   X               X    X  X    X  X    X   XXXX     X
     X    X  X       X               X XX X  XXXXXX  XXXXX        X    X
     X    X  X       X    X          XX  XX  X    X  X   X   X    X
     XXXXX   XXXXXX   XXXX           X    X  X    X  X    X   XXXX     X



It is a period of system war. User programs, striking from a hidden directory,
have won their first victory against the evil
Administrative Empire. During the battle, User spies managed to steal secret
source code to the Empire's ultimate program: the Are-Em
Star, a privileged root program with enough power to destroy an entire file
structure. Pursued by the Empire's sinister audit trail,
Princess _LPA0: races aboard her shell script, custodian of the stolen
listings that could save her people, and restore freedom and games
to the network...



As we enter the scene, an Administrative Multiplexer is trying to kill (I) a
consulate ship. Many of their signals have gotten through, and
RS232 decides it's time to fork off a new process before this old ship is
destroyed. His companion, 3CPU, is following him only because
RS232 appears to know where he's going...

"I'm going to regret this!" cried 3CPU, as he followed RS232 into the buffer.
RS232 closed the pipes, made the sys call, and their process
detached itself from the burning shell of the ship.

The commander of the Administrative Multiplexer was quite pleased with the
attack. "Another process just forked, sir. Instructions?"
asked the lieutenant.

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

"We can't seem to find the data file anywhere, Lord Vadic."

"What about that forked process? It could have been holding the channel open,
and just pausing. If any links exist, I want them removed
or made inaccessable. Ncheck the entire file system 'til it's found, and nice
it -20 if you have to."

Meanwhile, in our wandering process... "Are you sure you can ptrace this thing
without causing a core dump?" queried 3CPU to RS232. This
thing's been stripped, and I'm in no mood to try to debug it." The lone
process finishes execution, only to find our friends dumped on a
lonely file system, with the setuid inode stored safely in RS232. Not knowing
what else to do, they wandered around until the jawas
grabbed them.

Enter our hero, Luke Vaxhacker, who was out to get some replacement parts for
his uncle. The jawas wanted to sell him 3CPU, but 3CPU
didn't know how to talk directly to an 11/40 with RSTS, so Luke still needed
some sort of interface for 3CPU to connect to. "How about
this little RS232 unit?" asked 3CPU. "I've dealt with him many times before,
and he does an excellent job at keeping his bits straight."
Luke was pressed for time, so he took 3CPU's advice, and the three left before
they could get swapped out.

However, RS232 was not the type to stay put once you remove the retaining
screws. He promptly scurried off into the the deserted disk
space. "Great!" cried Luke, "Now I've got this little tin box with the only
link to that file off floating in the free disk space. Well, 3CPU,
we better go find him before he gets allocated by someone else." The two set
off, and finaly traced RS232 to the home of PDP-1 Kenobi,
who was busily trying to run an icheck on the little RS unit.

"Is this thing yours? His indirect addresses are all goofed up, and the size
is all wrong. Leave things like this on the loose, and you'll wind
up with dups everywhere. However, I think I've got him fixed up."



Later that evening, after futile attempts to interface RS232 to Kenobi's
Asteroids cartridge, Luke accidentally crossed the interface's
CXR and Initiate Remote Test (must have been all that Coke he'd consumed), and
the screen showed a very distressed person claiming
royal lineage making a plea for help from some General OS/1 Kenobi.

"Darn," mumbled Luke. "I'll never get this Asteroids game worked out."

PDP-1 seemed to think there was some significance to the message and a
possible threat to Luke's home directory. If the Administrative
Empire was indeed tracing this 'droid, it was likely they would more than
charge for cpu time...

"We must get that 'droid off this file system," he said after some intervals.
They sped off to warn Luke's kin (taking a `relative' path) only
to find a vacant directory...



After sifting through the overwritten remaining blocks of Luke's home
directory, Luke and PDP-1 sped away from /owen/lars, across
the surface of the Winchester riding Luke's flying read/write head. PDP-1 had
Luke stop at the edge of the cylinder overlooking
/usr/spool/uucp.

"Unix-to-Unix Copy Program," said PDP-1. "You will never find 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
Administrative protection bits.

"State your UID," commanded their parent process.

"We're running under /usr/guest," said Luke. "This is our first time on this
system."

"Can I see some temporary privileges, please?"

"Uh..."

"This is not the process you are looking for," piped in PDP-1, using an
obscure bug to momentarily set his effective UID to root. "We can
go about our business."

"This isn't the process we want. You are free to go about your business. MOV
along!"

PDP-1 and Luke made their way through a long and tortuous nodelist
(cwruecmp!decvax!ucbvax!harpo!ihnss!ihnsc!ihnss!ihps3!stolaf) to a
dangerous netnode frequented by hackers, and seldom polled by Administrative
Multiplexers. As Luke stepped up to the bus, PDP-1 went
in search of a likely file descriptor. Luke had never seen such a collection
of weird and exotic device drivers. Long ones, short ones, ones
with stacks, EBCDIC converters, and direct binary interfaces all were drinking
data at the bus.

"#@{ *&^%^$$#@ ":><," transmitted a particularly unstructured piece of code.

"He doesn't like you," decoded his coroutine.

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

"You'll be reallocated!" concatenated the coroutine.

"This little routine isn't worth the overhead," said PDP-1 Kenobi, overlaying
into Luke's address space.

"@$%&(&^%&$$@$#@$AV^$gfdfRW$#@!!!!!!!!!!!!!!!!!" encoded the first coroutine
as it attempted to overload PDP-1's input overvoltage
protection. With a unary stroke of his bytesaber, Kenobi unlinked the
offensive code.

"I think I've found an I/O device that might suit us."

"The name's Con Solo," said the hacker next to PDP-1. "I hear you're looking
for some relocation."

"Yes indeed, if it's a fast channel. We must get off this device."

"Fast channel? The Milliamp Falcon has made the ARPA gate in less than twelve
nodes! Why, I've even outrun cancelled messages. It's fast
enough for you, old version."

Our heroes, Luke Vaxhacker and PDP-1 Kenobi made their way to the temporary
file structure. When he saw the hardware, Luke
exclaimed, "What a piece of junk! That's just a paper tape reader!"



Luke had grown up on an out of the way terminal cluster whose natives spoke
only BASIC, but even he could recognize an old ASR-33.

"It needs an EIA conversion at least," sniffed 3CPU, who was (as usual) trying
to do several things at once. Lights flashed in Con Solo's
eyes as he whirled to face the parallel processor.

"I've added a few jumpers. The Milliamp Falcon can run current loops around
any Administrative TTY fighter. She's fast enough for you."

"Who's your co-pilot?" asked PDP-1 Kenobi.

"Two Bacco, here, my Bookie."

"Odds aren't good," said the brownish lump beside him, and then fell silent,
or over. Luke couldn't tell which way was top underneath all
those leaves.

Suddenly, RS232 started spacing wildly. They turned just in time to see a
write cycle coming down the UNIBUS toward them.
"Administrative Bus Signals!" shouted Con Solo. "Let's boot this pop stand!
Tooie, set clock fast!"

"Ok, Con," said Luke. "You said this crate was fast enough. Get us out of
here!"

"Shut up, kid! Two Bacco, prepare to make the jump into system space! I'll try
to keep their buffers full."

As the bookie began to compute the vectors into low core, spurious characters
appeared around the Milliamp Falcon. "They're firing!"
shouted Luke. "Can't you do something?"

"Making the jump to system space takes time, kid. One missed cycle and you
could come down right in the middle of a pack of stack
frames!"

"Three to five we can go now," said the bookie. Bright chunks of position
independent code flashed by the cockpit as the Milliamp Falcon
jumped through the kernel page tables. As the crew breathed a sigh of relief,
the bookie started paying off bets.

"Not bad, for an acoustically coupled network," remarked 3CPU. "Though there
was a little phase jitter as we changed parity."



The story thus far: Luke, PDP-1 and their 'droids RS232 and 3CPU have made
good their escape from the Administrative Bus Signals with
the aid of Con Solo and the bookie, Two Bacco. The Milliamp Falcon hurtles
onward through system space. Meanwhile, on a distant page
in user space...

Princess _LPA0: was ushered into the conference room, followed closely by Dec
Vadic. "Governor Tarchive," she spat, "I should have
expected to find you holding Vadic's CTS lead. I recognized your unique
pattern when I was first brought aboard." She eyed the 0177545
tatooed on his header coldly.

"Charming to the last," Tarchive declared menacingly. "Vadic, have you
retrieved any information?"

"Her resistance to the logic probe is considerable," Vadic rasped. "Perhaps we
would get faster results if we increased the supply
voltage..."

"You've had your chance, Vadic. Now I would like the princess to witness the
test that will make this workstation fully operational.
Today we enable the -r beam option, and we've chosen the princess' $HOME of
/usr/alderaan as the primary target."

"No! You can't! /usr/alderaan is a public account, with no restricted
permissions. We have no backup tapes! You can't..."

"Then name the rebel inode!" Tarchive snapped.

A voice announced over a hidden speaker that they had arrived in /usr.

"1248," she whispered, "They're on /dev/rm3. Inode 1248, /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!" _LPA0: gasped.


"/dev/rm3 is not a public filesystem," Tarchive explained. "We require a more
visible subject to demonstrate the power of the Are-Em
Star workstation. We will mount an attack on /mnt/dantooine as soon as
possible."

As the princess watched, Tarchive reached over and typed "ls" on a nearby
terminal. There was a brief pause (there being only one
processor on board) and the viewscreen showed, ".: not found." The princess
suddenly double- spaced and went off-line.



The Milliamp Falcon hurtles on through system space...

Con Solo finished checking the various control and status registers, finally
convincing himself that they had lost the Bus Signals as they
passed the terminator. As he returned from the I/O page, he smelled smoke.
Solo wasn't concerned--the Bookie always got a little hot
under the collar when he was losing at chess. In fact, RS232 had just executed
a particularly clever MOV that had blocked the Bookie's
data paths. The Bookie, who had been setting the odds on the game, was caught
holding all the cards. A little strange for a chess game...

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 weapon of the Red-eye Night. It is used
to trim offensive lines of code. Excess handwaving won't get you anywhere.
Listen for the Carrier."

Luke turned back to the drone, which was humming quietly in the air next to
him. This time Luke's actions complemented the drone's
attacks perfectly.

Con Solo, being an unimaginative hacker, was not impressed. "Forget this
bit-slicing stuff. Give me a good ROM blaster any day."

"~~j~~hhji~~," said Kenobi, with no clear inflection. He fell silent for a few
seconds, and reasserted his control.

"What happened?" asked Luke.

"Strange," said PDP-1. "I felt a momentary glitch in the Carrier. It's
equalized now."

"We're coming up on user space," called Solo from the CSR. As they cruised
safely through stack frames, they emerged in the new context
only to be bombarded by free blocks.

"What the..." gasped Solo. The screen showed clearly: /usr/alderaan: not found
"It's the right inode, but it's been cleared! Twoie, where's
the nearest file?"

"3 to 5 there's one..." the Bookie started to say, but was interrupted by a
bright flash off to the left.

"Administrative TTY fighters!" shouted Solo. "A whole DZ of them! Where are
they coming from?"

"Can't be far from the host system," said Kenobi. "They all have direct EIA
connections."

As Solo began to give chase, the ship lurched suddenly. Luke noticed the link
count was at 3 and climbing rapidly.

"This is no regular file," murmured Kenobi. "Look at the ODS directory
structure ahead! They seem to have us in a tractor feed."

"There's no way we'll unlink in time," said Solo. "We're going in."



When we last left Luke, the Milliamp Falcon was being pulled down to the open
collector of the Administrative Are-Em Star
Workstation. Dec Vadic surveys the relic as Administrative Flunkies search for
passengers...

"LS scan shows no one aboard, sir," was the report. Vadic was unconvinced.

"Send a fully equipped Ncheck squad on board," he said. "I want every inode
checked out." He turned around (secondary channel) and
stalked off.

On board the Milliamp Falcon, .Luke was puzzled. "They just walked in, looked
around and walked off," he said. "Why didn't they see us?"

.Con smiled. "An old munchkin trick," he explained. "See that period in front
of your name?"

.Luke spun around, just in time to see the decimal point. "Where'd that come
from?" he asked.

"Spare decimal points lying around from the last time I fixed the floating
point accelerator," said .Con. "Handy for smuggling blocks
accross file system boundaries, but I never thought I'd have to use them on
myself. They aren't going to be fooled for long, though. We'd
better figure a way outa here."



At this point (.) the dialogue tends to wedge. Being the editor and in total
control of the situation, I think it would be best if we sort of
gronk the next few paragraphs. For those who care, our heroes find themselves
in a terminal room of the Workstation, having thrashed
several Flunkies to get there. For the rest of you, just keep banging the
rocks together, guys. --Ed.



"Hold on," said Con. "It says we have `new mail.' Is that an error?"

"%SYS-W-NORMAL, Normal, successful completion," read PDP-1. "Doesn't look like
it. I've found the inode for the Milliamp Falcon. It's
locked in kernel data space. I'll have to slip in and patch the reference
count, alone." He disappeared through a nearby entry point.

Meanwhile, RS232 found a serial port and logged in. His bell started ringing
loudly. "He keeps saying, `She's on line, she's on line'," said
3CPU. "I believe he means Princess _LPA0:. She's being held on one of the
privileged levels."



Once again, things get sticky, and the dialogue suffers the most damage. After
much handwaving and general flaming, they agree to
rescue her. They headed for the detention level, posing as Flunkies (which is
hard for most hackers) claiming that they had trapped the
Bookie executing an illegal racket. They reached the block where the Princess
was locked up and found only two guards in the header.
--Ed.



"Good day, eh?" said the first guard.

"How's it goin', eh?" said the other. "Like, what's that, eh?"

"Process transfer from block 1138, dev 10/9," said Con.

"Take off, it is not," said the first guard. "Nobody told US about it, and
we're not morons, eh?"

At this point (.), the Bookie started raving wildly, Con shouted "Look out,
he's loose!" and they all started blasting ROMs left and right.
The guards started to catch on and were about to issue a general wakeup when
the ROM blasters were turned on them.

"Quickly, now," said Con. "What buffer is she in? It's not going to take long
for these..."

The intercom receiver interrupted him, so he took out its firmware with a
short blast.

"guys to figure out something is goin' on," he continued.



Ok, like, remember we left our heroes in the detention priority level? Well,
they're still there...

Luke quickly located the interface card and followed the cables to a sound-
proof enclosure. He lifted the lid and peered at the
mechanism inside.

"Aren't you a little slow for ECL?" printed princess _LPA0:.

"Wha? Oh, the Docksiders," stammered Luke. He took off his shoes (for
industry) and explained, "I've come relocate you. I'm Luke
Vaxhacker."

Suddenly, forms started bursting around them. "They've blocked the queue!"
shouted Solo. "There's only one return from this stack!"

"OVER HERE!" printed _LPA0: with overstrikes. "THROUGH THIS LOOPHOLE!" Luke
and the princess disappeared into a nearby feature.

"Gritch, gritch," mumbled Two Bacco, obviously reluctant to trust an
Administrative oversight.

"I don't care how crufty it is!" shouted Con, pushing the Bookie toward the
crock. "DPB yourself in there now!"

With one last blast that reprogrammed two flunkies, Con joined them. The
"feature" landed them right in the middle of the garbage
collection code. Pieces of data that hadn't been used in weeks floated past in
a pool of decaying bits.

"Bletch!" was Con's first comment. "Bletch, bletch," was his second. The
Bookie looked as if he'd just paid a long shot, and the odds in this
situation weren't much better.

Luke was polling the garbage when he stumbled upon a book with the words
"Don't Panic" inscribed in large, friendly letters on the cover.
"This can't possibly help us now," he said as he tossed the book away. The
Bookie was about to lay odds on it when Luke suddenly
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 about to panic() when Luke reappeared. "What
happened?" they asked in parallel.

"I don't know," gasped Luke. "The bug just dissolved automagically. Maybe it
hit a breakpoint..."

"I don't think so," said Con. "Look how the pool is shrinking. I've got a bad
feeling about this..."

The princess was the first to realize what was going on. "They've implemented
a new compaction algorithm!" she exclaimed.

Luke remembered the pipe he had open to 3CPU. "Shut down garbage collection on
recursion level 5!" he shouted.

Back in the control room, RS232 searched the process table for the lisp
interpreter. "Hurry," sent 3CPU. "Hurry, hurry," added his other
two processors. RS232 found the interpreter, interrupted it, and altered the
stack frame they'd fallen into to allow a normal return.



Meanwhile, PDP-1 made his way deep into the core of the Workstation, slipping
from context to context, undetected through his
manipulation of label_t. Finally, causing a random trap (through nofault of
his own) he arrived at the inode table. Activity there was
always high, but the Spl6 sentries were too secure in their knowledge that no
user could interrupt them to notice the bug that PDP-1
carefully introduced. On a passing iput, he adjusted the device and inode
numbers, maintaining parity, to free the Milliamp Falcon. They
would be long gone before the locked inode was diagnosed...

Unobserved, he began traversing user structures to find the process where the
Milliamp Falcon was grounded. Finding it and switching
context, he discovered his priority weakened suddenly. "That's not very nice,"
was all he could say before the cause of the obstruction
became clear.

"I have been pausing a long time, PDP-1 Kenobi," rasped Dec Vadic. "We meet
again at last. The circuit has been completed."

They looped several times, locking byte sabers. Bit by bit, PDP-1 appeared to
weaken. The fight had come into the address space of the
Milliamp Falcon, and provided the .di (diversion?) that allowed Luke and the
others to reassert control. Luke paused to watch the
conflict.

"If my blade finds its mark," warned Kenobi, "you will be reduced to so many
bits. But if you slice me down, I will only gain computing
power."

"Your documentation no longer confuses me, old version," growled Vadic. "my
Role MASTER now."

With one stroke, Vadic sliced Kenobi's last word. Unfortunately, the word was
still in Kenobi's throat. The word fell clean in two, but
Kenobi was nowhere to be found. Vadic noticed his victim's uid go negative,
just before he disappeared. Odd, he thought, since uids were
unsigned...

Luke witnessed all this, and had to be dragged into the Milliamp Falcon. Con
Solo and Two Bacco maneuvered the Milliamp Falcon out of
the process, onto the bus and made straight for system space. 3CPU and RS232
were idle, for once. Princess _LPA0: tried to print
comforting things for him, but Luke was still hung from the loss of his
friend. Then, seemingly from nowhere, he thought he heard
PDP-1's voice say,

"May the carrier be with you."


Thank You,
        Ben Kochie (ben@nerp.net)

*-----------------------*  [ - * - * - * - * - * - * - * - ]
| Unix/Linux Consulting |  [ Haiku Error Message:          ]
|  PC/Mac Repair        |  [  Chaos reigns within.         ]
|   Networking          |  [  Reflect, repent, and reboot. ]
| http://nerp.net       |  [  Order shall return.          ]
*-----------------------*  [ - * - * - * - * - * - * - * - ]

 "Unix is user friendly, Its just picky about its friends."