ENV(8) ENV(8)
NAME
ctxrc, getrole, locate, mail2who, mkwhat, pc2who, setrole,
terms, uam2who, update, who, who2uam, who2web, x10outside -
environment and context processing
SYNOPSIS
env/ctxrc
env/getrole [ machine ]
env/locate [ -n ] [ newlocation ]
env/mail2who
env/mkwhat
env/pc2who
env/setrole
env/terms
env/uam2who
env/update
env/who
env/who2uam
env/who2web
env/x10outside
DESCRIPTION
Collectivelly, these programs provide context awareness and
context handling for Plan B. Most of them are expected to be
customized by the space administrators and/or by the users
to reflect the local conventions of the environment. The
programs provided reflect the setting at URJC.
Some of the programs extract context information for users,
places, and things from various sources and place the infor-
mation within /who, /where, and /what. Some other programs
use that information to automate the environment, customize
it, and generate new information.
Context information for most places, users in the environ-
ment but not using this system, and administrative users, is
extracted by executing some of these programs in CPU
Page 1 Plan 9 (printed 11/5/25)
ENV(8) ENV(8)
servers. Context information for users is not extracted.
They are expected to arrange for some of these programs to
run on their name at any machine in the environment, and to
customize them to make them more appropriate for their par-
ticular behaviour. Using context to automate the environ-
ment is done in the same way.
Ctxrc is a script that starts all the relevant environment
tools, to update context and relevant environment devices as
things change. This is run by the space administrator at a
central machine.
Uam2who imports context from users at UAM, where a differ-
ent, XML based, system is run. This program updates our con-
text file trees.
Pc2who updates user status for those who are usually close
to their laptop, and use to be available when the laptop is
running.
Mail2who imports real world mail status from a digital image
processing system, to update information about unread mail
in (real world) mail cabinets.
X10outside switches on/off corridor terminals depending on
the state of the motion detectors close to them.
Who2uam expors part of our local context information to a
foreign, XML based, system. This is the counterpart of
uam2who.
Who2web updates the http://lsub.org/who page to reflect part
of our context.
Who starts a ofaces(1) program to display the face of those
whose status is not away, i.e., of those who are in the
environment.
Locate sets $location if not set, by asking the user for a
suitable value. It obtains the location from hxfs(4) or the
loc attribute in the ndb(6) database by default. It also
updates context information at /who, /what, and /where if
such directories exist. Option -n assumes that there is a
new location and ignores any previous value for $location.
This program is run from brc (8) during system start up.
Terms prints the name of terminals (machines if flag -a is
given) and its role for the user if option -r is given.
When called only with flag -k terms prints the list of
machines and addresses for their kbdfs keyboard redirectors.
Flag -m can be used in the same way to print addresses for
mouse redirectors. Flag -a shows not just terminals, but
Page 2 Plan 9 (printed 11/5/25)
ENV(8) ENV(8)
all machines for the user.
To help users automate how to use their (multiple) machines,
different roles are assigned to different terminals depend-
ing on their properties. This is heavily dependent on the
user preferences and the local installation.
Getrole prints the role of machine (or $sysname by default)
for the user who makes the call. The role is defined by a
gofer(1) program according to the location and list of
devices for the machines involved. Common roles are server
for CPU servers and shared machines, main for wall sized
displays, remote for machines not co-located with the user,
primary for the best display available for editing, and
other for everything else.
Setrole assigns a role for the machine while booting, and
updates context information to reflect that. If the $role
variable is set, that value is used, otherwise Getrole
determines the role for the machine.
Mkwhat creates the tiny file system to contain
/what/$sysname for the machine. This is used on machines
that are not always avail. Permanent stationary machines
have their /what directories in the main file servers
(together with /who and /where hierarchies).
Update updates context for the user. This is usually run
from the user's profile. It polls the devices in the envi-
ronment to determine user's location and other standard con-
text. Besides, part of the automation of the environment for
the user (e.g., updating the user's web page to reflect the
status) is done here as well.
FILES
/who,
/where, /what.
SOURCE
/rc/bin/env
SEE ALSO
x10(1) and hxfs(4).
BUGS
Most tools are specific and assume a setup similar to the
one at the Laboratorio de Sistemas at URJC. There is no such
thing as a generic-context-toolset.
Page 3 Plan 9 (printed 11/5/25)