AUTOHIT 2003 !!!!!!!!!!!!!!! DESIGN DOCUMENTATION !!!!!!!!!!!!!!!!!!!!!!! KERNEL DESIGN !!!!!!!!!!!!!!! DESIGN DOCUMENTATION !!!!!!!!!!!!!!!!!!!!!!! Copyright Erich P Gatejen (c) 1989,1997,2003 ALL RIGHTS RESERVED. See license for details. ============================================================================== ============================================================================== THE KERNEL - BASIC CONCEPTS ============================================================================== Every VM runs in a VMProcess implementation. Kernel is responsible for building and maintaining a list of VMProcess's. The Kernel is owned by the SystemContext. The VMProcess controls its own state. It is not managed or instrumented in the Kernel. Every VMProcess will get a unique PID. They should never recycle. (read: it would take a very long time.) It is possible to reuse a VMProcess for more than one VM, but don't ask the Kernel to do it. It will already 'get()' you a new one. ============================================================================== SYSTEM CONTEXT - BASIC CONCEPTS ============================================================================== A SystemContext is the root state of a system. It is associated to a specific set of properties. It is created by a BasicBootstrap, which will read a property file off the local filesystem. A SystemContext will own the following: - A kernel - A root logger - A root, default universe - A CommandRegistry - A VMLoader - A AutohitLogManager - The System Properties, including load. - The allocation of the Invoker Properties, but not load. - The debugging state. There are two sets of properties. The SYSTEM PROPERTIES and INVOKER PROPERTIES. - SYSTEM PROPERTIES: These are set during bootstrap and should never change. It's up to the SystemCOntext to load them. Programs have to explicitly access them with calls. - INVOKER PROPERTIES: There are a set of properties that can me modified during runtime. It's up to the invoker to maintain them. The may be loaded and saved to/from a universe. They are automatically mirrored to a VMCore whenever a program is started.