Is there a good reason Linus et al. haven't supported windows drivers in the kernel?
Linux - HardwareThis forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Have you actaully tired any of the other guys sound cards? Cause your 1st sentance reads like you work for creative.
IIRC the X-Fi USB is another of the creative 'rebranded' cards....its actually got the CA01XXX sound chip, which is the same basic series as from the Audigy SE (S*** Edition).
Even if creative had decent drivers and support linux, I'd still avoid any of the Creative cards. Creative are IMO one of the worst manufacturers around, they are totally hopeless and love creating misleading branding.
If I worked for Creative I wouldn't
a) Have the cheapest card ever with CMSS-3D
b) Complain of the situation it is working only on windows
Have you actaully tired any of the other guys sound cards? Cause your 1st sentance reads like you work for creative.
IIRC the X-Fi USB is another of the creative 'rebranded' cards....its actually got the CA01XXX sound chip, which is the same basic series as from the Audigy SE (S*** Edition).
Even if creative had decent drivers and support linux, I'd still avoid any of the Creative cards. Creative are IMO one of the worst manufacturers around, they are totally hopeless and love creating misleading branding.
What technologies do others have that beat CMSS-3D?
Well, I heard of some solutions of external devices that just bypass the OS completely, though that sounds expensive (compared to just running Windows, if the choice isn't hard between the OSes).
It would be time only if companies made money off of this idea. In most cases, they do not have a financial reason to do more work. They have no desire to let the competition get detailed access to their products. When an opensourced driver is offered, it also exposes the hardware to reverse design.
In fact, at one point I think this was specifically mentioned by AMD on their website as to why their Linux drivers lag so far behind when a new piece of hardware is offered.
In fact, at one point I think this was specifically mentioned by AMD on their website as to why their Linux drivers lag so far behind when a new piece of hardware is offered.
I start suspecting a JIT compilation of a windows driver to a linux driver that is done in such a low level might be possible, and not even expose that much from an engineering standpoint. Though I've no way of knowing if it's actually possible.
I'm a bit confused about it: why should any os support drivers written to another os?
There is absolutely no reason for this. Not to mention that the kernels are completely different i.e. microkernel vs monolithic. I won't even mention the difference in licensing (proprietary vs FLOSS).
A little bit off topic but it reminds me of a hot discussion on the kernel mailing list when some guy happened to ask him if there was a good reason for not using c++. The answer was *colorful* indeed...
A little bit off topic but it reminds me of a hot discussion on the kernel mailing list when some guy happened to ask him if there was a good reason for not using c++. The answer was *colorful* indeed...
The difference though is that I'm not saying something totally stupid.
C is a systems language. A kernel is the de facto project it should be used on. Tons of people in fact use it for the totally wrong projects.
But a wrapper for windows drivers (that works) isn't a horrible idea. In fact, it would bring tons of people to the linux desktop.
Let's be honest here, linux kernel has the smartest people on the community, the rest are nothing compared to them, not by a long shot, by a monumentally large shot. If they want to do it they will do it.
They could make a wrapper that works _perfectly_, let alone I suspect they could make perfect wrapping of executables if they wanted to. I suspect it's politics more than technicalities after a point.
As to the technical reasons, consider that the Windows drivers are written to run on a Windows OS. Almost every one of those drivers, in order to run fast enough to work properly, uses hidden calls to the Windows kernel. Those call protocols and results of using them are NOT documented in public, and companies (and programmers) that write windows drivers must sign non-disclosure agreements before they can see any documentation about those "propitiatory" system calls.
In the driver's binary code (which, if you have a copy, you are not licensed to decompile) such calls are implemented as branches to some location in the kernel (which you are also not licensed to decompile). What the ndiswrapper does is to use the Wine project's simulation of the Windows OS (created by examination of the interprocess communication in a Windows system, not a decompilation) to run the driver.
Note that Microsoft deliberately changes the "hidden" system calls with every new OS release, and, sometimes, new "service pack." That forces the Wine project people to play "catch up" and results in a non-functioning ndiswrapper for most new hardware drivers.
Bottom line: The only way that the Linux kernel could support a (propitiatory) Windows driver would require that it support the same (undocumented and unknown) processing after a branch to the same (undocumented and unknown) location the the kernel. This, to put it mildly, would be a "bad idea." And it would probably require that all the kernel developers sign the non-disclosure agreements and pay the (massive) fees to MS. That, again, to put it mildly, is not very likely.
The difference though is that I'm not saying something totally stupid.
Not stupid, but a little foolish, because
Quote:
But a wrapper for windows drivers (that works) isn't a horrible idea.
Yes it is. As several people have pointed out, making one OS's kernel compatible with another does not make sense. The goal is to make an OS function as well as it can. That goal is impossible if the OS must include foreign code in order to run foreign programmes.
Quote:
In fact, it would bring tons of people to the linux desktop.
Nonsense.
Quote:
I suspect it's politics more than technicalities after a point.
Just like Toyota using Toyota engines and refusing to use Ford engines is political. Different operating systems means different. I did not think it was such a difficult concept to understand.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.