Hacker News new | ask | show | jobs
by 1wd 2596 days ago
I'm surprised, is integrating a Linux kernel with Windows not a GPL violation? Is this a "mere aggregation" situation? Are the Linux kernel and other closed source Windows code at no point linked, or exchanging complex internal data structures?
5 comments

Given that it requires HyperV it’s running in a manner similar to a VM. That doesn’t require linking and any I/O occurs via the normal channels (CPU interrupts, serial console, etc).

This is similar to how running a userland application on Linux doesn’t require the application to be GPL’d because it’s not directly linked to the kernel. While it interacts with the kernel it is not derived from it.

This is fairly classic engineer thinking and what I was referring to in my comment below.. you can wrap a GPL library in its own program, put that program on a separate VM on a separate physical host in a separate physical building, talk to it only over a network interface and your program's resulting interaction with it might still be construed as linking.

Similarly, your program might statically link against a GPL'd library, but only pass bulk data through a programming interface in a coarse manner, and the result may not be considered linking. The FSF FAQ even explicitly addresses this case.

GPL leaves these kinds of mechanisms blurry and ill-defined (I presume intentionally), it's just that as engineers we are commonly only taught how violations manifest in the usual case.

I think I agree with your overall understanding. It would be interesting to learn what FSF's position is regarding WSL2.
The interpretation around what "linking" means in the context of the GPL is a full-time job. At the least, the literal interpretation I was raised with has never been the official position of the FSF. For example, just because you link a library statically doesn't mean you're GPL-violating. You need to for example, swap complex data structures in some complex control flow to cross the line.

Even then there are still more exceptions for 'runtimes' and suchlike where while in a literal sense, the final assembled program when executing is linked against GPL source the result is not considered to be covered by the GPL.

None of this stuff is actually part of the license text -- it's built on precedence and common understanding. These things are a lawyer's job, we're just engineers

It’s just another app that runs on Windows. They’re moving from a white-box implementation written by Microsoft of Linux kernel with no GPL code, to just shipping the thing in a VM and be done with it. I can’t say I blame them, WSL always had its rough edges and it breaks in unexpected ways.
I was thinking about this issue on binary blob driver like nvidia's.

GPL is a clever hack of copyright law. It grant derivative works a copyright permission under the condition of accepting the same license.

Now, Windows kernel and Nvidia's binary blob driver exist without relying on Linux kernel at all. How could they be considered as a derivative work in terms of copyright law? Since GPLv2 relies on copyright law, it has no effect on situation where copyright law doesn't allow exclusive right.

For Nvidia's driver, Nvidia released a thin shim wrapper code as GPL which interface between Linux API and Nvidia binary blob driver API. But the core Nvidia binary blob driver existed independently from Linux kernel, it can't be a derivative work of Linux kernel.

For WSL2 case, Microsoft may take the same approach. They may release a thin shim wrapper which interface Linux kernel and Windows as GPL. But Windows kernel itself cannot be a derivative work of Linux kernel if it's separated well.

At least, that's my conclusion. I'm not a lawyer.

> But the core Nvidia binary blob driver existed independently from Linux kernel, it can't be a derivative work of Linux kernel.

Many kernel developers are of a different opinion, and consider Nvidia in breach of their license. The fact that nobody has sued does not mean that they are in the clear. Don't consider the use of a thin shim to be some sort of license firewall.

Anyone other than a select few multinationals probably shouldn't consider legal disagreements with their partners a valid business strategy.

Why would it be? There are specific things you have to do for your code to be considered "integrated" with GPL code and as long as you avoid that there's no issue.