Weldon Washburn wrote:
In response to Geir's request, below is a first cut at a simple high-level modular structure:1.1) Execution Modules Execution Manager Execution Engine Code generator Profile Collector 1.2) GC 1.3) Threading/sync Manager 1.4) Platform Portability Layer (OS and HW) 1.5) Class Libraries 1.6) Platform Accessors 1.7) VM Accessors 1.8) VM Core (the hub that glues all the above modules together)
Others I can think of... :-) - JNI native interface module - JNI invocation interface module - Global/local references manager - Reflection manager (i.e., used by reflection native code) - Invocation manager - required to dynamically invoke methods from within the VM itself - Exception manager - can unwind stacks to throw exceptions - Bootstrapper - code to get the VM started - Resolver - performs field, class, method resolution - Verifier - Class initializer - invokes <clinit>'s - Boot loader - the bootstrap class loader (reads ZIP files, etc) - Class deriver - defines runtime types (including array types) - Native library manager - dlopen()'s native libs, finds functions - Properties manager - sets system properties (e.g., "java.vm.name"). - String manager - converts between String <-> char *utf8; interning - Memory allocator - allocator for non-Java-heap memory - Finalizer module -Archie __________________________________________________________________________ Archie Cobbs * CTO, Awarix * http://www.awarix.com
