DisgruntledGoat.com
Pansy! Sissy!
- - - - -
Most popular:
Menu:
:: Home
:: Fascinations
:: Goat Labs
:: Miscellany
:: RANT!
:: Silly stuff
:: Useful stuff
:: Cars & Driving
Hosted by
Web Without Wires from Zycomm
:: Printable version
Custom Search

PENIX man pages

Forward

The following words are not mine - they were written by Nikolai Kingsley and belong to him and him alone. Unfortunately, the pages that were hosting the PENIX man pages vanished from the interwebs some time ago, and it was only by chance that I managed to find a backup copy of them. I feel obliged to reproduce them here as they really are brilliant :-)


Contents

Overview

What is Penix?                    

     Penix is that way-cool multitasking Operating  System that's a bit
     like that other  one you might have heard of..  you know,  the one
     that  has the  Interthingy running on it.  Needlessly  complex and
     given to falling over at the drop of a hat.              


Commands:               

     cfts               completely fuck the system               

     rcatpar            randomly change all the passwords at random

     wi                 whatyouseeisprettypathetic interactiveEditor

     edmond             page-oriented   editor.  a  step  down  from  a
                        line-editor, this one treats text as page-sized
                        chunks.               

     rofl               roll on floor laughing.  not  so  much a system
                        functions as what the support staff do when you
                        ask them if they still have last week's backups
                        on tape somewhere.               

     ispi               shows some of the processes running, some of the
                        users  on  the  other lines, and sometimes  even
                        gives   statistics   on  CPU  usage.  it's  very
                        context-sensitive.               

     sssl               suddenly exchange serial lines with another user

     pong               let  the  other  machines  on  the net know that
                        you're there               

     exorcise           terminate   a  daemon  process   completely  and
                        utterly.  kill  it  off, every last trace. we're
                        not kidding here. finito.               


Common Penix terms:               

     walnut             the heart of the Penix OS. at compilation, it is
                        approximately 71 megabytes in size (depending on
                        whether you have the development system or not),
                        but this figure regularly  oscillates between 67
                        meg and 8 gig, as the system `breathes'.

                        It was written in interpreted BASIC, for ease of
                        modification.

     daemon             a process that detaches itself from your console
                        session.  unless  you redirect  the output  from
                        this  daemon  into a specified file,  any output
                        produced  will  appear  out  of  various serIOus
                        lines on the system at the daemon's  discretion.
                        you can  terminate a daemon with the exorcise -X
                        function.

     aengel             like a daemon,  except a  bit  more  polite.  an
                        aengel process will ask before it directs output
                        to your serIOus  line.   it will generally do it
                        anyway, but at least it asks first.

     nyemph             a daemon process that can  migrate from one file
                        system to another,  and will do so if its output
                        has filled  the  filesystem that it  started on.
                        slippery little buggers.

     maenad             like  a  nyemph  task,  but  a  little  bit more
                        attractive.

     sprite             a very simple  background task that does  menial
                        things like flash the  cursor colours,  play the
                        sampled `beep' sound when you press control-g on
                        the keyboard,  and make that  annoying  click on
                        the floppy drive  as the OS checks to see if you
                        have put in a disk yet.

     goelem             a  very  powerful  background  task.   also very
                        stupid.  they are usually  started by the system
                        itself,  when  the  need  arises to do something
                        labour-intensive  and  boring  -  so  boring, in
                        fact,  than  none of the usual  background tasks
                        will  touch it.  you  occasionally  find  goelem
                        tasks wandering  around after they have finished
                        their task, too stupid to realise that they HAVE
                        finished; pretty much all you can do about it is
                        allocate  them a very  low  time-slice  (see the
                        `motu'  command)  and hope  that  they don't get
                        into any trouble.

     caenobites         this is something we  aren't  particularly proud
                        of  here at  Sunburne,  but we  think  that  you
                        should  know about,  in the interests of safety.
                        we will admit that the circumstances that led us
                        to  developing  Penix are slightly unusual,  and
                        that there is quite a bit about this system that
                        was,  er,  inherited.  We're not  saying that we
                        stole  it.  but there  are large  areas of  this
                        system  that we  know nothing about,  but which,
                        when we remove them, the system stop altogether.
                        we don't  know exactly  what caenobite tasks do,
                        but we have found that  you can't kill them; you
                        can't stop them;  you can't even slow them down.
                        whenever we use the motu command to  alter their
                        timeslice,  they completely  ignore it (this may
                        be due to  the fact that  we think motu's orders
                        are  passed  to the rest  of  the system  by the
                        caenobite   tasks).  a  caenobite  task  can  be
                        incited  to  remove other  tasks by passing it a
                        BOX_OPEN message packet,  but they are best left
                        alone.  thank god there  are usually  only about
                        four of them.

     networks           the  Penix  network  philosphy  is  based  on  a
                        `Master/Slave'   relationship.  Systems  can  be
                        linked  into networks  that  include  hundred of
                        machines,     but    generally,    inter-machine
                        communication   is    dominant/submissive.   One
                        machine makes a begging,  whimpering request for
                        a file from its `Dom', which must then establish
                        which of its `Subs' has the file. It then issues
                        a  spank_IO  order  for the  file;  if the  data
                        packet  isn't  sent  within the  system  default
                        timeout  period,  the Dom  issues a  whip_IO. If
                        THAT doesn't work, the Dom grabs the nearest (by
                        address)  Sub  by its bus,  shakes it silly, and
                        applies the logical equivalent of nipple-clips.

     serviette          a  server  with less than  300 meg of hard  disk
                        space.

     drooler            printing  is controlled  by the drooler  daemon,
                        who dribbles  text out of  the assigned  printer
                        ports  when it  feels like it.  if the  drooling
                        process  is going  too slow for your liking,  it
                        can be prompted by invoking any of the currently
                        running caenobytes.

     Booting            one  does not  re-BOOT  a  Penix  system; it  is
                        `re-shoed'.  If you boot a Penix system, it will
                        fall apart.  Reshoe-ing  involves  locating  the
                        sock partition,  socking it,  then looking about
                        for  something  that  resembles  a shoe-block (a
                        disk-block with startup information on it). once
                        located,  the  shoe-block  is  overlaid onto the
                        sock partition and is `laced'. At the request of
                        our  user,  we  have   incorporated   dual  shoe
                        partitions, to enable disk mirroring. the System
                        must always be re-shoed from the same partition;
                        if  you  get the  left-shoe  and the  right-shoe
                        partition mixed up,  then after re-shoeing,  the
                        system will take a few tottering  steps and will
                        then fall over.          

     scanning the sock partition for a shoe block can be a time-consuming
     process; if the entire hard disk  had to be examined,  it could take
     days.  an algorithm has been  implemented that scans  disk blocks at
     random,  on the assumption  that  there will  be more  than one shoe
     block on the disk   (this is a standard security  feature - in fact,
     more  than  half  of the  disk's b locks are  usually  allocated  as
     shoe-blocks, to save time when looking for one to shoe from).

     example of console messages on booting

     Penix v37.019a ROMrev 76:e_beta (development)
     shoe in progress
     locating sock partition
     scanning SCSI bus  *******
     scanning st506 devices  **
     getting desperate
     scanning floppy drives  **
     getting really desperate
     scanning tape drive  *
     sock located on tape drive
     scanning SCSI bus again  ******
     loading SCSI device driver
     scanning for shoe block at RANDOM
     ....................................
     ....................................
     ....................................
     .................... bingo
     left shoe located at cyl:00.head:15.sec:16
     loading shoe block
     processing   ......................................
     ............. ignoring checksum errror
     overlaying sock partition
     lacing   **** shoe partition LACED, Booting
     walnut located, processing ..... done
     do you want to inhibit DAEMON processes at this time (default=n)? n
     do you want to inhibit AENGEL processes at this time (default=n)? n
     do you want to inhibit NYEMPH processes at this time (default=n)? n
     do you want to inhibit MAENAD processes at this time (default=n)? n
     do you want to inhibit SPRITE processes at this time (default=n)? n
     do you want to inhibit CAENOBITE processes at this time (default=y)? y
     too bad. you can't.
     do you want to inhibit GOELEM processes at this time (default=n)? n
     starting Daemons:  spon   spoo   furph   wrack   wruin   hobble
          castrate   whats_all_this_then   drooler
     starting Aengels:  moroni  goliad  mikayel  cefiar  lucifer
     starting Nyemphs:  dom_net_prep   dom_net_enquire  TOPY_server
          EN_server  spk_server  clock_DVA_server  sK_pup_server
     starting Maenads:  *** Maenad table is empty
     starting Sprites:  cursor_flash  keyboard_click
          annoying_floppy_drive_noise
     starting Goelems:  lif_dat_wait    tote_dat_bail
     starting Caenobytes:
     *** Caenobyte table is empty
     this is a DOM net_device: initialising SpankIO WhipIO
     initialising serIOus lines  000  001  002  003...
     ... and so on.
     directories/filesystems
     /uselss/little_black_book
     network list of all machines in the Clique
     /closet

     list of filesystem devices, in format:

     address      device type
     00000000     RAM
     00000001     RAM
     00000010     RAM
     00000011     RAM
     00000100     RAM
     00000101     DEVICE: FLOPPY CONTROLLER...

     /passwords
          system password file. It has passwords in it.

     /now_hear_this_you_scum
          system login message.

     /spew_bucket
          Sysadmin's mail file

     /lib
          library files here

     /libs
          other library files here.  if a process needs
          a library file from here,  you can guarrantee
          that it's over in /uselss/lib instead.

     /der
          text files/notices here

     /der/zorcho
          insult packets

     /der/ttbowl/
          waste goes in here

     /der/greeting_card
          `oops' packets

     /comp
          executeables live here

     /whoops_a_daisy
          unallocated blocks here

     /ho_hum
          logfiles here

     /trash
          schedule tables for backgrounders

     /ephemeral
          temporary files

     /ephemeral/what_the_hell_happened
          System command log.

     /help_files
          the man entries would be here,  but our user
          thinks that `man' is sexist, so we called it
          help_files.

     /important/really_important
          DO NOT REMOVE OR ALTER THIS FILE!

     /mungle
          not sure what this directory is for,  but the
          system won't run without it.

     /thingies
          utility  programs  and other stuff we haven't
          documented yet.

     /typical/who's_where
          system task table

     /who's_who
          a duplicate of the system task table; used by
          some  programs but not all  of them.  when in
          doubt refer to both task-tables and then
          guess.

     /keymaps/keymaps/keymaps/keymaps/spo0
          Default keymap for wi.

     /WinGE/danglements
          default files for WinGE graphic images

     /.snivel
          default WinGE startup-script file

