Abstract : Many tools were developed to make evolve in the course of time an application and/or its execution platform according to the appearance of new needs. Within the framework of Java, they are often appeared as new compilers handling a Java language enriched, advanced class loaders which modify the byte code of the application in order to add new properties to this one, or specialized virtual machines. However these various tools are not easily combinable between them and/or reusable apart from their context. This is why we propose, within the framework of Java, an opened virtual machine, entirely written as Java to preserve the portability, and able to evolve in the course of time. It has a component architecture which is inspired most accurately possible by the specification of Sun Microsystems. A Corosol component is an abstraction of the functional units of the Java virtual machine (like the class loaders or the threads), but also of the storage units (like the heap or the thread stacks) and all intern mechanisms related to the execution (like the method dynamic resolution). The Corosol architecture is described by interfaces, which specify the component services but also how they are integrated in Corosol and communicate between them. A default implementation is provided for each component. The implementation of each component can be selected before the starting of Corosol by simple parameter setting. However, the principal originality of our virtual machine is this powerful interface of introspection. Thanks to it, during its own execution, the application can consult the characteristics of its platform of execution in order to adapt its virtual machine. It also authorizes the application to create components for our virtual machine and to change the existing components by new ones. Our work mainly consisted to define and implements this introspection interface.