This code is highly Linux-specific so move it out of the core repository.
Besides introducing new VM classes, plugins may influence existing VM behavior. Introduce convenient hooks for it. Without those hooks it still was possible, but in much less correct way - overriding class methods from plugin module.
It is intended to at least be extended by subclasses, so isn't really internal, rather part of API.