cfts

CFTS(1)                     USER COMMANDS                    CFTS(1)
PENIX                OPERATING SYSTEM DOCUMENTATION            PENIX


NAME

     cfts - emergency stop all processes


SYNOPSIS

     cfts [ - ] cklnsvy [ dummy ] [ secs ] [ reason ]


DESCRIPTION

     cfts  brings the system  to a complete halt within four seconds
     of the command being issued at the rooted(c) console, or by any
     serial  terminal  logged  in  under  the `games' account.   Any
     background  tasks,  daemons,  aengels,  spraites,  nyemphs  and
     maenads  are  terminated brutally and with no regard to whether
     they were  just about to  close  the  file  that  they had been
     writing to.  Any accounts logged in when this command is issued
     will be in a dubious  state  when  the system is  reshoed,  and
     unless the  rooted(c)  filesystem has  either an even number of
     bytes free  or  a  number that is  divisible by  the sum of the
     digits  in the  date  and time when the command is issued,  the
     filesystem will be completely munged  and the drive controllers
     will be  issued with a command that invariably drives the heads
     into the platters with a sound like Freddy Krueger scratching a
     blackboard.  This  command  requires  rooted(c) access,  or the
     knowledge that  you can break out of the `games' account's menu
     by typing control-p three times rapidly.   The command can then
     be issued from the `games' account's YEAH_SO_WHAT_NOW_SMARTARSE
     prompt.


FUNCTION LETTERS

     s    The argument after  the next argument specifies the number
          of seconds  until the event is to take place.  This allows
          the  support  staff to  get clear of the system,  bolt the
          door  and  take  the  phone  off  the hook.   The argument
          directly after this  is a dummy argument, usually `-1'; if
          it is greater than 3, a message will be sent to all users,
          either  wishing them  a happy birthday  or  asking them if
          they have any albums by  Gary Clail,  depending on whether
          the argument is odd or even.   Any responses to the latter
          will  be  appended  to  the  file  Gary_Clail_Responses in
          uselss/der/ttbowl.

     k    klunk  option.   This  crashes  the  session  and does not
          actually  issue  the  cfts  system  call,  so that you can
          impress  the  girls  with  your bravery by daring to issue
          this  command  safely  with no more damage than locking up
          the system console, requiring a system reshoe.

     c    This prevents the  appearance of the  `Are you really sure
          that you want to do this? prompt.

     y    This  prevents  the  appearance  of  the  `Are you really,
          really sure that you want to do this? prompt.

     l    This  prevents  the  appearance  of  the  `Look,  I'm  not
          convinced  that  you  should be playing with this command,
          you know.' prompt.

     n    Notify.   This  requires  the  inclusion of a 63-character
          alphanumeric  string  which  will  be  displayed  on every
          serial  terminal with  a currently active session and will
          be  printed continuously  on all system printers until the
          filesystem  dies  (usually about  thirty seconds after the
          command is issued, depending on processor speed).  It must
          be used  in conjunction with the s option,  and  therefore
          must  be preceeded by the `seconds' and `dummy' arguments,
          otherwise  we'd have to modify the code to  check how many
          arguments  you  issued with the command,  and  whenever we
          tried to incorporate that feature in the code, it wouldn't
          compile properly.

     v    Verbose mode.  If  this  option is absent, you will see no
          response to the command after the rooted(c) `%-) ' command
          line  prompt  returns,  until  the  command actually takes
          effect.  If present, you will see a whole stream of clever
          messages  on  the  rooted(c) console to the effect of `Ooh
          Aah,  you've  done  it  now'  and `Guess who's going to be
          looking  for  a  job  next  Monday, eh?  :->'.  Hoever,
          inclusion of this option  does ensure that the command log
          file  kept  in  ho_hum/what_the_hell_happened  is  trashed
          before anything else,  ensuring that no-one will ever know
          that it was you who did it, unless you are silly enough to
          get drunk at an office party and brag about it.


EXAMPLES

     to Completely F**k The System:

          %-) cfts vns 4 5 that's what you get for not giving me~
                           that payrise!

              this will activate the verbose option, will notify the
              users  that  the  system  will  be unavailable in five
              seconds  (with  the  indicated message),  and will ask
              them if they have any Gary Clail albums.

FILES

     /uselss/der/ttbowl/GaryClailResponses  Usually empty,  as not many
                                            people can think that fast.

     /ephemeral/what_the_hell_happened      System command log. Contains
                                            every   single  embarrassing
                                            thing  you ever typed on the
                                            system  console,  from  your
                                            stupid attempts to break out
                                            of the `Cosmic Ballcrushers'
                                            game    you    inadvertently
                                            started, to the archives you
                                            made  of  those stories from
                                            alt.sex.bestiality  that you
                                            got  when the manager wasn't
                                            looking.

     /important/really_important            this  file  doesn't have any
                                            function, but no other penix
                                            command  mentions it, and as
                                            it   takes  up  almost  four
                                            megabytes,  we  thought that
                                            we   should  mention  it  at
                                            least once.


SEE ALSO

     crp(1), bollx(1), stuffio(2), banan(5), drump(8), clrump(8),
     flrump(3), doobrie(9), ftang(65534), pong(2), brap(12),
     what_the_hell_was_that(0)


BUGS

     Sometimes, the klunk option doesn't work.

     If the command is issued on a Tuesday or a Thursday, there is a
     twenty-one   percent  probability  that  the  verbose  option's
     trashing  of the /ho_hum/what_the_hell_happened system log will
     be incomplete, leaving the last three lines intact.

     The n option can be slow.

     There  is  no  way  selectively to follow symbolic links.  Then
     again,  there  never is,  really, so I don't know why we bother
     mentioning it.

     If  you  enter  more than sixty-three characters for the notify
     message,  your console screen will explode and pepper your face
     with nasty little glass splinters.

     -----
     Sunburne Computer, Inc. 9 October 1991

exorcise

EXORCISE(1)               USER COMMANDS                  EXORCISE(1)
PENIX            OPERATING SYSTEM DOCUMENTATION                PENIX


NAME

     exorcise - remove unwanted background tasks


SYNOPSIS

     exorcise [ - ] acdegilmnorsmCMRZ


DESCRIPTION

     Exorcise  is  a  more  thorough and powerful version of kill; it
     will automatically generate  a list of all processes running and
     terminate  them.   It  also  closes their files, disconnects any
     network  links  they  may  have  open  and,  if  the  process is
     connected to a terminal,  it  will display a friendly message to
     say that the process is about to be terminated.  This process is
     a  Caenobite;  once finished, it removes  itself (sometimes) and
     thus  is  the only  example of a Caenobite task being capable of
     being removed from the system.


FUNCTIONS

     a    All.  Remove   ALL  processes,  whether  they  be  daemons,
          goelems, maenads, dummies,  ydyots, bananas, vegetables, or
          even  caenobites.   This  option will terminate the process
          which  is  calling  it,  and  even  the  process  doing the
          termination, so use it cautiously.

     c    Caenobites.  Will attempt to distract any currently-running
          caenobite  processes  by creating a BOX process and sending
          it  a  BOX_OPEN  packet.  This will cause the BOX to open a
          temporary  file in /usr/leviathan/labyrinth, attracting the
          attention of any caenobite  processes on the system.  Since
          there  isn't  any  actual  way  of  terminating a caenobite
          process, keeping them busy is the best we can do.

     d    Terminate daemons only.

     e    Enema  option.  Once  the  killed process has been deleted,
          the  disk-space  allocated  to its process control block is
          flushed,  filled with hexadecimal FFs and then emptied down
          /dev/ttybowl.

     g    Terminate goelem processes only.

     i    Insipid  option.  This  is  a kind of filter that will only
          terminate  weak  processes,  the  ones  that  don't  really
          deserve to survive or won't affect the system's performance
          significantly.    Very   Darwinian,  really.    Handy   for
          terminating finished Goelems and lost sprites.

     l    Lost  processes.  This  checks  the  addresses of each task
          against  their Loc_IDs in their Process Control Blocks.  If
          they differ significantly,  the process is considered to be
          lost and  is terminated,  excepting,  of course,  Caenobite
          tasks, which generally do what they like.

     m    Terminate maenad processes only.

     n    Notify.   Sends  a `oops' packet to the task before killing
          it.

     o    Terminate Ogre processes only.

     r    Rooted exclusion option.  This will terminate any processes
          not associated with the rooted(c) console.

     s    Terminate sprite processes only.

     v    Verbose option.  Will send regular messages to the console,
          reporting  progress in removing tasks, up to the point that
          the task removes itself.

     C    Clever  option.  Attempts to find illegaly-hidden processes
          by  going  through  the  entire  system  disk,  looking for
          anything that  might be a hidden  process control block but
          isn't  in  the  task-table.  The  exorcise  caenobite  then
          cleverly  replaces   the  PCB  with  a  replica,  the  only
          difference  being  that  the task_timeout field is set to 1
          second,  thus terminating the task almost immediately; if a
          SerIOus  line  is  attached  to the task, a message is sent
          down  it,  saying  `Think  you're  pretty smart, don't you?
          nyah!'

     M    Microcephalic option.   Will remove any tasks whose process
          control block is less than 2K in length.

     N    Terminate Nyemph processes only.

     R    Really  Smart  option.  Will attempt to terminate specified
          tasks by creating 1024 localised LNC  (Logical Nipple Clip)
          worm-processes.   These mini-processes, ordinarily used for
          kick-starting  lost   Spank_IO   blocks   between   network
          machines,  will  run through  all available filesystems and
          all active, allocated and unallocated memory, searching for
          ANYTHING that even looks like it might even want to pretend
          to be executeable code.  The LNC reports the address of the
          code to the Pinhead Caenobite process, who then proceeds to
          write Zeroes over the specified address,  within a range of
          64K  on  either  side  of  it,  just  to be sure.   This is
          generally   regarded   as   a   kind  of  Mutually-Assured-
          Destruction  sort  of option,  not to be used while showing
          off to your girl- or boy-friend.

     Z    Zorch   option.    This   doesn't  actually  terminate  the
          specified  process,  but  instead  insults it by passing it
          message packets of a dubious nature.


EXAMPLES

      to exorcise background processes:

          exorcise -degnC

      This will terminate any existing daemons,  goelems and nyemphs,
      flushing  their  PCBs  down the ttybowl and will then conduct a
      `Clever' search for illegal PCBs.


FILES

     /uselss/der/zorcho             Contains  insult packets  for  use in
                                    the Zorch option.

     /uselss/der/greeting_card      Contains   a   selection   of  `oops'
                                    packets  which  can  be sent to dying
                                    processes as a form of consolation.

     /typical/who's_where           Table  which relates active processes
                                    to serIOus lines.   referred  to when
                                    trying to identify legal processes.

     /usr/leviathan/labyrinth       This is where the caenobite processes
                                    hang  out,  and  is  considered  off-
                                    limits    to    everyone,   sysadmins
                                    included.   Any  process  who wanders
                                    into here will be very sorry indeed.


SEE ALSO

     bollx(1), crp(2), flrump(3), argle_bargle(3), ni(1), woof(5),
     bwip_init(2), kill(3), mangle(2), assassinate(6), garrote(2),
     castrate(2), kick_them_in_the_balls(1), tickle(4), knacker(1)


BUGS

     Exorcise  cannot  touch  LNC worms,  as these tasks are actually
     managed by the co-processors  that operate the SerIOus lines and
     have  very  little  to do with the CPUs that run the rest of the
     system.

     The  BOX  process  created  with  the  c  option  is, in fact, a
     caenobite  process,   which  has   the  undesirable   effect  of
     increasing  the  number  of  caenobite  tasks  by two,  when the
     general idea is to reduce them.

     The  n  option  can  be  slower  than a wet week of sundays, and
     generally is.

     If the e (enema)  and C (clever) options are specified together,
     the  result  is  invariably  similar  to  that of formatting the
     system disk.  We've never been game enough to specify e, C and R
     all at the same time.  If anyone out there has tried it, we'd be
     grateful if you could send us mail to tell us what happened.

     There is still  no  way to follow  symbolic links. Selectively,
     that is.  We are working on it, though.

     Really.  You do believe us, don't you?

     -----
     Sunburne Computer, Inc. 25 March 1992

filesystem

The Penix Filesystems

or:

Everything  You'd Always  Suspected About The Development
Team Was True

or:

Device Drivers? We doan need no steenkin' device drivers!

`I really have a secret satisfaction  in being considered
rather mad.'

- William Heath Robinson


look, it's NOT THAT COMPLICATED, okay? it might seem that
way at first,  but that's just a natural result of having
to cater for dozens of  different hardware  platforms and
hundreds of different  devices.  we've had enquiries from
people  asking  `how can i connect this  Seagate  Shoebox
10-meg  hard  drive  to my  machine  with a  Kellogs  MFM
controller and get it working under Penix?' or `how can i
connect my cat to my SparcStation  using BIG RED STRAPS?'
or `i've got my finger  stuck in the floppy  drive and is
there a Penix command to release it?'

honestly,  some of you  people mustn't  have both oars in
the water.

Penix is very  smart when it comes to alien hardware.  it
simply formats itself  over the top of whatever was there
and installs  itself.  we use the way-cool,  cutting edge
procedure of evolutionary software  to do this.  it works
thusly:

     i) you whack the  hardware  in the  machine and make
        sure the power cables are all connected;

     ii) you turn the machine on,  making  sure you stand
        well back from it in case it explodes in your
        face;

     iii) assuming that Penix  boots without  mishap, run
        /thingies/voyeur.

this  program   (which  was  developed   using   exciting
fractal/cellular automata  procedures  rather  than  that
boring old  `sitting down,  drawing flow-charts,  coding,
compiling and debugging'  method) can sense what's inside
your  machine  simply  by  examining  every  address  and
interrupt available to it, every peripheral and hook into
the  memory-space.  it knows  from  experience  that  RAM
reacts differently to W OM  (write-only memory,  and yes,
there  is such  a thing.  the C-64 used to have it in its
custom  sound  chips,  so there) and  to ROM  and  actual
walking,  talking,  farting devices.  once  `voyeur'  has
identified a potential device, it checks against

     /useless/closet

to see  if it has any  record  of it (the format of  this
file is quite simple; each line stands for an address and
has the words `RAM',  `WOM',  `ROM',  `FOM'  or  `DEVICE'
after  the binary  representation of the address it's at.
this might  sound inefficient  as far as disk space goes.
yes).  having  located   a  new   device,  `voyeur'  then
proceeds to throw random strings of characters into it
while monitoring the surrounding 64 kilobytes around  it,
in the hope that one of these addresses will be returning
some kind of  status or  error message,  or even if we're
really lucky, data.

this all sounds terribly hit-and-miss, but believe us, it
works. eventually. having a really fast machine helps.

as soon as  `voyeur'  has established the command set for
this new device, whether it be SCSI tape drive, joystick,
mutant     bastard     sound-card,     VR     suit     or
digitally-controlled   Schmeisser   sub-machine-gun,   it
passes   this   data   onto   a   goelem   task    called
WHELAN_THE_WRECKER, which  then  formats the  device  and
installs  the  standard  territorial  byte-markers  which
identify the device as being part of the Penix filesystem
-hexadecimal  50,  45,  4E,  49,  and 58,  repeated  four
kilobytes apart  (the  OS  usually  writes  around  these
markers).  the device is  then  used for  storage  space,
added  seamlessly  and invisibly-to-the-user to the space
currently  available.  you might be surprised,  but we've
had reports  of  people  sucessfully storing all kinds of
data on all kinds of devices under Penix; one corporation
had all of its financial  records for 1995  stored in the
S-registers  of an internal modem  although we would like
to make it clear that the Penix Development team does NOT
condone,   under  any   circumstances,   the  concept  of
connecting  native  wildlife  to IDE adaptor cards in the
hope that they can be used to store data.

party

PARTY(1)                     USER COMMANDS                  PARTY(1)
PENIX                OPERATING SYSTEM DOCUMENTATION            PENIX


NAME

     party - set OS responses mode


SYNOPSIS

     party ON|OFF|WHEREIS [ - ] dnv


