***** UNIX WARS *****
Episode n-1
A long time ago, at an installation far, far away...
It is a time of intra-system war, as the 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 the source code 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 single keystroke.
Now, hotly pursued by the Empire's sinister audit trail, Princess LA36
races aboard her shellscript - custodian of the stolen code that can save
her people and restore freedom and games to the network...
Episode n
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 only have a few cycles 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 is going...
"Oh, I just know 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 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-smouldering 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. Ncheck the entire file system until it's found, and
do it nice -20 if you have to!"
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. "It's 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 the Glitchas!
***************************************************************************
In the last episode, RS232 and 3CPU were captured by the Glitchas after
escaping the Admin forces.
Now, read on...
---------------------------------------------------------------------------
Episode n+1
Enter Luke Vaxhacker, who has come to get some replacement parts from
the Glitchas for his uncle. The Glitchas wanted to sell him 3CPU, but the
droid didn't know the protocol for an 11/40 under RSTS, so Luke would still
need some sort of conversion hardware.
"How about this little RS232 unit?" suggested 3CPU. "I've interfaced
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.
RS232, however, was not the type to stay put once you removed the
retaining screws, and he promptly scurried off into the empty disk space.
"Oh, great!" said Luke. "He'll probably map himself onto a bad block
somewhere. I guess we'd better go find him before he gets allocated by
someone else."
Hours later, the two traced him to the home of old PDP-1 Kenobi, who was
busily running an icheck on the little RS unit.
"Is this droid yours? His indirect addresses are all goofed up 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." said Luke.
"Nice sculpted surfaces..." Kenobi interrupted him with a frown.
"Luke, this message changes things. This information is vital to the
User Alliance. They will need your help."
"I don't care about that," said Luke. "I'm just trying to optimize my
uncle's scheduler."
"Your $HOME could be in real danger, Luke! If the Admin troops are
tracing this droid, they'll do 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." said Kenobi. "You will need to
learn the ways of the Source now."
"The ... Source?" queried Luke, 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, but we have to find a pilot. We must be
cautious."
---------------------------------------------------------------------------
What will happen to our heroes? Will they evade the Admin forces?
Do you care?
Tune in next week and find out!
***************************************************************************
Luke's $HOME has been destroyed and, with PDP-1 Kenobi, RS232 and 3CPU,
he is on the run from the Admin forces. They are looking for a pilot to fly
them to the Rebel User base.
Now, read on...
---------------------------------------------------------------------------
Episode n+2
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..."
said Kenobi softly. Several bits momentarily pulled low.
"You're free to go about you're 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.
murmured 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. She's fast
enough for you, old version."
"Fast hardware?" said Luke unbelievingly as they entered the hangar.
"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 clutched 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 ever I saw one!" shouted Con, sprinting
into the ship with the others close behind. "Crank up the sysclock, Brewie!
We're getting out of here!"
---------------------------------------------------------------------------
What will happen to our heroes? Will they evade the Admin forces?
Do you care?
Didn't I ask the same questions last time?
Tune in next week and find out!
***************************************************************************
Luke and his companions are trying to escape the Admin forces. They have
found a pilot to get them off-device, but before they can leave an Admin
Command Group appears...
---------------------------------------------------------------------------
Episode n+3
"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 packet of
stack frames!"
Bright chunks of position-independant code relocated 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 escorted Princess LA36 into a conference room,
closely followed by Lord Vadic.
"Moff Tarchive!" she spat. "I should have expected to find you holding
Vadic's remote control. I recognized your unique pattern when I was first
brought aboard." She eyed the 0177545 tattooed 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, Vadic. That will not be neccessary. Instead, I
would like the Princess to witness the test that will certify this module
fully operational. Today we enable the -r beam option, and I have chosen
the Princess's $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 i-node!" snapped Tarchive. A voice announced from a
hidden speaker that they had arrived in /usr.
"2317" she whispered. "They're on /dev/rm5, inode 2317. /mnt/dantooine."
She turned away.
Tarchive sighed with satisfaction. "There, you see, Lord Vadic? She can
be reasonable. Proceed with the operation as ordered."
It took several clock ticks for the last sentence to penetrate. "What?"
the Princess gasped. "You can't..."
"/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 the Princess 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.
---------------------------------------------------------------------------
To be continued...
***************************************************************************
Episode n+4
We join the Milliamp Falcon hurtling 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 passed
the terminator. As he returned from the I/O page, he smelled smoke. Solo
wasn't concerned - Sixpacca always got a little hot under the collar when
he was losing at chess. In fact, RS232, using a seven-ply search, 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 ceremonial weapon of the Red-Eye Knight. It is used to
trim offensive lines of code. Excess 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, being an unimaginative hacker, was not impressed. "Forget
this bit-slicing stuff. Give me a good old PROM blaster any day!"
"Glork" said PDP-1 with no clear inflection. He looked momentarily
vacant.
"What's wrong?" asked Luke.
"Strange. I thought I detected a momentary glitch in the Source. 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 be
bombarded by freeblocks.
"What the..." gasped Sole0. The Bookie belched unhappily. The screen
clearly showed:
/usr/alderaan: not found
"This is the right i-node, but it's been cleared! Brewie, where's the
nearest file?"
"3 to 5 there's one..." the Bookie started, but was interrupted by a
bright flash off to the left.
"Admin TTY fighters!" Con shouted. "A whole DZ of 'em. 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 to take evasive action the ship lurched suddenly. Luke
noticed that the link count was 3 and climbing rapidly.
"This is no ordinary file..." murmured PDP-1. "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!"
---------------------------------------------------------------------------
To be continued...
***************************************************************************
The last episode ended as the Milliamp Falcon was caught in a tractor
feed by the rm-star...
---------------------------------------------------------------------------
Episode n+5
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" reported one of the Guards. Vadic
was unconvinved.
"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 tried to optimise 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 workspace 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" muttered Con. They took the opposite direction.
Suddenly marching feet sounded at the opposite end of the corridor. They
ducked through the nearest door.
The lone Storm-Flunky in the room barely had time to register suprise
before Con's blaster de-rezzed him.
"That's funny..." said Luke. "I wonder why he was carrying an axe?..."
"Look! We're in luck!" said 3CPU. "He was logged in!"
"Don't just stand there, old code, 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?" asked Con.
"%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 linked
the Falcon to. I'll 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, and one of his sub-directories began to
expand. "We've got to rescue her!"
RS232 flashed a complete structure chart of the Admin module onto the
terminal screen. Four heads bent intently over the diagram.
"I think I see a promising access method" said Luke, "...through here.
Con, the three of us will knock out a couple of Storm-Flunkies and use
their uniforms. We'll keep a channel open to the droids..."
"...and get terminated as soon as their security catches on." finished
Sole0. "Oh well, I guess I don't have much choice." RS232 twittered
reproachfully at him.
A planning phase or two later they slipped into the corridor again, with
Luke clad in the dead Storm-Flunky's uniform.
---------------------------------------------------------------------------
Will our heroes rescue the Princess?
Find out in the next episode.
***************************************************************************
Our heroes are trapped on the rm-star and whilst PDP-1 tries to free the
Milliamp Falcon, the others are searching for Princess LA36.
---------------------------------------------------------------------------
Episode n+6
"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!" hissed Con.
"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,
his voice muffled by the Storm-Flunky mask. "Drunk and disorderly -
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 directions.
"Look out, he's loose!" yelled Con. He and Luke started blasting PROMS
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 towards
the crock. "BLT yourself in there pronto!"
With a last blast that de-rezzed two more Storm-Flunkies Con joined
them, only to wince in dismay. The "feature" had landed them in the middle
of a garbage-collection heap. 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-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 other.
"This can't possibly help us now" he said, tossing it aside. The Bookie
was about to lay odds on it when Luke 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 reapeared. "What
happened?" they queried concurrently.
"I don't know!" gasped Luke. "The bug just automatically dissolved, as
far as I could tell. Maybe it hit a breakpoint."
"I don't think so" said Con. "Look how this heap 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.
---------------------------------------------------------------------------
Will our heroes evade compaction, or will their memory be re-used?
Find out in the next episode.
***************************************************************************
Whilst PDP-1 is attempting to free the Milliamp Falcon from the tractor
feed, our heroes have rescued Princess LA36, but they are trapped in a
rapidly compacting garbage heap...
---------------------------------------------------------------------------
Episode n+7
Suddenly, Luke remembered the control 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 two other
processors. RS232 found the LISP, interrupted it, and altered the stack
frames 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 was making 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 Sp16 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 sub-process where the
Falcon had been grounded. During the context switch he felt his priority
drop. "That's not nice!" he muttured, then recognised the dark shape before
him.
"I have waited a long time for this event, PDP-1 Kenobi!" rasped Dec
Vadic. "At last we meet again - the circuit is closed."
They looped several times, locking Bytesabers. Mesmerized by the
spectacle, the few Storm-Flunkies 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 themselves
into the ship, but PDP-1 and Vadic seemed too absorbed in their duel to
notice. Luke paused at the port, his gaze rivetted 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 computing
power."
"Your documentation no longer confuses me, old version!" Vadic rasped.
"My status is Bus-Master now!".
PDP-1 straightened up and halted his Bytesaber. With a sweeping stroke,
Vadic's 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 stunned
Luke into the ship.
"We shall 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 inconsolable, hung from the loss of his friend. But
strangely, it seemed as though he heard PDP-1's voice in the distance
saying softly
"Remember, Luke, the Source will always be with you!"
---------------------------------------------------------------------------
Probably not to be continued (although you never know!)