Hello Everyone,
One of the top items on my personal Genode wish list is the VirtualBox Guest Additions.
I have never ported a serious software project across platforms (and am not a Genode expert - yet), so I am not the best person for the job. But it is a personal "itch", so I will dig in and do my best if no one else is already working on it.
Below I will briefly share what I have discovered in my limited research. Any advice or insight would be greatly appreciated.
To make a long story short, I have only found 3 useful sources of information about porting the Guest Additions:
1. The source code from the VirtualBox project itself [1] 2. A page on the OSDev wiki [2] 3. An e-mail on the VBox-Dev mailing list [3]
If anyone is aware of any more info, please let me know.
To make a long story short, the interface to the VirtualBox host is through a virtual PCI device (using IRQ and MMIO). Once this interface is in place, the various pieces (e.g. time sync, shared folders, etc.) can be added individually.
There are several ports of the Guest Additions in the VirtualBox source tree, and they share a lot of common code, but there doesn't seem to be a common skeleton among the OS-specific parts of the code.
On the other hand, the OSDev page takes a minimalist, low-level approach. This is probably the general path I will follow, at least to start.
[1] https://www.virtualbox.org/browser/vbox/trunk/src/VBox/Additions [2] https://wiki.osdev.org/VirtualBox_Guest_Additions [3] https://www.virtualbox.org/pipermail/vbox-dev/2007-July/005860.html
Wish me luck!