Booting a CapROS system involves the following steps, each of which is discussed in detail below.
A CapROS system consists of the kernel and objects. Preloaded objects are those that are loaded at the same time as the kernel. Non-preloaded objects are loaded from disk by the CapROS pager. Preloaded objects include all non-persistent objects, and may include the persistent objects that define a big bang. The build tutorial has more information on the big bang.
The kernel and preloaded objects are loaded by a boot loader from some nonvolatile medium. The details are machine-specific. Here are some examples:
Kernel initialization will be documented later.
The kernel starts the system by running the single nonpersistent IPL process. The IPL process is identified by an OID that is defined in the system image, using the mkimage "ipl" directive. The IPL process goes through a list of nonpersistent processes to be started, and starts them. This list is built using the mkimage "run" and "threadlist" directives. In a fully nonpersistent system, this list of processes includes all the initial processes, such as device drivers.
In a persistent system, the initial state of the persistent objects must be defined using mkimage and then set up in the system. There are two ways to do this.
In a persistent system that is restarting from a checkpoint, or that is performing a big bang using the method that loads the initial objects from disk, a nonpersistent process loads the persistent objects and state. This may be the IPL process, or another process (the latter is more easily configured).
CapROS disk volumes (partitions) are identified with an IPLSysId that is unique for each system. This allows one CapROS system to format disks for another CapROS system without confusing them.
The restart process finds the configured disks, using a combination of configuration data and probing. It mounts all divisions of all volumes with the correct IPLSysId. Then it reads the checkpoint headers and loads and starts the running persistent processes. This will be documented in detail later.
|
|
Copyright 2007, 2008 by Strawberry Development Group. All rights reserved. For terms of redistribution, see the GNU General Public License This material is based upon work supported by the US Defense Advanced Research Projects Agency under Contract No. W31P4Q-07-C-0070. Approved for public release, distribution unlimited. |