Page 1 of 1

How does IO virtualisation work in VBox

Posted: 12. Jun 2011, 20:03
by samadagha
Hi,
I am a newbie to VMs in general and have read lots of wikis & forums etc. but can't be sure what the answer to the following is. Can the experts clarify, please ?

Scenario : I have Windows host (say win.7) and Linux guest (say fedora 14)

If I run an app (e.g. minicom terminal emulation) on the guest linux, how does the actual hardware UART I/O happen ?
Which if any of the following options is true ?

1- VBox (the VM) use the windows serial port driver to create a virtual hardware for the guest OS.
i.e. minicom talks to fedora/linux driver which talks to VBox virtual UART which talk to windows uart driver which talks to real uart.

2- The uart driver on the guest actually registers interupt handlers etc. for the real hardware through VBox.
An IO interrupt really interrupts the VBOX which really interrupts the fedora/linux which really runs the interrupt handler code that it would run had it been the host os.
i.e. at the guest/fedora level you really do write to the uart registers etc.

I look forward to being enlightened. Thanks.

Re: How does IO virtualisation work in VBox

Posted: 13. Jun 2011, 12:15
by mpack
The guest has a virtual UART which it talks to: this typically looks like a traditional legacy COM1. When the guest writes to virtual UART registers the virtualbox emulation code catches it and then does whatever it's configured to do, i.e. talk to a named pipe, or to any host COM port (which need not be COM1). If the latter then the host COM port is selected in the VM settings.