NAME
namespace, ons – octopus name space and conventions

DESCRIPTION
In the octopus, there are several name space conventions and programs rely on them. This manual page documents such conventions. Besides, depending on where the namespace is used, it is sensible to adhere to Inferno or to the host OS (eg. Plan 9) conventions as well.

The script ons adjusts the Inferno name space to adhere the octopus conventions.

There are several name spaces of interest, depending on where the application executes (or where are we browsing files from). Most times, applications and browsed files belong to the host system of the PC (eg., Plan 9). The next subsection documents such name space. A following section documents the name space as found on the Inferno running at the PC.

PC Name space
This section assumens the PC host system is Plan 9 from Bell Labs. Adjustment of name spaces in other native host systems is not yet supported, although it will be in the future.

Most conventions of Plan 9 name spaces hold, like using /bin for binaries and /usr for user files. The following files and directories are also available when using the PC from the Octopus:
/dev/snarf           The clipboard. Usually it is an actual file at bound to along with the next file.
/dev/sel             contains the path for the (user interface) panel where a selection was last made. The file is kept at $home/lib/snarf/sel or a similar place and bound to /dev like before.
/mnt                 contains directories where different resources added to the PC can be found.
/mnt/ui              contains the file system interface for the Octopus window system, Omero. See omero(4) for a description.
/mnt/ports           contains a directory providing the event delivery mechanism used by the Octopus.
/mnt/view            is a file viewer device. To view a file (e.g., a PDF) it suffices to copy it to this directory. A document viewer at a terminal near the user (probably one at the terminal being used to request the copy) will be launched as a result of the copy.
/mnt/view/ndb         is a text file describing properties of the view device. Among other things it describes the location of the device and the terminal providing it.
/mnt/print           is a printing device. To print a file, copy it to this directory. The file will be printed at the default printer queue provided by a terminal near the user.
/mnt/print/ndb        describes the print device. All devices include an ndb file by convention (although we will not mention it further).
/mnt/print/voice      is a voice synthesis device. To speak some text, copy it to the speak file it provides. As all other devices mounted at /mnt the device used will be one near the user.
/mnt/terms/terminal     is a directory where devices and resources from the machine terminal can be found. There are multiple terminals mounted below /mnt/terms in the same way. We mention some devices next, but not all of them would be provided by all terminals. The devices found directly at /mnt
come indeed from the ones we mention here.
/mnt/terms/terminal/view
is the view device provided by the terminal.
/mnt/terms/terminal/print
is the print device from that terminal.
/mnt/terms/terminal/voice
is its voice synthesis device.
/mnt/terms/terminal/fs   contains the file system from sysname (from its native OS, not from the Inferno it runs). This can be used to transfer files back and forth between the PC and the terminal.
/n/pc                contains the name space of the Inferno running at the PC. All resources described before in this list come from this file tree.
/what                contains information about machines.
/what/machine          contains information about the system named machine.
/what/machine/where    contains the machine location.
/what/machine/radius   contains the RTT for performing a particular FS operation on the machine from the PC.
/what/machine/owner    contains the name of the user owning the machine.
/who                 contains information about users.
/who/user             contains information about user user.
/who/user/where        contains the last known location for the user.
/who/user/last         contains the name of the last terminal used by this user.
/who/user/status       contains the status of the user. It is usually on of online, busy, or away.

PC Inferno name space
The name space space at the Inferno running on the PC is similar to that of any other Inferno installation, but includes the following files and directories. Unless said otherwise, the directories mean the same the do in the name space of the PC.
TP /dis/o contains the Dis binaries for the Octopus.
/dis/o/$emuhost   contains Dis binaries for the Octopus intended for the host system represented by the $emuhost variable. This directory is bound also at /dis to add platform dependent binaries to the portable ones.
/mnt/registry     is the mount point for the registry, describing resources known by the Octopus.
/mnt/ui
/mnt/ports
/mnt/snarf        
contains the snarf and sel files found at /dev in the PC.
/mnt/view
/mnt/print
/mnt/voice
/mnt/fs          
contains the PC name space, including the files described before for the PC.
/mnt/what         is the PC /what directory, and contains information about machines.
/mnt/who          is the PC /who directory and contains information about users.
/terms           is similar to /mnt/terms in the PC.

Terminal name space
The name space at the Inferno running on a terminal has the file tree of the PC's Inferno at /pc (using the Octopus protocol as the file protocol) and also at /n/pc (using Styx as the file protocol). The former works better on poor network connections but the later is closer to expected semantics for file access. Also, /mnt/registry /mnt/snarf and other devices from the PC are available for use by terminal software.

SOURCE
/usr/octopus/port/ons

SEE ALSO
nsbuild(1), wm(1), newns(2)