A security monitor instance. All monitor logic is implemented as methods for this type.
We split the state into the following components: ‘space’, managing the virtual memory space and
mapping objects, ‘thread_mgr’, which manages all threads owned by the monitor (typically, all
threads started by compartments), ‘compartments’, which manages compartment state, and
‘dynlink’, which contains the dynamic linker state. The unmapper allows for background unmapping
and cleanup of objects and handles. There are also two hangle managers, for the monitor to hand
out handles to libraries and compartments to callers.