Mounting a remote namespace

In Inferno, everything is treated as if it were a file. Physical devices (e.g. keyboards, cameras), environment variables and windows in a GUI are all represented as groups of files. Some of these may be physical files on a hard disk, others may be blocks of RAM, still others may be "synthetic" files which have no physical presence. Just as in a traditional filesystem, these files are organised hierarchically in a directory tree. This tree is known as a "namespace".

This principle means that to access a remote resource, all you have to do is get access to its namespace. You can then interact with that resource as if it were part of your local system. This is called "mounting" a namespace and it's very similar to the concept of mounting a remote storage device such as a hard disk; this concept will be familiar to users of systems such as Unix and Windows.

Examples of use of this include the following:

  • Accessing physical files on a remote filesystem (just like a "traditional" mount command)
  • Controlling a remote device such as a digital camera (the interface to the camera is represented as a set of files, not as a set of programming functions or an API)
  • Desktop sharing: if you want to see what's on my desktop I can export the namespace that holds the "files" that represent my desktop environment.
  • Debugging of a remote process: Each process has its own namespace in /prog. If you mount this namespace on your machine you can debug the process as if it were running locally

and many more. The key is that, once mounted, your system doesn't have to know that the namespace is actually part of a remote system. Once you know how to work with files, you can work with any remote resource.

How to mount a remote namespace

Firstly, install Inferno as described in InstallingInferno. You only need to do this on one machine for now. You can start up different instances of Inferno on the same machine to mimic the presence of multiple computers.

We'll go through the following steps:

  1. Set up an authentication server.
  2. Set up a file server. This contains the namespace that is to be exported.
  3. Set up a client. This will mount, i.e. import, the namespace from the file server.

Set up the authentication server (the "signer")

... to be completed. In the meantime, please see the document "Installing the Inferno software" (installation.pdf in the root of the CD distribution)

-- JonBlower - 30 Mar 2004

Topic revision: r2 - 01 Apr 2004 - 12:41:00 - JonBlower
 
This site is powered by the TWiki collaboration platformCopyright &© by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback