this post was submitted on 30 Aug 2023
786 points (98.6% liked)

Linux

46819 readers
1186 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

Luis Chamberlain sent out the modules changes today for the Linux 6.6 merge window. Most notable with the modules update is a change that better builds up the defenses against NVIDIA's proprietary kernel driver from using GPL-only symbols. Or in other words, bits that only true open-source drivers should be utilizing and not proprietary kernel drivers like NVIDIA's default Linux driver in respecting the original kernel code author's intent.

Back in 2020 when the original defense was added, NVIDIA recommended avoiding the Linux 5.9 for the time being. They ended up having a supported driver several weeks later. It will be interesting to see this time how long Linux 6.6+ thwarts their kernel driver.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 35 points 1 year ago (1 children)

It is copyright infringement. Nvidia (and everyone writing kernel modules) has to choose between:

  • using the GPL-covered parts of the kernel interface and sharing their own source code under the GPL (a free software license)
  • not using the GPL-covered parts of the kernel interface

Remember that the kernel is maintained by volunteers and by engineers funded by/working for many companies, including Nvidia's direct competitors, and Nvidia is worth billions of dollars. Nvidia is incredibly obnoxious to infringe on the kernel's copyright. To me it is 100% the appropriate response to show them zero tolerance for their copyright infringement.

[–] [email protected] 9 points 1 year ago* (last edited 1 year ago)

To expand a bit:

The GPL-only symbols restriction is there for the benefit of proprietary developers. It ensures that their work doesn't become a "derivative work" of the kernel's internals, by sticking to using only the published and documented interfaces. Using published APIs doesn't make your work a legally derivative work of the system behind those APIs (i.e. the kernel).

If your code needs to mess around in the kernel internals, it is very likely a derivative work of the kernel; which means you need the permission of the kernel authors if you want to publish that code legally.

The only terms under which the kernel authors grant that permission are the terms of the GPL.

By circumventing the GPL-only symbols restriction, Nvidia is demonstrating that their driver code needs to mess with kernel internals, not just the published APIs. And that means that it probably is a derivative work of the kernel. Which, in turn, means that those drivers must be published under the GPL in order to avoid violating the kernel copyrights.

Basically: Linus drew a line in the sand and said "As long as you don't step over this line, you're not pirating the kernel by releasing proprietary drivers." And Nvidia stepped over that line.