Plan B 4th edition

Put resources into boxes

Plan B is an operating system designed to work in distributed environments
where the set of available resources is different at different points in time. Its
4th edition is implemented as a set of user programs to run on top of
Plan 9 from Bell Labs.

It's main design guidelines are:

All resources are perceived as volumes. A volume is a file tree exported to the
network together with a name and constraints.

The system operates on both local and remote boxes through
the same protocol. Any implementor of such protocol can be used as
part of a Plan B system.

Each application has its own name space and can customize it.
Customization is done by defining names for volumes and specifying
the desired order and constraints to tailor automatic import of network volumes.

Applications try to avoid
connections to resources, by using calls that accept file names instead of
file descriptors.

Volumes can be advertised as they become available
to be automatically bound to pre-specified
names in the name spaces of applications that care about such resources.

The design owes much to Plan 9 and to
Off++. For a description of the system, you
may read some of the papers listed in the papers
page. You can take a look to a Plan B screenshot
and see the code for an example application, the player
we use to listen to music within our smart space shown in the screenshot. The player
is similar to one implemented for a single machine, but Plan B makes it adapt to
device availability and distribute its UI among available screens.

This distribution is available under the Plan B license (which is that of Plan 9).
If you accept the license, you can download a full tar ball with a
set of files that can be unpacked on top of a Plan 9 installation to obtain a Plan B. If you want just the source code,
and you accept the license, you can download sources tar ball instead.
The file /sys/src/README.PlanB in the CD reports the files changed in Plan B
with respect to Plan 9.