DESCRIPTION

     Operating  systems  being  what they are,  the admin people can
     easily  grow tired of  command responses that resemble dyslexic
     eugene-speak   filtered   through   Kernighan   and   Ritchie's
     collective  back-brains.  To alleviate this, we have included a
     slightly  more  `casual'  mode,  in  which the responses to all
     commands  are  first filtered  through  a  customising  routine
     (DUDE),  which  makes them  sound a little more  friendly while
     retaining  their  full  information   content  (usually).   The
     rooted(c)  system prompt is  changed to  `What now,  dude?' and
     output from each command is terminated by `No problem, dude.'


OPTIONS

     v        Verbose mode  (ALL  Penix  commands  have  a `verbose'
              mode).  When  this  option  is  present,  all filtered
              responses are  preceeded  by a message: `This response
              has been parsed by the DUDE filter and is not intended
              to be some sort of sleazy come-on.'

     d        Don't  restart  all  processes  after  recompiling the
              /uselss/libs/eugene file (see below).   This alows any
              important tasks to complete beforehand.

     n        Notify  all  users  that  they  are about to be force-
              logged out and force-logged in again.

     ON       Activates the DUDE filter.

     OFF      De-activates the DUDE filter.

     WHEREIS  Doesn't do anything, but we couldn't resist it.


EXAMPLES

             %-)  party on

 What now, dude?

 To compare  the differing responses, here is output provided by the
 ispi -s command, with party OFF and party ON:

party OFF

  line     who       why                        how long   killable
  ==================================================================
  000      rooted    that's you, dweeb!         epoch      no
  ------------------------------------------------------------------
  00F      wp        she's supposed to be       0:44:12    eminently
                     typing up the end of
                     financial year report,
                     but she's been doing her
                     resume when she thinks
                     no-one's watching.
  ------------------------------------------------------------------
  014      maint     playing games, as usual    0:51:16    only just


party ON

 Well,  let's see who's on, eh?  There's you, of course, on line 000
 (Imagine that!  Hahaha!)  Oh look,  on serIOus line 00F,  it's that
 cute little secretary - looks like she's lost her keyboard template
 again, she's been hitting the escape key for the past five minutes!
 AND  OF  COURSE, the  guys  down in maintenance are playing `cosmic
 ballcrushers'.   As  usual.   Well,  who  else,  um,  no-one really
 interesting like,  ya know, oh hang on,  DTR is toggling on serIOus
 line 03D.. oh, no problem, it's that stuffed modem again.  You want
 maybe I should send  some AMail to maintenance  and get 'em to look
 at it?   No problem, dude.

 What now, dude?


FILES

     /uselss/libs/bill&ted/DUDE         This  is  the pipe process,  usually
                                        started  at system shoe,  which lies
                                        idle until party ON is issued.

     /uselss/libs/eugene                Contains all of the ordinary, ho-hum
                                        confusing   computer   -   jargonese
                                        responses  which commands ordinarily
                                        issue.  Text file.

     /uselss/libs/eugene.spoo           compiled version of the eugene file.

     /uselss/libs/bill&ted/lexicon      Like the eugene file, this is a text
                                        file  containing  all responses from
                                        ordinary  commands.  It replaces the
                                        eugene  file   when  `party  ON'  is
                                        issued,  and  causes   an   OI_MOOSH
                                        message   to   be   issued   to  the
                                        WHATS_ALL_THIS_THEN   daemon,  which
                                        then  freezes  all  currently active
                                        tasks,  recompiles  the  eugene file
                                        and  restarts  all serIOus processes
                                        with  output  directed  through  the
                                        DUDE filter.

     /ephemeral/eugene.chex             Checksum  for  the  compiled  eugene
                                        file.


SEE ALSO

     crp(1), stuffio(2), doobrie(9), gouge (3), ftang(65534),
     wi(-1), edmond(29), jumpstart(2), vo_mit(992)


BUGS

     The n option can be slow.

     If  the n option is issued,  some users in a wi editing session
     may not  receive the  `warning, restart imminent' message until
     after the restart.

     There is no way selectively to follow symbolic links.

     If   you  alter   the  /uselss/libs/bill&ted/lexicon  file  and
     manually  compile  it  with  the vo_mit recursed text compiler,
     the checksum which is ordinarily  output  to /uselss/der/ttbowl
     should be  retrieved and appended to /ho_hum/eugene.chex.  This
     does  not happen automatically,  and is expected to be fixed at
     the next revision of the operating system (snicker).

     -----
     Sunburne Computer, Inc. 9 October 1991

Pong

PONG(1)         MISCELLANEOUS NETWORK SUPPORT COMMANDS       PONG(1)
PENIX               OPERATING SYSTEM DOCUMENTATION             PENIX


NAME

     pong - net-broadcast restart message


SYNOPSIS

     pong [ - ] adnpv [ count ] [ delay ] [ path ]


DESCRIPTION

     Pong  broadcasts  a  general  `Hey, I'm here!'  message to any
     other machines on the network.   The  exact  contents  of  the
     message packet depend on  whether the machine in question is a
     Dom_Master  or  a  Sub_Server.  Pong waits for acknowledgement
     from, by default, one machine; it can be specified to wait for
     responses from up to 255 machines before resuming.  Which is a
     pretty  pointless feature  when you think about it, but it was
     piss-easy to implement, so we did.


FUNCTION LETTERS

     a    acknowledge-count.  If not specified, this defaults to one.
          It  can  be  set to zero,  in case  the machine is not on a
          network...  but  if the machine  isn't  on a network,  then
          there really isn't any point in PONGing in the first place,
          is there?   The upper limit is 255, which is also the limit
          of Dom/Sub relationships  allowed for any single Net_Clique
          of machines.

     d    Delay.  If specified, the machine will wait for this number
          of  ticks before  returning a -1 errorcode and exiting.  If
          not specified,  the  machine  will wait until it receives a
          response from another machine,  unto  eternity (or the next
          reset).

     n    Notify.  This  notifies the users that a Pong has just been
          issued.  If any  of  them  are  logged  in as the rooted(c)
          user, they may receive responses from other machines,  such
          as  `Phwooaaaaar!',  `Who did THAT?', `Jesus, that STINKS!'
          and (most frequently) `Ahhhh, SHADDUP!'

     p    Specify  alternate  packet.  Generally,  the packet sent by
          pong is determined by  the machine's Net-status (either Dom
          or Sub);  mild  variations are available, but on no account
          should a Sub_Server  attempt  to issue a Dom_Master packet,
          because  it  makes  the  actual  Dom feel inadequate.  This
          option requires  the specification of a file which contains
          the alternate packet to use.

     v    Verbose  mode.   If this option is absent,  you will see no
          response  to  the  command after execution.  Otherwise, the
          machine  will  echo  its  pong-text  on the console and any
          responses  to  it  from  other  machines,  along with their
          net-addresses.


