Proprietary drivers are not viable.
We have some now, and but we shouldn't have them in the future.
They're not viable, the drivers must be open source.
Its the same point of having exceptions and EXPORT_SYMBOL / EXPORT_SYMBOL_GPL you don't necessarily WANT everything to be affected by the viral nature of the GPL. Sometimes you WANT things to be able to freely interface with the kernel without necessarily being open source.
Think of the X server.
KMS is a GPL interface, The X Server is MIT licensed. We have closed source drivers though because they replace the GPL parts with their own code and then interface through the X server.
Proprietary drivers are not viable.
We have some now, and but we shouldn't have them in the future.
They're not viable, the drivers must be open source.
While I agree drivers should be opensource, thats not the current reality. We have to work within bounds and realities of...well, reality. Intel is open source and doing great. Radeon is shaping up nicely aside from power management and video decoding, Nouveau....is a mess. Though hopefully the open source Tegra code will give some insights into the general design of Nvidia hardware and therefore give the Nouveau devs a boost.
It's typical for projects to have a copyright license at the top of every single file. The kernel isn't exceptional in that regard. Any code that's brought in to the kernel can be whatever license you want, as long as it is compatible with the rest of the kernel - which means it has to be compatible with GPLv2 since everything else in there is less restricting.
The "global" license, doesn't really exist. It's just a shorthand for saying, this is the most restrictive licenses we have in there, so everything else has to comply with it.
The kernel graphics drivers, for example, are all BSD licensed, so that they can be ported over to other OS's more easily if anyone wishes to do so.
When you combine BSD code with GPL code (as happens in the kernel), it becomes GPL. The combined work *must* be under GPL. The reason why non-GPL programs can use the kernel is because of exceptions, not because parts of the kernel don't use the GPL.
As I mentioned earlier (but no one seemed to notice), you wouldn't be able to run non-GPL software on Linux otherwise.
Well, sort of. The code that is linked together becomes GPL at that point. However, the source files can still be BSD. Or, dual-licensed BSD and GPL if that is what you prefer to think of it as. But for this argument, linking the nvidia drivers into a compiled kernel, you are correct.
The GPL is a viral licence, when you compile it, all of that binary is GPL. The only exception is the bright line towards normal system calls.
The PRIME layer allows drm drivers to expose an ioctl which can pass objects from GEM to a dma_buf file descriptor. An ioctl is a fairly standard way to present a system call to interact with hardware that is difficult to access though more standard system calls.
Prime itself really isn't a shim per say, but should be safe to implement within a shim that enables a proprietary driver. Whereas a shim that exposed dma_buf directly is in legally dangerous territory.
So Nvidia got away with their blob and optimus on Linux after all, without contributing anything when it comes to Free software, FOSS and Linux itself.
Crap.
When are people going to start defending and demanding freedom (Free Software) and not just demand close-source solutions like this one that Nvidia is providing?
This is really disappointing.
Nvidia is destroying what made Linux so great in all these years and you guys are like "Horraay! We'll have our optimus!".
You guys are idiots.
Last edited by asdx; 02-17-2013 at 02:04 AM.
Wah, watch out, the Linux/GPL haters crowd is around!
But yeah, pretty interesting move isn't it? I mean as a follow up they could simply create such constructs for any kernel API they need access to and laugh at Linus and all the other stupid kernel devs and their GPL kernel pipe dream.
Welcome to the real world!