For example, suppose a compatibility layer is developled that can use Windows driver binary directly in Linux kernel (feasibility of such a layer is another story which is also discussed bellow), then GPL doesn't apply to the driver, or every Windows driver should be open source.

The reason is that although the driver can be linked into Linux kernel and used, the developer of the driver develop the driver for Windows, not for Linux, and the binary is generated without any Linux binaries. It is the end user that do the link to Linux kernel, that shouldn't force the developer to release the source.

But if so, is this sort of a vulnerability of GPL? Suppose the compatibility layer exists, then to develop a Linux kernel driver without release the source, you just need to develop a Windows driver and release it for Windows.

This compatibility layer should be very hard to develop, but at least it is not impossible for some specific type of driver if the Windows driver source is available, especially for the drivers whose developer intend to let the driver work with the compatibility layer and develop and test it in that way (but it can't use any specific API in the compatibility layer for sure).

  • 3
    There are kernel calls which can only be accessed under GPL - especially those useful for some drivers Jan 19, 2021 at 7:53
  • In fact, what you're describing is exactly the abuse of GPL that nVidia is using to write their Linux drivers. From what I can see it was patched in 5.9
    – jaskij
    Jan 23, 2021 at 14:47

1 Answer 1


Does GPL apply to proprietary software that is linked in through a compatibility layer

Yes, the GPL also puts requirements on transitive dependencies. In particular the requirement that the source code must be available under a GPL-compatible open-source license.

Thus, if you were to create a compatibility layer to load (closed-source) Windows device drivers into Linux, the result of that combination can only be distributed under the GPL license and as you don't have the rights to do so with the Windows device driver, you don't have permission to distribute the combination at all.

At first sight, you might say "well, ok. The driver isn't distributed with a Linux distribution anyway and just needs to be installed by the user." But take into consideration that selling/giving a computer containing that combination is also a for of distribution that invokes the GPL requirements. Thus, a computer manufacturer/seller can't pre-install those Windows drivers on a Linux system and the (possibly non-technical) end-user has to do it.

This is all just considering the licensing aspects. I won't even start on the technical aspects or the social ones.

  • "a computer manufacturer/seller can't pre-install" Thats a problem, but an "Open source driver pre-install plus optional OEM closed source Windows driver download and install which gives a better user experience (or such OEM driver doesn't make sense to exist)" sounds not that bad. Its like if you want more feature and performance, install the OEM driver.
    – jw_
    Jan 21, 2021 at 23:39
  • BTW can an auto upgrader from the OEM be preinstalled to get one-click install of the OEM driver and still allow the closed source?
    – jw_
    Jan 21, 2021 at 23:40
  • Can you check my other question opensource.stackexchange.com/questions/11133/…, which seems to be more feasible.
    – jw_
    Jan 21, 2021 at 23:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.