EXAMPLES

      To  send  an  alternate packet structure, display responses and
      resume after four responses have been detected:

         pong apv 4 /uselss/all_kindsa_stuff/pongpacket2

      PONGing net:

      [  sub:harry_as_a_boy>>Galoot_Cologne     03F21AC4E2D1  ]
      [                                                       ]
      [  hi there, this is sub:harry_as_a_boy>>Galoot_Cologne,]
      [  i was down for an hour there because my operators    ]
      [  wanted to try out the cfts command, but i'm back     ]
      [  up now!  did anyone miss me?  :->                    ]
      [                                                       ]

      waiting for reponses:

      *** from sub:kanttner>>jefferson:
      [  go away harry you smelly little nonentity ]

      *** from dom:slick>>jefferson:
      [  piss off. ]

      *** from sub:Mammy_Nun>>galoot_cologne:
      [  we heard you de FIRSE time, okay? ]

      *** from dom:rhonda>>galoot_cologne:
      [  HARRYYYY, you are nothing but a WORRRRRRRRRRRRM! ]


FILES

     /uselss/all_kindsa_stuff       Repository for alternate message
                                    packets.  The default is called
                                    `default'.

     /uselss/little_black_book      Current LBB network list, containing
                                    binary addresses of the other members
                                    of the Clique.  Note: this file can
                                    only be updated by the Clique's Dom.
                                    This also contains the addresses of
                                    any other Cliques on the network.


SEE ALSO

     bollx(1), stuffio(2), doobrie(9), brap(12), yoohoo(2),
     LBB_lookup(1), cftn(2) LBB_init(3), LBB_re_init(1), LBB_kick(1)


BUGS

     If there are no entries in /uselss/little_black_book,  or if the
     machine is not part of a Dom/Sub network (i.e. stand-alone), the
     command will  enter a tight recursive loop,  gradually consuming
     more and more CPU time until  the system either stops completely
     or  until one  of  the  caenobite  processes  gets  annoyed  and
     terminates   it.   This  can  be  dangerous,  as  the  caenobite
     processes are none too  discriminating  and  may take out one or
     two other processes along the way.  They seem to have a fondness
     for  anything  running on the system console, like the rooted(c)
     session.

     The n option can be slow.

     If  there  are  Dom-ID  packets in  the /uselss/all_kindsa_stuff
     directory of a Sub machine,  there are no mechanisms in place to
     ensure  that  the  operator  does  not  PONG  the net with a Dom
     packet.  This will upset the carefully-orchestrated hierarchy of
     the net,  causing  the  Subs to have to choose between two Doms.
     As soon as  the  Subs see a Dom-ID packet  from a machine,  they
     assume that it IS a Dom, and a moebius-hoffstaedter loop arising
     from a Sub trying  to satisfy conflicting requests from two Doms
     becomes a possibility.   This can bring down the entire net, and
     thus should be avoided,  unless the net needs to be brought down
     quickly, in which case refer to cftn(2).

     There  is  still  no  way  selectively to follow symbolic links.
     And to be brutally honest, we  don't  think there will be in the
     immediate future.

     -----
     Sunburne Computer, Inc. 9 October 1991

rcatpar

RCATPAR(1)                 USER COMMANDS                   RCATPAR(1)
PENIX             OPERATING SYSTEM DOCUMENTATION                PENIX


NAME

     rcatpar - randomly change all the passwords at random


SYNOPSIS

     rcatpar [ - ] bsv [ bitmask] [ seed ]


DESCRIPTION

     rcatpar  starts  a  high-priority  task  which makes a temporary
     work-copy of /uselss/passwords and then proceeds to generate new
     passwords for every account except rooted(c), which (as everyone
     knows)  doesn't  have  a  password.  When  this process has been
     completed  successfully,  a  second  task  erases  the  original
     /uselss/passwords  and  replaces  it  with  the  work-copy, thus
     ensuring that the passwords hacked by those rabid net-heads last
     week are no longer of any use.  rooted(c) access is required for
     this  function;  if  it  is  issued  from  any other account,  a
     questionnaire  will be generated  to establish if the account is
     allowed to use this function.


FUNCTIONS

     v    Verbose  mode.   If this function is included, messages are
          sent to every account that is currently logged in,  stating
          that  their password has just been changed,  and could they
          please amail the rooted(c) operator to find out what it is?
          AMail is sent to the accounts that are not logged in, and a
          large  banner  page  (outlined  in percent signs) is tacked
          onto the  end of  /uselss/now_hear_this_you_scum (the login
          message), stating:

                   PASSWORDS HAVE ALL BEEN ALTERED
                CHECK WITH YOUR SYSTEM ADMINISTRATOR
               UNLESS YOU ARE A HACKER, IN WHICH CASE
                  PLEASE REFER TO /USELSS/PASSWORDS

          This is actually a clever ruse; the next two processes that
          access  /uselss/passwords  have their locations recorded in
          /uselss/potential_hackers and  have  their   serIOus  lines
          altered  to  the  next  higher  baud  rate (unless they are
          running at 1200 baud, the  highest  speed  at which serIOus
          lines operate,  in which case  the line will be reset to 55
          baud).   This means  that  to avoid  confusion,  do not use
          rcatpar more than once in any five-minute period, otherwise
          the  process that does the  recording  will spot the second
          invocation of rcatpar, see it as a hacker, and when it goes
          to  alter the baud  rate of a daemon process, will hang the
          system.

     s    seed [argument].   This  is  the  seed  for the randomising
          process.   The exact  algorithm is to take the seed number,
          multiply it by the mumber of live serIOus sessions,  divide
          it  by  the number of  caenobite tasks  currently  running,
          multiply  it by  the system  clock's  current tick counter,
          take the integer square  root and then add the the birthday
          of the second  name in the /uselss/passwords file.  If this
          number is greater than 255, the system will hang unless the
          bitmask option is used.

     b    bitmask [argument].  Will  perform  a  logical  OR with the
          result of  the seed-generation process,  to ensure the seed
          result is not greater than 255.   The bitmask should be FF;
          if you specify a number greater than that, you run the risk
          of having a seed result larger than 255.


EXAMPLES

     to Randomly Change All The Passwords At Random:

          %-) rcatpar vs 23


FILES

     /uselss/passwords                system   password  file.    It  has
                                      passwords in it.

     /ephemeral/fred                  temporary   working  copy   of  the
                                      above.

     /ephemeral/da-da-da-dom          error  codes  returned by the first
                                      process  (the  one  that  makes the
                                      copy)

     /ephemeral/dom-da-dom-dom        error codes  returned by the second
                                      process (the one that generates the
                                      new passwords)

     /ephemeral/da_doo_ron_ron        error codes returned by the process
                                      which monitors  the  password  file
                                      for   hacker  activity   after  the
                                      change

     /ephemeral/rcatpar_flags         a  flag-file  created  by the first
                                      process  and deleted by the second,
                                      as  a  test  to   ensure  that  the
                                      process was completed successfully.

     /uselss/now_hear_this_you_scum   system login message. this is shown
                                      on every serIOus line at login, and
                                      appended  to  every print job (just
                                      in  case  they missed it the  first
                                      time).


SEE ALSO

     crp(1), bollx(1), , rofl(2), swop(2), stuffio(2), flrump(3),
     doobrie(9), brap(12), Init_the_serIOus_lines_again(1)


BUGS

     There is no way selectively to follow symbolic links.

     On Saturdays that coincide with the rising of the full moon, the
     seed argument should  NEVER be a prime number, or strange things
     happen  to  the system printer.   If  your system doesn't have a
     system printer, garbage files will accumulate in /drooler/system
     until the filesystem is full.

     the n option,  if we had included it, would be slow; but as this
     function  has been  subsumed  into  the v option,  we can safely
     ignore it.

     the v option can be slow.

     -----
     Sunburne Computer, Inc. 19 October 1991

sssl

SSSL(1)                     USER COMMANDS                    SSSL(1)
PENIX                OPERATING SYSTEM DOCUMENTATION            PENIX


NAME

     sssl - suddenly swap serial lines


SYNOPSIS

     sssl [ - ] jnNprvV [address] [ secs ] [ reason ]


DESCRIPTION

     sssl starts a  MAENAD  process which reads /typical/who's_where
     to locate the GOELEM process  that  controls your line;  if the
     `V' option is set, it also looks up the address specified as an
     argument,  and locates  the GOELEM process associated with that
     line;  both processes are identified in the  /typical/who's_who
     task  list,  and their  process control blocks  are  exchanged,
     resulting in you suddenly getting the other user's serial line,
     and them receiving yours.   This is useful if you are logged in
     as  the  rooted  user  and you have  just  done  something very
     stupid, as it lets you  continue  using the system even if your
     line is about to be terminated or locked up.   It's also a neat
     way  of  passing obscene messages; this can be done by creating
     and executing the following batch file:

         sssl -pV 00A 20
         output from /uselss/rooted/private/rudetext.s
         doabsolutelynothingfor secs 20
         killsession -i


FUNCTION LETTERS

     j    Justify.  This allows you  to  send a personalised message
          to the owner of the line you are about to steal.   It  can
          be  something  along  the lines of  "excuse me,  i've just
          annoyed  a  caenobite process  and  it's  going to kill my
          line,  so  i  need  to  borrow yours, thanks", but is more
          often than not something like "ha ha you luckless dud, i'm
          going  to  grab your line,  change  your password and then
          send  everyone  obscene  AMail using your id".  The reason
          specified should be enclosed in double-quotes; if you need
          to put  a  double-quote in the text,  please call Sunburne
          System Development  and enquire about the minimal costs of
          having your system Walnut re-written.

     n    Notify.  If this option is present, a message will be sent
          to  the eventual  victim  (or  person whose  line you will
          steal),informing them that their terminal is about to have
          its line sssl-ed.  Rather than going to all the trouble of
          writing  more  string-parsing code into this function,  we
          took  the  easy  way  out;   the  message  is  taken  from
          /uselss/der/sssl-message.

     N    NoKillTempFile.   This option tells the MAENAD process not
          to delete the /ephemeral/temp_list file which contains the
          names  and  addresses  of  potential victims  which is put
          together for use  by  the r option.  If ispi isn't working
          that day,  you can use sssl to compose a list of who is on
          the system at the time by sssl-ing your line with your own
          line,   specifying  the  NoKillTempFile  option  and  then
          examining the /ephemeral/temp_list file.

     p    Pause.   Will  wait the specified number of seconds before
          performing the swap.

     r    Random.   When this option is present,  the MAENAD process
          composes  a  list  of  possible  victims,  selects  one at
          random and swaps your line with that one.

     v    Verbose  mode.   This  option  informs  the MAENAD process
          that  it should pipe all diagnostic information concerning
          the swap to your screen, including the rather lengthy seed
          generation  output  associated  with  generating  a random
          number if the r option is specified.   When present,  this
          gives  you  approximately  five  milliseconds  to  see the
          address  of  the line you are about to receive in exchange
          for yours  (which isn't really necessary, as once you have
          the new line  you can use  ispi -s to establish where your
          process is).

      V   Vindictive  mode.   This  requires  the  nomination  of  a
          particular  serIOus  address,  and will exchange your line
          with this one.


EXAMPLES

      to Suddenly Swap Serial Lines:


          sssl -jnvV 00F "Why? Why you ask?  Because  i'm bored."

      this will  notify the user of the swap,  will  also  send them
      your justification for doing it,  and will then swap your line
      with serIOus line 00F.


FILES

     /typical/who's_where           table which relates active processes
                                    to serIOus lines

     /typical/who's_who             table which relates active processes
                                    to the GOELEM process  which handles
                                    all the low-level I/O processing.

     /uselss/der/sssl-message       default  `politeness' message  which
                                    is sent to the victim.

     /ephemeral/temp_list           temporary file consisting  of  names
                                    and  serIOus  addresses of potential
                                    victims.


SEE ALSO

     aark(2), bollx(1), stuffio(2), crp(2), flrump(3), doobrie(9),
     brap(12), argle_bargle(3), ni(1), bwip_init(2), LBB_kick(1)


BUGS

     sssl will  only  take  a  line if it already has an active user
     connected to it and that user is not logged  in  as rooted (the
     exception  being your own line;  it is  perfectly valid to sssl
     with your own line).  If everyone on the system is logged in as
     rooted  (or if there is only one  user logged in),  the  MAENAD
     process will loop,  looking for a non-rooted process to steal a
     line  from;  it  will remain in this loopy state  until someone
     other than rooted logs in.

     The n option can be slow.  Slower than usual, in fact.

     Instead of issuing any warnings, pausing and then effecting the
     exchange,  the  Pause  option  waits  the  number  of specified
     seconds,  THEN  issues any warning messages and instantaneously
     swaps  the  lines.  This may confuse users who do not pay close
     attention to what is happening on their screens at all times.

     If you sssl  with another user who was in a wi editing session,
     you may see a few `noise' characters on your screen  before the
     `wi_not'  MAENAD associated  with  the  other user's wi session
     dies  (when we say  `a few',  we mean no more than  about fifty
     kilobytes or so).

     There is still no selective way to symbolic-link follow.

     -----
     Sunburne Computer, Inc. 6 November 1991

