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