Slashdot Mirror


Linux: the GPL and Binary Modules

An anonymous reader writes "When first made available in September of 1991, the Linux kernel source code was released under a very restrictive non-GPL license requiring that the source code must always be available, and that no money could be made off of it. Several months later Linus changed the copyright to the GPL, or GNU General Public License, under which the kernel source code has remained ever since. Thanks to the GPL, any source code derived from the Linux kernel source code must also be freely released under the GPL. This has led many to question the legality of 'binary only' kernel modules, for which no source code is released. Linux creator Linus Torvalds talks about this issue in a recent thread on the lkml."

18 of 657 comments (clear)

  1. Linux linkiing analogy by rubypossum · · Score: 5, Insightful

    Maybe I'm wrong here but perhaps this is a way to look at it. If I wrote a story that was derived from the LOTR then it would not be a derived work in the legal sense it would be copyright by me. Although I'd have to get permission to use the trademarked names etc. Isn't this a bit like the linux kernel issue? The module is not directly derived from the kernel it is an extension that uses the hooks that were created in the previous "story". Maybe I'm on crack here....

    --
    I have a theory that the truth is never told during the nine-to-five hours. - Hunter S. Thompson
    1. Re:Linux linkiing analogy by rubypossum · · Score: 5, Insightful

      On the other hand... if I were to take chepter 5 from the LOTR and change it a little bit, include it in my story and then publish it then it would be a derived work. Just like a company taking net/socket.c, modifying it, then including it in their own module and not distributing the source.

      --
      I have a theory that the truth is never told during the nine-to-five hours. - Hunter S. Thompson
    2. Re:Linux linkiing analogy by kscd · · Score: 5, Interesting

      Derivative works in general are a grey area, but in your specific example I would have to say that you are in fact wrong. Not wrong according to the original U.S. copyright law, but definitely wrong according to what we have now. You say, "If I wrote a story that was derived from the LOTR...". That's it. You wrote a story derived, it's a deritave work. That simple. For example, let's say you would like to re-write Gone with the Wind from a slave's perspective. Completely different story (as you can imagine), but characters, plot, etc. derived from the original. If you did this, you would wind up in court, much like the person that did.

    3. Re:Linux linkiing analogy by adrianbaugh · · Score: 5, Insightful

      So you're saying that it's okay for (say) nVidia to distribute a binary driver module (because it is new to the kernel rather than modifying it) but the bits that may require kernel modification or that hook directly into the kernel (their wrapper) do need to be open?
      Sounds fair enough to me.

      --
      "'I pass the test,' she said. 'I will diminish, and go into the West, and remain Galadriel.'"
      - JRR Tolkien.
    4. Re:Linux linkiing analogy by mabhatter654 · · Score: 5, Insightful
      The nVida drivers are the clasic test case for this...

      Generally, if I sit down with Linux and write "hello world" using standard C calls and compile with normal methods, that's mine and not a derivitive work at all. The problem comes with drivers such as nVidia's. They are not just "windows" drivers with a wrapper for linux. They get into the system and re-route system API calls, much about with non-standard kernel features and the like. And that's the problem with "bianary" modules. The problem with nVidia's approach is that it's hard to tell where their drivers start and the kernel begins...heck, they could rewrite half the kernel and simply override it in their module, it would be hard to fiugure out for normal users...it's that poteitial for abuse that is the cause of such arguments.

      On nVidia's defence though, Ther was talk for 2.6 about removing the API calls they try to legally use in favor of others that would require 100% GPL code. That's also a problem because certian vocal parts of the community are actively trying to make the current scheme too "sour" for compaines like nVidia to publish their code. On a side note, there are certian things nVidia CAN'T publish if they have to use GPL! Much of the hardware they build is "patented" from outside sources...they would get into IBM/SCO style lawsuits...but without any cause to defend themselves! That leaves them [and us] with bianary drivers--or NO drivers.

      My opinion right now is that Linus is sticking his head in the sand on this issue...other stuff I've read he seems to fully support how nVidia is working, but then allows changes to APIs that clearly theaten that way of working???? This IS a key issue with linux...If companies can't use proprietary, binary modules to protect their/others IP, then Linux will never be a truly "first class" OS. What's needed is for the community to "standardize" the rules [make them just a bit more attractive to business?]...and stop the FSF and such from "legal creeping" against the people who go out of their way RIGHT NOW to support Linux.

  2. Linux driver model doesn't help by Vanders · · Score: 5, Insightful

    This "grey area" exists because there is no clearly defined boundary defining the seperation between the kernel and the drivers. Modules are parts of the kernel which have not been linked yet. When they're required, they are loaded and linked with the kernel.

    The fact that Linus states that there is no exception must worry a lot of companies out there who are producing binary drivers for Linux E.g. nVidia, or SciTech (Who started the LKML thread, after all!) Are nVidia's kernel modules under the GPL? If the possibility exists that they are then I would expect them to suddenly get cold feet over Linux.

    If the kernel had a proper boundary with E.g. a set of API's that the kernel and drivers can use to communicate with each other then it would help to solve the issue of what is and isn't "the kernel". For example in Syllable drivers are ELF images which are loaded by the kernel ELF loader. The drivers are loaded under the kernels memory space but there is a very well defined API between the two, and a very clear seperation between them. Under this model I can argue that the kernel is actually being linked to the driver, so the driver can be under any licence while the kernel remains under the GPL. There is no "cross pollenation" between the driver and the kernel. Which is a good thing IMHO, if it avoids issues like the ones being raised on the LKML.

  3. Re:Pragmatism by pe1rxq · · Score: 5, Insightful

    When binary modules are allowed it doesn't help linux in any way....

    Just look at the nvidia drivers: The only thing you get are kiddies yelling that nvidia has such great linux support. Meanwhile linux didn't get any better from it, kernel developers get lots of bug reports caused by the nvidia black box (One of the reasons the 'tainted' flag was introduced), I still can't use the nvidia cards on platform not-quite-obscure-nividia-just-didnt-bother-compil ing-their-driver-for-it, and most importantly you don't know what the driver is doing on your system (its a black box afterall)

    Jeroen

    --
    Secure messaging: http://quickmsg.vreeken.net/
  4. I love this guy. by the+gnat · · Score: 5, Funny

    Linus really calls it the way he sees it, doesn't he?

    Your logic is fundamentally flawed, and/or your reading skills are deficient.

    You are a weasel, and you are trying to make the world look the way you want it to, rather than the way it _is_.

    Wow. I hope someday I'm enough of a badass to be able to flame people like that and get away with it. (That said, it's particularly impressive how Linus can fling these barbs at people and still come off as a reasonable guy, unlike quite a few open-source "leaders". Having a sense of humor seems to help quite a bit.)

  5. Fair Use by Anonymous Coward · · Score: 5, Interesting

    So, I think there's lots of things to quibble about here, and appended is part of the law that might prove relevent. I'll try to make a case for a driver company attempting to create a non-GPL driver that uses snippets of GPL'd code in a 'fair use' way.

    The key I think is if you can convince a judge that what they are doing is furthering 'research'. But the rest of the tests obtain:

    1) Binary Linux drivers are generally release with a non-commercial nature - people don't charge for the software (although the opposite case, that you have to buy the hardware, could be argued to contradict this) - specifically, note that the word "including" modifies the two called out styles of use (commercial and non-profit eduacation) - thus other things might very well cause this section to obtain.
    2) The copyrighted work is humungus and designed to be used in explicitly this manner
    3) The portion of the whole is miniscule - it could be characterized as a 'quote' from an original source
    4) The effect on the market value of the copyrighted work can be argued (successfully, I think) to be _positive_.

    One other thing: I am under the impression that you can't copyright tables of raw data (such as names and their numeric mappings), so with Linus, I'd argue the #defines and such don't count for these calculations. The comments can't be said to contribute to the (binary) final work, even if someone read them once. Linus noted, and I agree, the compilable code (macros, subs defined in .h files), is what matters, and not all of the compilable code even in the subset of files referenced are used to create the .obj.

    I think I've made a (albeit shakey) case for 'Fair Use' in this way.

    (ObSCO: I wouldn't be _at all_ surprised if SCO is going to attempt to argue that the overwhelming weight of the detrimental effect of #4 on SCOnix's value will outweigh the relatively trivial amount of infringement of #1, #2, #3 should IBM attempt to suggest fair-use of a couple of lines here and there)

    ------
    Title 17, Chapter 1, Section 107
    Notwithstanding the provisions of sections 106 and 106A, the fair use of a copyrighted work, including such use by reproduction in copies or phonorecords or by any other means specified by that section, for purposes such as criticism, comment, news reporting, teaching (including multiple copies for classroom use), scholarship, or research, is not an infringement of copyright. In determining whether the use made of a work in any particular case is a fair use the factors to be considered shall include --

    (1) the purpose and character of the use, including whether such use is of a commercial nature or is for nonprofit educational purposes;

    (2) the nature of the copyrighted work;

    (3) the amount and substantiality of the portion used in relation to the copyrighted work as a whole; and

    (4) the effect of the use upon the potential market for or value of the copyrighted work.

    The fact that a work is unpublished shall not itself bar a finding of fair use if such finding is made upon consideration of all the above factors.

  6. Re:Pragmatism by jusdisgi · · Score: 5, Interesting

    Whatever man, those modules aren't that bad.

    1)I'm interested to see these bug reports due to the "nvidia black box"...you are aware that a good chunk of this thing (and all the kernel interface) is available in source, right?

    2)And what's this about not having one compiled for your archetecture? Have you ever installed these? I did it this morning; I typed one command, a menu prompted me to accept a license, then looked for a version on nvidia's ftp site, didn't find one. So it compiled one for me. This was all every bit as easy as running a WISE installer in windows. That is, as long as you can read the instruction on the site where you downloaded the thing from that says "type 'sh nvidia-thingie'"

    I have run a lot of video cards in a lot of Linux boxes. Some had open source drivers; most of these were good, a couple were not. Some had no drivers available, and I had to use a generic driver. Sometimes this worked, and sometimes it didn't. If I have my choice, I use an nvidia board...the drivers are easy to install, they're fast, you don't have to worry about getting the right module, and most of all they have a knack for just working immediately.

    I wish those drivers were FOSS, but they aren't. I'm not too proud to run them.

    Now...if I can just get the 3d on this ATI mobile radeon IGP320M going......

    --
    Given a choice between free speech and free beer, most people will take the beer.
  7. Re:Pragmatism by October_30th · · Score: 5, Interesting
    Meanwhile linux didn't get any better from it

    Yes it did. I get proper OpenGL acceleration on my Linux box now.

    not-quite-obscure-nividia-just-didnt-bother-compil ing-their-driver-for-it

    You know, if the installer cannot find pre-compiled drivers for your card, it will compile them for you. How's that for service?

    most importantly you don't know what the driver is doing on your system

    Yeah, right. Have you ever read through the code of your LAN card driver, too? How about the USB controller and SCSI-card? Most important of all, how many driver exploits have you heard of either in Windows or Linux?

    --
    The owls are not what they seem
  8. Re:lines have to be drawn by jusdisgi · · Score: 5, Insightful

    Er, yeah, that's a little warped.

    It might make sense to take that position, if such a thing as a "module vendor" existed. As it happens, it doesn't, and no one is out trying to sell binary modules for Linux. The creators of binary modules are *hardware vendors* and they are "contributing" by making their hardware compatible with the free system.

    This is not parasitic; if they want, they can just not bother, and you can just not use that hardware in Linux. Let's not forget, it's not like you wrote the driver; why would you want to keep people from making their hardware usable on your system? If a manufacturer says "well, sorry, I want to support linux, but not if it means letting the competition get a sneak peak at this crazy technology in my drivers" you would just say, "ok, parasite, we don't need your stupid hardware."

    When the manufacturer in question is a leading producer of video boards, such fanaticism is extremely foolish.

    --
    Given a choice between free speech and free beer, most people will take the beer.
  9. Re:Pragmatism by starsong · · Score: 5, Insightful

    Imagine a future where you install your core Linux kernel, then download a ton of different binary modules from different websites, have to hunt in the forums to mix-and-match the right versions, and end up having bugs nobody won't fix....

    We have that under Windows! They're called "drivers."

  10. Another copyright defense. by ron_ivi · · Score: 5, Funny

    My driver is a parody of their driver. :-)

  11. Think Back by ajs318 · · Score: 5, Insightful

    My second printer was a Citizen 120-D 9-pin mono dot matrix, and it was also very Epson-compatible. It had a beautiful programmer's manual replete with examples of how to access each feature, from simple double width text to high-density image graphics, and even went so far as to provide timing details for the Centronics interface. {Hey, you might be plugging the thing into some device of your own construction}. It was even known for owners of EPROM burners to patch the charsets to match certain manufacturers' non-strict interpretation of ASCII {the BBC model B, for example, had a pound sign at CHR$(96) instead of a backtick, so it could keep the comment mark at CHR$(35) - a comment in BASIC is denoted by REM, but the # was used to specify immediate mode in assembler}.

    Compare and contrast that with today ..... you get a Quick Start guide which says "Plug the printer into your computer. Do exactly what Windows tells you to do" and a huge manual, replete this time not with useful programming information but with dire warnings about attempting to do anything "unauthorised" with the printer, and it probably illegal to examine the printout with a magnifier to see how the fonts are made up.

    IMHO the lawful owner of an instrument has the right to know everything about that instrument. My property can, by definition, contain no secrets from me {though I might reasonably be bound to keep any secret I discover}. It's time that this was enshrined into law. If you can't handle the concept of people knowing how to write drivers for your hardware then you perhaps shouldn't be selling it. Mandatory Full Disclosure would put an end to this argument once and for all.

    --
    Je fume. Tu fumes. Nous fûmes!
  12. Re:Pragmatism by kyz · · Score: 5, Informative

    you are aware that a good chunk of this thing (and all the kernel interface) is available in source, right?

    I'm a programmer. None of the NVIDIA core is available as source. None of the NVIDIA GLX is available as source. The only source provided is a small kernel interface. Even if you're not a programmer, notice the compiled file sizes: nv-linux.o (wrapper) = 47Kb. nv-kernel.o (binary-only NVIDIA core) = 1.8Mb. The nv-linux.o source code is just over 6000 lines of code. Extrapolating, NVIDIA are keeping over a quarter of a million lines of code out of our site, and that's just the kernel module!

    what's this about not having one compiled for your archetecture? Have you ever installed these?

    I have -- for an IA32 architecture consumer/home PC. Have you installed one on a SPARC box? You can't! NVIDIA don't provide a SPARC architecture build. Have you installed one on a RISC PC? You can't! NVIDIA don't provide an ARM architecture build. Have you installed one on an iMac? You can't! NVIDIA don't provide a POWERPC architecture build.

    I have run a lot of video cards in a lot of Linux boxes.

    You sound like an unreformed Windows-using home/consumer PC builder. "Just download drivers from the manufacturer's support site" is the worst possible form of providing hardware support in an operating system.

    --
    Does my bum look big in this?
  13. Re:Pessimists are mind-killers by jlar · · Score: 5, Insightful

    You clearly missed the point in my signature. It has nothing to do with pessimism. Karl Popper (famous natural philosopher) wrote a book after WW2 called "The Open Society and its enemies" as a defence of democracy and a critique of totalitarian rule (including fascism, communism and various religious ways to rule).

    In the book he argues that democracy has an incremental approach to society building whereas e.g. communism (and political islam for that sake) has a "revolutionary" approach. The point is that those who promise us paradise on Earth after we have made the society in whatever way they would like us to - they have always ended up giving us hell on Earth (Soviet Union, Iran, Afghanistan and so on).

  14. Actual case of a module affected: PWC/PWCX by Nemosoft+Unv. · · Score: 5, Interesting

    So far, most posts in here have been about binary only drivers provided directly by hardware vendors. My case is somewhat different, yet if I read everything correctly, I could still be affected by all this.

    I am the author of the Linux Philips webcam driver, which supports a lot of Philips and Logitecht webcams, and a few others. This driver has been in development for nearly 4 years, has been formally introduced into kernel 2.4.5 and has been in continual support by yours truely ever since the first public release, some 3 years ago. Now here's the catch:

    Part of the driver (PWC) is Open Source, even in the kernel under the GPL. With it, you have a functional webcam driver, but there are some limitations; you can't get the full resolution and not as high as framerate as is possible. For that, you need a binary only plugin, called PWCX. It contains decompression routines that allow you to use the cam at its full performance. These decompression routines fall under an NDA and are thus not public. Judging by the number of mails and webvisitors I think this driver has been quite a success. And now this may no longer be possible.

    The point is, that by the strict interpretation held by Linus et al. I can no longer make this PWCX driver, thereby depriving a lot of users of a useful bit of hardware. Or at least make it quite a bit less enjoyable. I might as well remove the PWC driver altogether form the kernel then, hmm?

    First off, I feel sorry for the thousands of Linux users that use my driver (PWC and/or PWCX) and may no longer be able to do so. Second, I'm getting pissed off beyond measure by this Open Source fundamentalism because it is my driver that may be turned into a worhtless piece of code.

    It is my ass here that's on the line; I signed the NDA with Philips and if I goof up and accidently post the decompressor code or fail to protect it properly, I will be the one standing in court, not Linus. Second, I went through all the trouble of getting in contact with Philips, trying to convince them to help the Linux community and indeed they have, and I commend them on that. But they have their reasons to shield some parts from prying eyes (read: competition) and I can't blame them. So that's why there's and NDA and it's even fairly relaxed. Without the NDA there wouldn't even have been a driver.

    BTW, Philips spent exactly 2 webcams and a couple of manhours on getting the paperwork done in order to get their product supported in Linux for 3 years across 3 major kernel versions, including online helpdesk. I think that's damn cheap. I cannot count the hours I spent on programming and debugging and tracing intractable bugs, not to mention the time spent in helping users by e-mail. I've also spent many an hour to get this PWCX module crosscompiled to various hardware platforms in order to extend it's Linux usage as much as possible. Now that may appearantly all have been a big waste of time. Thank you very much!

    No, it is time to realize for anybody who thinks that the GPL is the Holy Grail of computing that this is not going to work. You cannot force anyone to oblige by a volountary license (because that's what the GPL is: nothing more, nothing less). As I wroting in my piece on tainting the kernel, if you make it any harder for (hardware) vendors to support their product in Linux, they'll drop it like a brick because they don't have to. This way Linux will never gain any real acceptance.

    Finally, it's also not very wise to piss off people like me, who are doing their best, and made some small yet clearly apreciated contribution to Linux. I would also rather have a complete Open Source solution, but I'm realistic enough to know that is not possible in this Universe. So I think I've struck quite a good comprise. But if I am being told now: "well, that isn't good enough", I might just throw in the towel in the ring altogether.

    - Nemosoft

    --
    "Fix it? It has been disintegrated, by definition it cannot be fixed!" - Gru in Despicable Me.