Legion is an object-based system organized by classes and metaclasses (classes of classes). Every part of Legion, including classes and metaclasses, is represented by a Legion object and users manipulate various elements by controlling their representative objects. All Legion objects are automatically assigned an identifying number, called a LOID (see "About the LOID"), and can also be assigned a user-chosen string name, called a context name. Users can organize these context names into a discrete context space, and from that space can run programs, use far-flung resources, and take advantage of Legion's other features.
Legion users will probably spend a great deal of time working in context space, so it is important to understand the initial geography of your system's context space and how to negotiate that space. A typical newly installed system has the basic elements of context space: there are four sub-contexts and several starter context names for commonly used objects. See "Contents of a typical new Legion system context space," shows the contents a newly installed Legion system's context space. Note that your system may differ, since a system administrator may have already customized your space to take advantage of your system's resources.
To see the contents of your context space, you can use either the legion_context_list or the legion_ls command. (See "Command-line functions" in the Legion Reference Manual for a list of all Legion commands' usage.) The full context path name for BootstrapHost in the system shown in Figure 1 would be /hosts/BootstrapHost.1
For more information on viewing context space and using the other context-related commands, please see "Working in context space." A new Legion system includes four sub-contexts, called class, hosts, vaults, and home. These in turn contain context names that refer to the initial contents of a new system: the class sub-context contains context names of particular classes of Legion objects, the hosts sub-context contains names of the host objects currently in your system, and the vaults sub-context contains names of the vault object currently in your system. The home sub-context is initially empty.
When newly installed, hosts contains two names, BootstrapHost and the DNS name of the bootstrap host. (A host is a machine in a Legion system. A vault is a file storage system used to store inactive Legion objects. A host object represents and manages a given host in a Legion system, and a vault Object represents and manages a given vault in a Legion system.) Both of these names point to the bootstrap host object, which represents the bootstrap host. On the other hand, vaults contains only one name, BootstrapVault, which points to the bootstrap vault object. (See "Host and vault objects" for more information on hosts and vaults.)
A newly started class sub-context contains context names for all of the basic Legion object classes, such as BasicFileClass and ttyObjectClass. Note that these classes are themselves objects, even though they are responsible for managing a given set of objects. All Legion objects are organized into classes, and all classes are organized into a hierachy of metaclasses, with LegionClass as the supreme metaclass. Note also that the context space illustrated in "Contents of a typical new Legion system context space" does not reflect this hierarchy. This is a key feature of Legion: the physical location and organization of Legion objects is unrelated to any user's context space. The objects named in a host sub-context do not even have to know of each other's existence or even be able to communicate with each other. They do not even have to be hosts: the user can create, delete, and use contexts as he or she chooses.
There are also several binary files which are included with Legion. These files contain programs for running the commands utilities, library functions, and various programs.
1. Legion uses a the Unix-style slash ("/") in the default context space path names, so the examples here will follow that style. However, it is possible to change this to the DOS-style backslash ("\") via the primitive context manipulation routines provided by the Legion library.Back