Ndiswrapper versus Linus
Ndiswrapper, a piece of software that emulates part of Windows to allow Windows-based wireless drivers to be used on Linux, has been broken by the latest version of the Linux kernel.
Linux tolerates non-open-source modules, but gives kernel developers the option to exclude their code from being accessed from a proprietary module. The code surrounding this mechanism has been changed to exclude Ndiswrapper from being able to access "GPLONLY" code in the kernel.
One of the Ndiswrapper developers submitted a patch to get things back the way they were, but Linus (head developer of the Linux kernel) does not want to accept that patch. His reasoning is that while Ndiswrapper itself is open source, it is a wrapper that allows proprietary code to run on Linux, and therefore should be excluded from GPLONLY code.
This is a serious situation, as many people can only get their wireless cards to work when they use Ndiswrapper, and Ndiswrapper only works when it has access to the GPLONLY parts of the kernel. If future versions of the Linux kernel break Ndiswrapper, vast numbers of people could be excluded from their wireless networks.
My reasoning is this. KVM is a virtualiser that allows other operating systems to be run on your Linux machine. It puts a free and open source module into the kernel. Ndiswrapper essentially virtualises just a single driver, not an entire operating system. Why are these packages being treated differently? KVM is often used for running proprietary operating systems, and Ndiswrapper could be used to run open-source Windows-based wireless drivers, if any exist.
Excluding Ndiswrapper from accessing GPLONLY kernel modules is like saying "Well, it's possible you could be running non-GPL code within this program, so we'll deny you access no matter what you're running". It's like denying virtualisers from running because they might be used to run Windows, or even worse, non-GPL open-source operating systems like FreeBSD. What's next - denying Firefox access to TCP/IP because there's a possibility the user might have Flash Player installed, or because they might visit a website with non-open-source scripting on it?
I have simplified the situation slightly in order to make this article accessible to a wider group of people, but the comparison still holds.

Comments