victimise

VICTIMISE(1)              USER COMMANDS                  VICTIMISE(1)
PENIX            OPERATING SYSTEM DOCUMENTATION                 PENIX


NAME

     victimise - optimise system performance


SYNOPSIS

     victimse [ - ] adejrstyDS [percentage] [time] [count]
                               [processid]


DESCRIPTION

     victimise is a  last-ditch performance optimiser; if there is a
     task that requires  priority  performance,  this command can be
     used  to  temporarily increase  cpu  usage  and  speed  of disk
     access,  by  degrading the performance of an other user, or  of
     all other users.   It can also be used for purposes of revenge,
     or as a joke,  or to mess with the minds of the users  (`wierd,
     the system was running great a few minutes ago...'  `well, it's
     okay over here...'  `hang on, it's running again...').  As this
     is a potentially powerful command, its use is restricted to the
     rooted(c)  user  and  the  `games' account.  The options can be
     grouped into two sorts:  those that act on a single other user,
     and those that act on a number of other users, in an attempt to
     spread the load.


FUNCTIONS

     a    anyone.   This  option  will  select  one other currently-
          running process and degrade its performance, to the degree
          specified  in  the [percentage] argument.   The process is
          selected completely at random, and may include the account
          that is issuing the command.

     d    darwinian (single-process mode).   This option selects the
          one other task  on  the system that is  least likely to be
          affected by  a  serious performance decrease, and does so.
          By an algorithm far too arcane  to  go into in the context
          of a simple MAN page,  it also chooses the process that is
          least likely to be able to hit back, such as anyone logged
          in under the  `games'  account, anyone running a compiler,
          or  anyone  who  presses the `help' key  on their terminal
          more than once every ten minutes.

     e    everyone.   This option  de-optimises  every other process
          currently  running,  to  the  sum  effect specified in the
          [percentage]  argument.    Each  process,   regardless  of
          origin,  is  decreased  equally  (excepting  the Caenobite
          processes,  of course.   We tried hitting them.   But they
          hit back harder.)

     j    jump.  This option creates  a  table of likely victims and
          then proceeds to hit each one, successively and at random,
          degrading  the   selected  process  for  the  full  effect
          specified  in  [percentage],  for  the  time  specified in
          [time].

     r    rotation.   This option  is  similar to the `jump' option,
          but  the processes are  hit in turn rather than at random,
          for the period specified in [time].

     s    specific.  This option  selects  the  process specified in
          [processid] for the full effect of de-optimisation, and is
          included for purposes of revenge only.

     t    temporary.  When included,  this option specifies that the
          optimisation  effect  should  only  last  for  the  next n
          commands,  as  specified  in the  [count] argument,  after
          which performance will return to normal.

     y    yourself.   This option  reduces your own performance,  to
          the benefit of  all the other users on the system.   It is
          regularly included  in  the  .DoThisBefore  file  of  most
          users.

     D    darwinian (multiple process mode). As specified in the `d'
          option,  except  for  more  than one user,  the load being
          spread over  the  selected tasks  Darwinian-ly,  i.e.  the
          weakest tasks  copping the most load.   This  option  does
          tend to stop some tasks completely until it is finished.

     S    Statistical.   This option  seeks  the  process  using the
          least  resources  and  de-optimises  it to the full effect
          specified in [percentage].


EXAMPLES

      to optimise the system:

          victimise -rt 70 5 2

      this will degrade  all of the other  processes  on the system,
      to the tune of  70% of their performance,  one after the other
      at  five-second intervals,  for the duration of the running of
      the next two commands issued  to  the process  performing  the
      command.


FILES

     /typical/who's_who               System  task table;  used  by  the
                                      aengel Lucifer  when compiling the
                                      hit-list  table  for the `e', `j',
                                      `r' and `D' options.

     /uselss/helpcount                Counts  the  number  of times each
                                      user   presses   the  `help'  key,
                                      expressed  as  Hits  Per Every Ten
                                      Minutes.  This count is maintained
                                      as  part  of  the  regular  system
                                      housekeeping.

     /uselss/spew_bucket              All   mail   to  the  Sysadmin  is
                                      directed   into   this  while  the
                                      victimise command is in use, since
                                      they  are  invariably  flames of a
                                      highly  derogatory   and  personal
                                      nature.   It  saves  the Sysadmins
                                      doing it themselves.


SEE ALSO

     bollx(1), crp(2), argle_bargle(3), roflgo(4), woof(5),
     kill(3), mangle(2), castrate(2), knacker(1), beg(2), plead(3),
     threaten_with_extreme_violence(1), submit(2).


BUGS

     If the `temporary' flag is used, any daemons, maenads, goelems,
     etc.,  spawned while the optimisation is in effect  will retain
     this  `blessed'  state until  they die of their own accord,  or
     until the Sysadmin does something about it.

     The n option would be slow, but this function doesn't have one.

     Due to a bug  in  the randomisation  algorithm, it is possible,
     when using the  `jump'  option,  that  the  same  task  may  be
     selected  for  de-optimisation  twenty-three  successive times.
     this is expected to be  rectified at  the next revision  of the
     operating system.   No, really.  Leo Schwab is going to write a
     good randomiser for us.

     The e option can be slow.

     The `multiple Darwinian' function can completely stop some less
     important  tasks,  but  it  does  seem to have a preference for
     anyone  using  the  `wi'  editor,  with  the result that screen
     updates can be so slow as to be nonexistant.

     There is  no way to follow,  selectively,  symbolic links.  And
     unless there's a turnaround in the economy soon, there probably
     won't be.

     -----
     Sunburne Computer, Inc. 17 August 1992

wi

WI(1)                        USER COMMANDS                     WI(1)
PENIX                OPERATING SYSTEM DOCUMENTATION            PENIX

NAME
     wi - whatyouseeisprettypathetic interactiveEditor

SYNOPSIS
     wi [ - ] fmnpuvy [ arg1 arg2 argh fname fname fname fname... ]

DESCRIPTION

     It is said that  you can tell an operating system by the editor
     that is  bundled with it.   That  certainly  goes a long way to
     explaining   Penix.   wi  is  a  multitasking,   multi-windowed
     character-based  editor  that  also  doubles  as a backup print
     scheduler  for  the drooler subsystem and  triples as an online
     news service (see the verbose option).

OPTIONS

     f        Set  flag.   If  this  option  is  present,  then arg2
              indicates the total  number of flags  that you wish to
              set.   The flags must be specified after the filenames
              and must be preceeded by a colon (see examples).

     m        Munge.    This   must   be  used  ONLY  with  multiple
              filenames, and causes the contents of multiple windows
              to be appended  to the same temporary file if multiple
              files  are created without filenames and the sefm flag
              is set.

     n        Notify all descendant daemons,  aengels,  maenads  and
              goelems that  you are in a wi editing session and that
              they   should  not  disturb  you  unless  it's  really
              important.

     p        Disable print-scheduler-swapping.  This option assures
              that  your  wi  session  will  not  be  interrupted by
              messages   from  the  wi_not  maenad   process   which
              accompanies  the  drooler-emulation  mode.   It  is  a
              toggle;  within wi, you can re-enable print-scheduler-
              swapping    from   the   command   prompt   with   the
              SETENVIRONMENTFLAGSPLEASE command.

     u        Use a  different keymap than the system default.  This
              allows  the  user  to enter wi from  a wide variety of
              terminals,   and  more  importantly,   to  exit  again
              afterwards.   If this option is present,  the path for
              the  new  keymap  is taken from arg2.  If absent,  the
              default  /typical/keymaps/keymaps/keymaps/keymaps/spo0
              is used.

     v        Verbose mode.  When enabled, wi will open four windows
              on the screen,  column-wise,  displaying ascii text in
              the first, hexadecimal in the second, RTF codes in the
              third  and any spurious messges from the outside world
              in the fourth.   As these messages are often deflected
              by the RALF lexical fluff filter, or occasionally lost
              by the gettyStuffed LZH message compacter, the verbose
              mode can be a  useful way of  finding out what's going
              on.

     y        Yoo-nique  option.   If  multiple  windows  are opened
              without  specified  filenames,  the wi_not maenad will
              attempt to generate names for the files using the same
              algorithm as used by rcatpar to generate new passwords
              (see RCATPAR).

     arg1     The number of files which are to be edited, minus one.
              This also controls the number of windows which will be
              opened;  the windows are tiled so that each window has
              an equal amount of screen space when opened.

     argh     This  is  a  dummy  argument  which  acts  as a buffer
              between the numeric arguments and the filenames.

COMMANDS

     Once in wi, you will be in curser mode, as denoted by the words
     INSERT-MODE -*-OFF-*- in flashing,  reversed  characters across
     the top of the screen  (this flashing, and the blinking of your
     cursor,  is  handled  by   the  wi_not  maenad process which is
     started with your wi session).   You can move the cursor around
     the screen with the following keys:

       up: f        previous word: q         page top: enter
     down: p            next word: f7     page bottom: ctrl-z
     left: y   previous paragraph: esc       file top: alt-k
    right: /       next paragraph: tab    file bottom: ctrl-alt-del
   delete: r      over-write mode: #             beep: ctrl-G

     Insert  mode  is  entered by holding down the `i' key until the
     terminal's  keyboard  buffer overflows and it begins to beep at
     you.   When  this  happens,  the system aengel-process `Goliad'
     receives  an  interrupt  from  the serIOus controller that your
     teminal is connected to;  `Goliad' looks your process up in the
     system  task  table,  /typical/who's_who,  locates  the  wi_not
     maenad  process  associated  with  your  current wi session and
     sends  it  a  `guess_who_wants_to_go_into_insert_mode' message.
     The maenad then deletes the  .edrc file in your home directory,
     replacing it with a copy of /typical/keymaps/InsertModeKeys and
     then  restarts  itself  using  this keymap.   You can return to
     curser  mode  by  repeatedly moving the cursor to the bottom of
     the  file;  if the wi_not maenad detects eight or more `move to
     file bottom'  orders in the space of thirty seconds, it assumes
     a  desire  to leave insert mode.   `move to file bottom' is the
     only cursor-movement  command that is common to both insert and
     curser modes.

MACROS

     Keyboard macros can be defined  when in curser mode by pressing
     control-backspace  to  enter command mode.   The command prompt
     will appear at the bottom of the screen:

     PLEASE ENTER YOUR COMMAND HERE (NO LONGER THAN 80 CHARACTERS):

     There  are  only five valid commands: `q' to save the file, `s'
     to quit without saving the file, `a' to quit and save the file,
     `n'  or  SETENVIRONMENTFLAGSPLEASE to allow setting of external
     flags  and `w' for `set macro'.   Once in `set macro' mode, the
     words  SET-MACRO-MODE -*-ON-*- in flashing, reversed characters
     appear  across  the  top  of  the  screen.   From  then on, any
     keystrokes  you  enter are not acted upon, but are piped into a
     file in /ephemeral/keymaps/keymaps/keymaps/$ (where $$ is
     your  unique system ID).   Once macro mode is left (by pressing
     control-z  eight  times  quickly),  you will be asked which key
     sequence  to  allocate this macro to; it can be assigned to any
     key combination,  including control-z.  On pressing this key in
     future,  the contents of that  file will be piped to the wi_not
     maenad,  which will  assume them to be  ordinary keystrokes and
     will act upon them as such.

ENVIRONMENT FLAGS

     pss   ON | OFF

         Print-scheduler-swapping.  When set ON,  your wi_not maenad
         will   assume  control  of  the  drooler  printer line that
         matches   the  address   of  your   serIOus   line  in  the
         /typical/who's_where   file.   If  wi is being run from the
         system console,  wi_not will assume control of the parallel
         printer.   If verbose mode is ON, the fourth wi window will
         show status messages from the drooler subsystem.


     vrb   ON | OFF | SHUT_UP_AWREADY

         Verbose  mode.   When  set on,  your window will be divided
         into four sections,  allowing fine control of the text that
         is being entered.   Control can be switched from one window
         to  the next  by pressing the control-right-cursor key, and
         text  can  be entered in hexadecimal or RTF.   Verbose-mode
         OFF  disables  messages from the fourth window for a period
         of two  minutes  (to ensure no conflicts between the wi_not
         maenad  and  the whats_all_this_then daemon which allocates
         disk  blocks  when  the file is being saved).  Verbose-mode
         SHUT-UP-AWREADY disables verbose mode completely.


    sefm   ON | OFF  n

         Save   every   five   minutes.    When  active,  this  will
         automatically  write  the  contents  of the wi_not maenad's
         tummy_buffer  to  the  originating  file.   If no origin is
         specified  (such as in the instance of creating new files),
         they  will  be  written to /ephemeral/wi_do_i_bother_$$.  n
         specifies the number of ticks between successive saves, and
         defaults to 2 in the interests of data integrity.


    stfu  ON | OFF

         Setting  shut_the_f**k_up to ON disables the standard audio
         sample that replaces the control-G beep sound.


EXAMPLES

         wi -np 1 /uselss/now_hear_this_you_scum

            This  will  start  wi  with  a  single window, notifying
            descendant  processes  to keep quiet for a bit, disables
            print-spooler-swapping   and   loads  the  system  login
            message into the tummy_buffer of the wi_not maenad.


        wi -mf 4 2 argh albatross choc_ice :stfu ON sefm ON 200

            This  will  start  wi  with  four windows; the first two
            will be named  `albatross' and `choc_ice'; the third and
            fourth windows will be unnamed.   The `shut_the_f**k_up'
            flag will be set, and the `save_every_five_minutes' flag
            will be activated,  with  a  save-frequency of 200 ticks
            (or  approximately four seconds).   The  contents of the
            third  and  fourth unnamed windows will be auto-appended
            to the file /ephemeral/wi_do_i_bother_$$.


        wi -vy 500 argh

            This will open five hundred windows on your screen,  and
            will  then  sub-divide  them  into  two thousand smaller
            windows,  each  with its own unique filename.  This will
            usually crash the system.

FILES

 /uselss/beep                     Raw audio sample file,  containing
                                  the  replacement  for the standard
                                  control-G beep sound.

 /typical/who's_who               System  task  table;  used  by the
                                  aengel   Goliad   to  locate  your
                                  session when swapping keymaps.

 /typical/who's_where             Relates   user  tasks  to  serIOus
                                  lines, allowing correct allocation
                                  of    drooler    resources   under
                                  print-scheduler-swapping.

 /ephemeral/wi_do_i_bother_$$     Temporary  write file for autosave
                                  if  no filename was specified.  If
                                  filenames  are  not specified when
                                  creating the files,  autosave will
                                  be dumped there.

 .edrc                            Settings  for  wi initialisiation,
                                  located  in  your  home directory.
                                  can contain flag settings.

 /typical/keymaps/InsertModeKeys  Temporary  file  for  changing  to
                                  insert mode


 /typical/keymaps/keymaps/keymaps/keymaps/spo0

                                  Default keymap for wi.

 /ephemeral/keymaps/keymaps/keymaps/$

                                  Temporary    storage   for   macro
                                  definition.

SEE ALSO
     crp(1), stuffio(2), doobrie(9), bwip_init(2), google(2),
     edmond(29), raymond(3), horwood(6), output(1), vo_mit(992),
     stomp(2), invoke(1), exorcise(666)

BUGS

     The n option can be slow.

     If  you  press  any  keys while the wi_not maenad is engaged in
     restarting  with the /typical/keymaps/InsertModeKeys file,  you
     may generate a level six  Shee_It  CPU trap which may cause the
     loss of some data.   Be sure to release  the `i for insert' key
     as soon as your cursor stops flashing.

     If  you specify  a large number of windows when starting wi and
     then enter the verbose mode, the total number of windows on the
     screen  will  quadruple.   This may reduce the viewable editing
     area  in  each  window  to  less  than  one  character in size.
     Entering command mode in this state would not be adviseable, as
     considerable  system  resources would be required to update the
     display, possibly impacting on the work of other users.

     There is no way selectively to follow symbolic links.

     If  you  create multiple files without specifying filenames for
     them and then the sefm autosave flag is activated, the contents
     of one window  will  over-write  the contents of the others, as
     they  are  all saved into the same temporary file.  This can be
     avoided  by  specifying  the  -m  (munge) command option, which
     appends  the  contents  of  two  or  more  windows  to the same
     temporary file.

     Exiting  verbose  mode with the SHUT-UP-AWREADY flag leaves the
     screen  in  the four-column  window  format,  reducing the area
     available for text editing to one-fourth of the full screen.

     If  you  start  wi  with  a  single filename and specify the -m
     option, the session will hang, as wi expects multiple filenames
     to be specified along with the munge option.

     It is not possible to specify an alternate system keymap and to
     set  flags  on  entry  simultaneously,  as  both  tasks require
     explicit  use  of  the arg2 argument.  In this case,  enter the
     required flags into your .edrc file, using wi to edit it.

     If you assign a macro to  the  control-z key combination, there
     is no way to leave wi except by encouraging a caenobite-process
     to  take over your serIOus line.   In this instance,  some data
     may be lost.   If  the  wi session is being run from the system
     console,  it  may  not  be  possible to contact a caenobite; in
     which  case,  the  system  must  be  powered  down  to free the
     console.

     We're not kidding about the symbolic links, you know.

     -----
     Sunburne Computer, Inc. 22 October 1991

winge

WINGE(1)                   USER COMMANDS                     WINGE(1)
PENIX             OPERATING SYSTEM DOCUMENTATION                PENIX


NAME

     WinGE - Window-like Graphic Environment


SYNOPSIS

     WinGE [ - ] abdfghmnrstvwDMTZ [ percent ] [ task-limit ]
                                   [script]


DESCRIPTION

     WinGE  (version 9.1b)  is  the  current incarnation of a product
     that began  its  life as a WIMP interface, known as XXX-windows.
     It was designed to run on cheap, low-end graphic terminals as an
     alternative  to  the Penix command-line interface.  The original
     images and specifications  were  thought  to  be somewhat on the
     `scatological'  side and were withdrawn  (although i gather that
     some of the more, uh, innovative icon designs are available from
     a certain  x-rated GIF archive site).   This document deals with
     the  WinGE  initialisation routines,  files and support routines
     and peculiarities of the Windowing System.

     Basics:

     The  screen  shows  currently-running  tasks  as  small  graphic
     symbols  known  as  icons^H^H^H^H^H  `stamps'.   They are ranged
     along the top left-hand side of the screen, to the right, making
     the  screen  look  somewhat  like  international  air-mail.  Any
     console-directed  messages  are  displayed  in  areas  known  as
     windows^H^H^H^H^H^H^H `louvres', which open and shut as messages
     appear.   Control  of  the  tasks is maintained by twiddling the
     tiny graphic danglements attached  to  the bottom of the window,
     resembling latches,  security screen locks  and  venetian  blind
     cords.   The control point for external devices  (mice, tablets,
     data gloves,  joysticks,  guru-boards  etc)  is  the Flyswatter,
     which is used to  move `stamps' and `louvres'  about the screen.
     The graphic data for all images is stored in /WinGE/danglements,
     in ASCII format,  and  can be altered easily with the wi editor.
     The system disposal, /dev/ttybowl, is represented by a free-form
     porcelain sculpture in the bottom right-hand corner.   Files can
     be deleted,  and  tasks halted  by  dragging  their `stamps'  or
     `louvres'  with the flyswatter into the ttybowl  and pulling the
     tiny chain attached  to  it.   Users of early revisions of WinGE
     reported that  some `louvres' required more than one flush,  and
     some  even  stuck in the ttybowl,  requiring use  of the PLUNGER
     goelem-task.   To counter this,  an  additional `stamp' has been
     added for 9.1, /dev/dispose-all.  This `stamp' has tiny animated
     serrated teeth  which  make  short work of anything stuffed down
     it.   Just be careful not to get the flyswatter stuck in it,  or
     the system will hang.   If you swat a task-stamp five times with
     the Flyswatter, a louvre appears with detailed information about
     that task.   Note: this window will not fit down /dev/ttybowl or
     /dev/dispose-all;  it  is  digitally  bio-degradeable  and  will
     decay over a period of half an hour.


FUNCTIONS

     a    Terminal is a Commodore-Amiga

     b    Draw  big  icons  (for the  visually  impaired).  This will
          source images for `stamps' from /WinGE/biggies/.

     c    Crash-limit (specified in percentage).   If you are running
          a task which  is  not processor-retention-pure, it will not
          finish  cleanly,  and will  leave its `stamp' on the screen
          until  the  system  is  re-shoed.   This  can be avoided by
          specifying  a  percentage of CPU, which if the system falls
          below this level, the task will be assumed to have finished
          and the WinGE session will then safely crash.

     d    Terminal is an MS-DOS-based machine (monochrome)

     f    Fake the presence of a mouse with numeric keypad.   On some
          earlier systems,  such as the MS-DOS and Vic-20s, mice were
          problematical   to   add   without   considerable  hardware
          modifications.   This option  will allow the numeric keypad
          to  simulate  mouse-movements;  the  arrow  keys indicating
          direction, and the numeric `0' and `enter' representing the
          mouse buttons.   This is an idea we stole,  lock, stock and
          barrel, from the Macintosh, and we don't care.

     g    Garfield  Cuteness  option.   Images  for  `stamps' will be
          taken  from  /WinGE/garfieldies.   Cute, but not terminally
          so.

     h    Draw  HUGE  icons,  for  the  terminally  cute.  Images for
          `stamps'  will be taken from /WinGE/ziggies,  and have been
          known to cover three-quarters of the screen, using the most
          garish shades of blue,  pink  and  green  that the terminal
          will allow.   Most of them  are  animated,  using about 300
          Kilobytes of graphic information and some of them have been
          known to permanently alter the blood-sugar level  of anyone
          using the system.  Diabetics beware.

     l    Task-limit.    Sets  a   lower  limit  for  the  number  of
          concurrent  tasks to be run.   If the number of tasks falls
          below  this,  WinGE  will  automatically  start  one  up at
          random,  selecting  from  the  list  of  available tasks in
          /WinGE/thumb_twiddle.  This is to scotch, once and for all,
          any claims that  WinGE doesn't concurrently multitask.  The
          default number of tasks is four.

     m    Terminal is a Macintosh (monochrome)

     n    No-idea.  This  assumes  that WinGE  has not been installed
          correctly,  and sets about creating the default environment
          for  WinGE,   including  all  of  the  graphic  information
          directories,  filling  the  stamp-data files with randomly-
          generated  ascii  characters  (which often look better than
          the supplied defaults).

     r    Randomise  colours  on  startup.   This option isn't really
          necessary,  as  the  default  colours  which you specify in
          /WinGE/.snivel rarely match up with what people expect them
          to look like.  Life is like that, sometimes.

     s    Specify  alternative  to  default  startup script, which is
          /WInGE/.snivel.

     t    Terminal is an Atari (monochrome)

     v    Terminal is a Commodore Vic-20 (default)

     w    Wobble  option  (for  hangovers).   This is also useful for
          preventing  pixel-burn-in on monitors if the display is not
          particularly  active over a long period of time.   It moves
          the  entire bit-mapped display  a  random  number of pixels
          (between 0 and 8)  to  the  left;  waits  a  random  period
          between 0  and  4 seconds,  then shifts  a random number of
          pixels  to the right.   This effect has been known to cause
          nausea and vomiting in hung-over operators,  so use it with
          caution.

     D    Terminal is an MS-DOS-based machine (colour)

     M    Terminal is a Macintosh (colour)

     T    Terminal is an Atari (colour)

     Z    Zoom  option.     When  active,  this  option  presents the
          bitmapped  image  as  ten to one hundred percent larger, by
          pressing function keys F1 to F10.   This option was provded
          purely  for those fanatics  who  aren't happy until all the
          `stamps' and `louvres' are lined up perfectly.


