Oberon ||
Compiler & Tools ||
Library ||
Module Index ||
Search Engine
Ulm's Oberon System:
pons
NAME
pons - Persistent Oberon Name Service
SYNOPSIS
pons
{-b
bind-address
port}
{-B
bind-address
port}
[-i
intensity]
[-r
read-auth]
[-s
shutdown-auth]
[-w
write-auth]
dbfile
DESCRIPTION
pons provides a persistent hierarchical structure of directories
which can be temporarily used to insert objects and other hierarchies
to allow remote objects to be found by paths in a shared name system
(see Names).
Please note the distinction: directories created within the hierarchy
of pons remain persistent, connections to inserted nodes
from other processes do not survive a restart of pons.
Persistent directories may be created from the command line using
onsmkdir, interactively through nsh(1) or from within
Oberon by using Names.MakeSubnode.
The persistent directory structure is stored using a container (see
Containers and StandardContainers) that is based
upon a safe storage using TransStreams on a regular file named
dbfile. The database file dbfile will be created if it does
not exist yet.
Note that database files based on StandardContainers and
TransStreams contain holes causing the size returned by
stat(2) to be much larger than the actual disk usage.
These files must be copied with care (either compress them first,
or use options like -sparse of star(1)). It is not
safe, however, to copy a database file while pons is running.
pons supports the authorization scheme of Names.
Initial permissions may be given through the options -r,
-s, and -w when a new database is to be created.
Afterwards, permissions can only be changed through operations
of Names. Newly created directories inherit the set
of permissions from their parent directory.
Following options are supported:
- -b bind-address port
-
make the RemoteObjects address of the exported root available
at the given address (a hostname or a dotted-decimal IPv4 address)
at the given port number according to NamesBootService
and IPv4NameSystems. Note that any number of addresses may
be given. Usually, ``127.0.0.1 9880'' is given.
- -B bind-address port
-
add this port to those ports used by RemoteObjects.
By default an ephemeral port address is taken.
- -i intensity
-
allows to set the intensity level for Storage.Intensity
(see Storage). This allows to fine-tune the balance of
memory usage vs CPU time by the garbage collection. By default,
the intensity is 8. Lower intensity values reduce memory usage
but cause CPU overhead by more frequent garbage collections.
Higher intensity values cause more memory to be used while saving
more CPU time. Please note however, that the address space can
also be a significant limit, i.e. at high intensity values it
is possible that no more address space is found by Memory.
- -I
- permit insertions even with read-only access authorization.
Please note that this option is ignored if dbfile exists already.
- -r read-auth
-
specifies a file containing a persistent pair of shards (of types
Shards.Lid and Shards.Pot). If given, all read-only accesses
must provide a lid that fits to the pot of read-auth. By default no
authorization is required for read-only accesses. If this file does not
exist yet, it is created and initialized with a pair of private shards
(see PrivateShards).
Please note that this option is ignored if dbfile exists already.
- -s shutdown-auth
-
specifies a file containing a persistent pair of shards (of types
Shards.Lid and Shards.Pot). Shutdown operations on the
pons object in the root directory must provide a lid that
fits to shutdown-auth. By default, shutdown-auth equals
write-auth. If this file does not exist yet, it is created and
initialized with a pair of private shards (see PrivateShards).
- -w write-auth
-
specifies a file containing a persistent pair of shards (of types
Shards.Lid and Shards.Pot). If given, all write-accesses
must provide a lid that fits to the pot of write-auth. By default,
write accesses are prohibited to everybody. If this file does not
exist yet, it is created and initialized with a pair of private shards
(see PrivateShards).
Please note that this option is ignored if dbfile exists already.
pons may be terminated by sending SIGTERM or
invoking onsshut for the control object named ``pons''
within the exported root.
SEE ALSO
- PersistentNodes
-
the implementation of pons is based on this kind
of persistent nodes
- PrivateShards
-
default type of shards that is used for authorization.
- Names
-
general abstraction for name hierarchies
- onsshut
-
allows to shut down the pons service
Edited by: borchert, last change: 2005/02/10, revision: 1.3, converted to HTML: 2005/02/10
Oberon ||
Compiler & Tools ||
Library ||
Module Index ||
Search Engine