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

Reply via email to