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.

  • UltraFiestaMango@lemmy.ml
    link
    fedilink
    English
    arrow-up
    15
    arrow-down
    20
    ·
    10 months ago

    But why is it a problem if they call on parts of the kernal they shouldn’t? is it just a privacy concern, does it also impact performance? i don’t understand

    • patatahooligan@lemmy.world
      link
      fedilink
      arrow-up
      34
      arrow-down
      2
      ·
      10 months ago

      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.

      • fubo@lemmy.world
        link
        fedilink
        arrow-up
        8
        ·
        edit-2
        10 months 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.

    • cobra89@beehaw.org
      link
      fedilink
      arrow-up
      10
      ·
      10 months ago

      Because the license for the patents that the Linux kernel is utilizing says that the code utilizing those patents must be open source. So therefore Nvidia is accessing those parts of the kernel illegally and against the license the Linux Foundation has. The Linux Foundation could lose the rights to use those patents if they’re not respecting the license.