This paper describes the design of a virtual machine intended to support distributed object-oriented applications. This design is generic in the sense that it is not tied to a specific object model and is intended to support any object-oriented language that satisfies its minimal assumptions. The design is based on a segmented architecture with dynamic binding at first call. The principle of an implementation on this machine on a micro-kernal is described, together with the results of preliminary experiments.