It might be nice to support plugins for advanced tasks. Plugins might work in similar way as for example in Firefox. There is a lot of different ways to implement this functionality.
What should plugin support?
Shortly it should be possible to catch events on host side which is triggered on guest side.
One plugin will contain next components:
* User application on guest side which talks to virtual device(creates new events). Written in any language.
* Plugin INSIDE VBox which listens for events from guest(from previous point). Events might be implemented using virtual devices (char).
* When according event is raised then this plugin is executed which does some logic.
* Me might need one configuration file which tells that this plugin listens to next event. Which virtual devices might be created ....
* Shortly this file tells which files might be created. Which event should be triggered in time of writing to virtual device. What/how should be executed when event is raised.
So on practical base:
* We create application for GUEST which writes "run firefox" to /dev/some_virtual_deivce
* We create plugin for VBox itself which listens to event "run". When this event is received then firefox command is started on HOST side
* We define in configuration that this plugin listens to "run" events. Also this configuration files defines that /dev/some_virtual_deivce is created as raises some event.
Application for guest might be written in any language which will run.
But with plugin for VBox itsels is another story. There is a lot of different ways:
* In plugin is defined which command is executed with what parameters...
* VBox uses integrated python, java and other environment
* anything else
There also might exist plugins which work in way that they extend functionality of VBOx.