The real “legacy” network adapter
Over the years I have made a hobby of collecting real copies of the hardware that we emulate inside of our virtual machines. And this is one of my favorites – the quad-port Intel 21140 network adapter:
One of the interesting problems that we hit while working on Virtual Server was:
How do you support up to four Ethernet adapters and four SCSI adapters at the same time?
You see, you can only have so many PCI devices in a computer (even a virtual one). The answer ended up being quite simple: multi-function devices. So when you are using Virtual PC / Virtual Server / Hyper-V and you configure 2 or more network adapters (legacy network adapters for Hyper-V) what you are actually configuring is a single network adapter with multiple ports on it – each with its own MAC address.
Of course; this makes no difference to the user. It still looks and feels like you have multiple separate network adapters. The only noticeable benefit is that it actually works!
Cheers,
Ben
Comments
Anonymous
April 19, 2011
Hi Ben, I see the trick but I've a problem with this emulated in Hyper-V and it's that I can't get this emulated NIC to work with VLANs. This problem doesn't happen with the syntetic device in the same VM with the same configuration. Cheers, Akuma.Anonymous
April 19, 2011
We had an Adaptec version of that card (quad port 21140) in our firewall for many years. We only removed it when we moved the firewall from Linux to Windows Server 2003 and the card didn't work any longer (no drivers). I think it got recycled recently, over my packrat objections.Anonymous
April 19, 2011
I have a question after I re-read the post - why not add on PCI bridge cards (cf. blogs.msdn.com/.../197064.aspx)? Was multi-port easier than multi-card + bridge?Anonymous
April 19, 2011
Cool hardware! I still use such a intel card in my BSD-router :)Anonymous
June 27, 2011
Do you also have a picture of the floppy drive? From some experiments with the virtual BIOS setup (DEL-key on boot) I guess that there "really" (= virtually) is only one drive (no B:, only A:), and that it does not support 2.88MB.Anonymous
July 31, 2011
Can you explain why the devices in a virtual machine have to be emulated rather than being able to use "real" device drivers that correspond to the actual hardware in your machine ? I mean I'd like to be able to go into a virtual machine and select "update driver" for an emulated device, especially for video, and install the actual latest driver for my actual device. Don't you lose a lot of speed and features by having to be forced to use emulated versions of hardware that is 10 years old ?Anonymous
July 31, 2011
MikeBaz - Doing a multi-function device is easier for us, as there is less to emulate (no need to emulate a second PCI bridge) Dean - Most hardware we have today is not designed with virtualization in mind. If you take a typical network adapter there are a couple of problems: 1) It can only handle one operating system talking to it at a time. So there needs to be software abstraction to allow multiple operating systems to work. 2) Most data is moved using "DMA" - which stands for "direct memory access". Virtual machine memory is all abstracted from the physical memory - so DMA does not work. Cheers, BenAnonymous
January 08, 2012
The info i found on this site was helpful Thanks