Hi David,
First off, if you are testing hardware other than USB devices, then
virtualisation won't help you much (VirtualBox has some experimental
support for PCI virtualisation, but certainly not enough to give you any
help here).
OK.
How much an USB device affects the host system depends on the host OS.
if you are using Linux as the host OS, then you have no problem. If you
insert a USB printer, scanner, memory stick, etc., then most modern
Linux desktops will make it available for use automatically - but they
will not install the sort of junk you get on Windows, or make any
changes to the system. The drivers will already be installed, and the
Linux box won't care as you plug things in or out. If the USB device is
something non-standard, it won't do anything with it. When you connect
the USB device to the VirtualBox machine, it is "unplugged" from the
host OS, and "plugged in" to the guest OS. Again, with a Linux host,
that won't cause any bother or lead to any changes.
I don't run Linux. All *BSD's, Solaris and various incarnations of
Windows.
Regardless, I'm not talking about generic things like "mass storage
devices", "generic printers", etc. Rather, things like *specific*
printers (making *all* of their functionality available -- like
front panel displays, built in scanners, wifi adapters, etc.),
film/paper scanners (and their feeders), DSL/cable/telco modems,
colorimeters, etc.
Often, some *crude* support for some *portion* of the device is
available on a non-Windows OS -- but, big portions of the device
(i.e., most of the "value added" functionality) is ONLY supported
on Windows. Often, on just a particular VERSION of windows.
The folks I know who *do* run Linux (mostly Ubuntu and Debian)
confirm this "lack of support", there. I.e., it doesn't do
me much good if the host OS is "kind" to the device if it
doesn't *support* it! :<
A list of some of the things in my "toy box":
- Motorola SBV5220 SURFboard Cable Modem (will Linux let me see
the state of the two removable backup batteries? Will Asterisk
support the VoIP features?)
- Linksys/Cisco RTP300 Broadband Router w/ 2 phone ports (again,
what VoIP support do I get?)
- Symbol SPT1733 Pocketable Computer w/ Wireless WAN (Will the
"server end" of the support tools run under Linux -- wirelessly
*or* via (slow) serial port? Is the SDK supported, there?)
- Various USB Wireless a/b/g/n adapters (the obvious question)
- USB microphones
- M-Audio MobilePre USB (think of it as an external sound card
with XLR inputs, support for phantom power, etc. -- what
audio capture/processing tools will work with it? And, will
they *really* work? Or, just "almost/sorta" work?)
- Creative SoundBlaster Extigy (similar to above -- will I be
able to use the optical I/O's?)
- TASCAM US-122L (as above)
- ULinx USOTL4 RS422/485 Serial Adapter (will the multidrop capability
be supported?)
- D-Link i2eye Broadband VideoPhone (which video conferencing features,
if any, will be supported?)
- SlingBox SB100 (is there a "SlingPlayer" equivalent available?)
- Fujitsu DynaMO 640 Pocket (will I be able to read, write, eject
and *format* media?)
- Ricoh 5060E 1.3GB (same as above)
- PinnacleMicro Vertex 2.6GB (same as above)
- Nikon LS-2000 scanner (will it automatically advance to the next
frame when using the motorized film scanner?)
- HP 7490C scanner (will it support the ADF? will the front panel
display and controls work?)
- UMAX PowerLook 2100XL large format scanner (does it include
color calibration software?)
- Ambir DocketPort 665 (will it even *see* this small scanner?)
- Lexmark S605 All-in-one (in addition to the scanner and printer,
will it let me configure the WiFi adapter therein? Access the
same front panel features?)
- Logitech NuLOOQ "puck" (which motion control features will it
not support?)
- SpaceBall 4000FLX (recognized? driver hook?)
- Epson EMP-835 Projector (can I control the projector remotely?)
- eBeam EB3-1U whiteboard scanner (can I see whiteboard activity
in real-time?)
- Dazzle DVC150 (can I capture and synthesize live video/audio?)
- Sony VRD-VC10 (as above; can I write DL discs?)
- ColorVision Spyder "colorimeter" (driver?)
- ActivCard smartcard reader (PCMCIA)
- Other media types (MO, SuperDisk, ORB, VXA, DAT, DLT, etc.)
- Keyboard wedges (MICR, magstripe, barcode, etc)
- whatever new gizmo a client wants me to deal with *tomorrow*
All of which are supported by Windows. I'm no "fan" of Windows.
OTOH, if that's where device manufacturers are speding their
support dollars, I'm pretty much stuck running it (on at
least some of my machines :< )
[I'm not interested in "Oh, <someOS> supports <someParticular> device"
unless <someOS> also supports ALL of the above :< ]
And, that assumes the applications that use these devices will
run "effectively" with less physical memory, etc.
"Foreign" OS's usually don't support lots of things. Emulation just
doesn't cut it, IME. There's *always* something that doesn't quite
work right. I'm not interested in "free software" if I'm spending
thousands of dollars of time chasing down "fixes" and wondering
why some feature doesn't quite work right (who do you call? what
do they *care* about your problem?)
With Windows as the host OS, when you plug in the USB device, the host
will try to use it first. That means it will try to find drivers,
configure the device, etc. With enough "cancelling" you can minimise the
effects, but you can't avoid them entirely - as you say, Windows has a
crappy architecture for this sort of thing.
Exactly. Windows thinks it is the center of the universe. And,
application/driver developers FOR windows have the same attitude!
Things run/install with elevated privilege -- that don't *need*
to. Things clobber/hijack preexisting settings/configurations
without even *telling* you that they've done so. Plug in device
*before* installing necessary software/driver and the device
refuses to work, when the software *is* installed, etc.
OTOH, if the devices are going to work, it's under windows where
they stand the greatest chance of working! :-/
This is one of the (many) reasons why Linux is a better choice of host
OS than Windows.
The list of devices, above (and the software that accompanies them),
is one of the reasons why it *isn't*! :<
However, even with Windows as the host, the system is quite good, and
the great majority of the changes, drivers, installations, muck-ups,
etc., involved with the USB device will be in the guests only.
I'll install VB on one of these little boxes as a "guest application"
(i.e., I will image the drive *before* installing it so I can
remove all traces of it, thereafter) and see how it fares. I'll
see what sorts of "device" problems I encounter. Then, try to
put a number on the "performance hit" applications take in that
environment (perhaps render a video and see how long that CPU-bound
task takes where no I/O is required)