The monitor is a program in ring 1 (the linkset root) that provides quality-of-life functions for managing the kernel. It may safely be deleted, but it is of value to most users, as it resets the kernel in case of a crash.

This module was previously called 'hypervisor'. In Companion, the term 'hypervisor' was sometimes used loosely to refer to both the package manager and the user memory delegate; this program and its duties are unrelated to either.

The monitor is not part of the OS and cannot be invoked with a system command. Instead it may be accessed by right-clicking on ARES in the unit's inventory and choosing 'Touch'. This will present the unit with a text prompt.

To send a debug command to the kernel (as described in "kernel"), enter 4096 <command>, e.g. 4096 reset to instruct the kernel to restart itself if possible. This is equivalent to the input built-in =ddt reset.

To change kernels, type k <kernel>, e.g. k _psyche to load the classic Psyche kernel image. Inactive kernels consume no resources.

If the kernel is non-responsive, the 4096 reset command will not be received. If this occurs, use the k command (as described above) to reload the current kernel.

Logging

The kernel monitor also provides system event logging functionality.

The command l (lower-case L) will toggle direct logging of all incoming kernel calls.

The command s will enable advanced logging, which captures events after the kernel parses them and provides additional context about the kernel's decisions. This requires a verbose logging kernel, such as _psyche.debug2.

Official Kernel Images

  • _psyche is the standard production kernel, preprocessed via Firestorm (Boost::Wave).
  • _psyche.debug includes standard logging by default and will report certain events, such as timer triggers and stuck jobs.
  • _psyche.debug2 has "strong" (verbose) logging enabled by default and will provide detailed information about each instance of message-passing. This should only be used on a minimal install, as it has very high overhead.
  • _psyche.lpo is an experimental production kernel. It was compiled using LSL-PyOptimizer and mcpp, giving it extra free memory and reducing the chance of long-term crashes.