NVIDIA Begins Releasing Documentation For Nouveau
sl4shd0rk writes "Nvidia, perhaps inspired by the infamous Torvalds Salute, has decided to do something about its crummy image with Open Source developers. The company has begun to release public documentation on certain aspects of its GPUs. Reactions from developers have been mixed; much of what's already been released wasn't a big mystery, but Nvidia says more is coming and they will also provide guidance in needed areas as well. Linus said, 'I'm cautiously optimistic that this is a real shift in how Nvidia perceives Linux. The actual docs released so far are fairly limited, and in themselves they wouldn't be a big thing, but if Nvidia really does follow up and start opening up more, that would certainly be great. They've already been much better in the ARM SoC space than they were on the more traditional GPU side, and I really hope that some day I can just apologize for ever giving them the finger.'"
Torvald's comments to Nvidia were to do with Optimus (their GPU switching stuff), not their closed graphics driver
Sort of. The userspace interface is the ABI that linux keeps constant. Basically all the syscalls, ioctls, and Linus even likes to include the nuances of how they operate as part of the ABI. This is the stuff that must not change, and it does a pretty good job at keeping it constant. Supposedly apps compiled to target the 1.0 kernel can still run just fine on the latest kernel, provided the libraries it links to also maintained good ABI stability.
The ABI breakage that occurs happens with in kernel functions themselves. These are things that are not considered standardized API functions or syscalls that should be accessed by userspace. But, in order to produce closed source drivers for Linux, companies like NVIDIA will need to link to these functions. Linking to these is of course a violation of the GPL, though, so NVIDIA gets around it by writing an open source shim that gets compiled when the driver is installed, which then connects to their more proprietary parts. One of the points of the GPL and allowed in kernel ABI breakage is to make it more difficult for people to keep their drivers closed source and outside the kernel.