Wine device drivers proposal
Kuba Ober
kuba at mareimbrium.org
Fri Apr 1 16:15:04 CST 2005
> I am not trying to _load_ a Windows driver (that
> either requires kernel support for the Windows DDK,
> like ndiswrapper has, or emulation of an entire x86,
> like bochs does).
Not really. It just needs some sort of device-class-specific forwarding
protocol. usbfs and libusb already do that, and you should be able to run any
windows driver that way without even touching the kernel. ndiswrapper does
what it does because they want to expose non-usb devices and to the whole
linux system at that. I.e. they support pci devices as well as usb. If they
wanted to support usb only, it's all plain userspace. You can emulate network
adapters in userspace using TAP or however it's called, and you can talk to
arbitrary usb devices from userspace via usbfs and libusb.
In fact, for a wide variety of PCI drivers out there it should be perfectly
feasible to provide a "short-circuit" kernel driver that could expose full
access to a PCI device do a userland application, thus allowing wine to
support arbitrary PCI devices as well. Considering that 2.6 kernel already
has hardware abstraction that disconnects actual hardware accesses (like
port/read writes and so on) from the logic of the PCI device drivers, it
wouldn't be that hard to make such a gizmo.
http://vtun.sourceforge.net/tun/faq.html
http://libusb.sourceforge.net/
Cheers, Kuba
More information about the wine-devel
mailing list