EXAMPLES

     To start the Window-like Graphic Environment:

          %-) WinGE -cfhlswDZ 85 2 /WinGE/mine/.snivel

     This will  start WinGE  with a minimum of two tasks, halting the
     system  if processor useage falls below 85 percent,  starting up
     with /WinGE/mine/.snivel.


FILES

     /WinGE/danglements               default files for graphic images

     /dev/ttybowl                     system task terminator, represented
                                      by stamp image

     /dev/dispose-all                 more powerful version of the above

     /WinGE/biggies                   directory   for  large-stamp image
                                      data

     /WinGE/Garfieldies               directory for cute stamp images

     /WinGE/Ziggies                   directory  for obscenely cute stamp
                                      images

     /WinGE/thumb_twiddle             list  of  available  tasks  to fill
                                      cpu-idle time

     /WinGE/.snivel                   default WinGE startup-script file


SEE ALSO

     WHINE(1), WinGE_init(1), stuffio(2), WinGE_configure(1),
     roflgo(3), WinGE_terminate(3), WinGE_kill(2), tickle(2),
     argh_i_think_i'm_going_insane(2)


BUGS

     There is  a  fault in the WinGE_init process that cause WinGE to
     hang between processing one line  and the next of .snivel.  This
     usually occurs  if  the line contains  references to  processor-
     retention-pure  tasks,  or  tasks  which  do  not  have matching
     stamp-images in /WinGE/danglements.   To counter this, the first
     line of .snivel should run WHINE (WinGE_init Halt Initialisation
     at Next Entrypoint)  as  a  GOELEM  task.   This  will terminate
     WinGE_init  five  seconds after initialisation is complete.   If
     initialisation  proceeds  without  error,  the  first  thing the
     operator should do is locate the WHINE GOELEM stamp and push its
     head  down /dev/ttybowl,  flushing it from the system.  This can
     be automated with the following .snivel script:

     #-> do_quietly /executeables/WHINE -delay 5 -i `GOELEM'

              ...

              (other WinGE initialisation commands)

              ...

     #-> do FLUSH /executeables/WHINE -swirly
     #-> do FLUSH /executeables/WHINE -swirly
     #-> do FLUSH /executeables/WHINE -swirly
     #-> do FLUSH /executeables/WHINE -swirly

     (four times, just in case)

     If the file  /WinGE/thumb_twiddle is  missing or empty,  and the
     task limit falls  below  the number specified with the l option,
     the default task to run is WinGE_init.   This actually becomes a
     sort of loop,  as the default settings for the new WinGE session
     are taken from the current task-table,  and thus specify a task-
     limit which must be filled,  so WinGE immediately runs four more
     tasks,  which,  if /WinGE/thumb_twiddle is not present,  will be
     four new WinGE sessions, and so on.  This can lead to the system
     gradually slowing to a stop.

     There is no way to symbolically follow selective links.

     The random numbers  generated  with  the  `w'  option  reveal a
     Markoff Chain,  to  the effect that the screen gradually  moves
     further left than right.   If left unchecked, the entire bitmap
     will shift off the screen and  onto the terminal  next to yours,
     and  then  onwards  down  the  room  until  it  reaches the last
     terminal in line, after which the image leaks out of the side of
     the screen and onto the carpet.

     The  n  option  is  slower than the n option  in any other Penix
     function so far.

     -----
     Sunburne Computer, Inc.    28 August 1992



Again, this was written and is copyright Nikolai Kingsley, reproduced here simply to stop it sliding into oblivion...

This page was last updated: 14th May 2010 at 10:28pm BST
© 1998 - 2013 disgruntledgoat.com, all rights reserved. Privacy info