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
|