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."

47 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 arkanes · · Score: 4, Insightful
      It depends on just how much your story is like LOTR. How much is too much is very subjective and depends alot on your lawyer and how convincing he is. It's the same for software except theres even less case law giving you a clear standard to work from.

      Basically, aside from clean rooming, there is no 100% way to ensure that you aren't violating copyright, in ANY field.

    3. 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.

    4. 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.
    5. 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. Pragmatism by nepheles · · Score: 4, Insightful

    A certain amount of pragmatism has to prevail here -- were binary modules disallowed, the phrase 'shoot yourself in the foot' jumps to mind. Linux is probably better off with them, as it lowers the entry barrier to companys wishing to contribute. And that's rarely a bad thing.

    --
    ((lambda x ((x))) (lambda x ((x))))
    1. 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/
    2. Re:Pragmatism by LizardKing · · Score: 4, Insightful

      Binary modules may "lower the entry barrier" for some companies, but it can end up being counter productive. Binary only drivers have tended to be crude ports of Windows drivers, and frequently crash the users kernel. This results in bug reports that the regular kernel hackers can't solve, and a misconception amongst users that Linux is unstable.

      Far better would be if companies jumped wholeheartedly into the Linux way of doing things, and published their drivers under the GPL. Their competitors aren't going to get much of a leg up from seeing the source to most drivers, especially those for network adapters and the like, but the vendor can benefit from bug fixes provided by independent kernel hackers.

      Chris

    3. Re:Pragmatism by BESTouff · · Score: 4, Interesting
      Nope. Having binary modules only stops developers from trying to make their own, so you end up with proprietary, non-debuggable and non-portable (across kernel versions or across architectures) drivers. There are for example winmodem drivers you can only use on a 2.2 kernel, or the famous nvidia drivers which work only on i386. Even if this helps the casual gamer (which would be waaay better running Windows anyway), this is in fact a regression from the free software perpective.

      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 ? Think about it, that's what you want when you allow "pragmatism".

    4. 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.
    5. Re:Pragmatism by jusdisgi · · Score: 4, Insightful

      Well, the trouble is, the drivers to products that really are trivial (those NICs you mentioned) are already available, because those companies agreed with you and released drivers openly or at least released information, allowing the community to produce them.

      But some products aren't that way; nvidia, for instance, at least *says* they have IP tied up in the binary part of their drivers that they can't afford to let competitors (ATI) get ahold of. I don't know whether it's the truth.....I haven't seen the code!

      --
      Given a choice between free speech and free beer, most people will take the beer.
    6. 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
    7. Re:Pragmatism by MS_is_the_best · · Score: 4, Interesting

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

      That is true and an advantage. Unfortunately the drawbacks are perhaps larger (depends on your opinion). An open driver with the same performance would be better (but perhaps impossible).

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

      Nope, only the interface around the binary core is compiled, not the driver itself.

      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?

      Yes, I have. Lots of others have done this too. Being able to look up the source in case of network troubles is really a great help. The debug mode of the driver is very helpful, the source even better.

    8. 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."

    9. Re:Pragmatism by zurab · · Score: 4, Insightful
      When binary modules are allowed it doesn't help linux in any way....


      In certain cases, manufacturers can provide open source modules, but many times, there simply is no viable way. Complex hardware or hardware/software combination is usually covered by multiple patents, trade secrets, copyrights, and various agreements between different parties. In such cases asking hardware manufacturers to open up their internals and provide modules open source is like asking Linus to provide Linux under license other than the GPL. In neither of those cases is a single party is in control of all of the "intellectual property" involved; and it is virtually impossible to get all parties involved to agree to such a request.
    10. Re:Pragmatism by _Spirit · · Score: 4, Insightful

      So you would rather have nvidia making no drivers at all for Linux? In an ideal world I might agree with you, but in the real world I suspect most Linux users would rather have support for their video card.

      --

      beauty is only a light switch away

    11. Re:Pragmatism by pe1rxq · · Score: 4, Insightful

      In most cases hardware/software is believed to be the next best thing since sliced bread by management.....
      Most drivers do NOTHING that justifies keeping the code under lock like it is done today.
      Most drivers simply push data to the right place and fiddle with registers in the right way. There is nothing the competitor wouldn't have already thought off.
      If youre competitor has to learn from your driver they are atleast two generations behind you and you have nothing to fear.
      Its a corporate culture that is the problem, not patents (which already are open for anybody to see anyway), trademarks or trade secrets.

      Jeroen

      --
      Secure messaging: http://quickmsg.vreeken.net/
    12. Re:Pragmatism by pe1rxq · · Score: 4, Insightful

      Linux will get is name far faster by being accepted on the corporate desktop. There you don't need gaming performance, you don't need 3d performance.
      What good is acceptance if it means a ton of binary only drivers? Acceptance is useless if you lose the biggest advantage linux has: free (speach) SOURCECODE!!!

      Jeroen

      --
      Secure messaging: http://quickmsg.vreeken.net/
    13. 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?
    14. Re:Pragmatism by nathanh · · Score: 4, Insightful
      So you would rather have nvidia making no drivers at all for Linux?

      Yes.

      And I don't say that lightly. Nvidia has some extremely intelligent staff, including former open-source developers like Gareth and Mark. Nvidia contribute code to open source projects like XFree86. Nvidia are valued members of the ARB and their proposals are both worthy and appreciated. Nvidia's support for OpenGL has helped prevent Direct3D from usurping the entire industry and for that act alone we should all be grateful.

      But even with those things considered, I still think nvidia's closed source drivers are worse than no drivers at all. There are many reasons why I think this but the single most important reason is that the nvidia binary drivers take away the very freedoms that Linux grants you. Not for the same code but it's the same principles.

      In an ideal world I might agree with you, but in the real world I suspect most Linux users would rather have support for their video card.

      They had support. The Utah GLX nvidia driver wasn't the greatest but it did work with both 3D and 2D. The XFree86 drivers still support 2D on all nvidia cards and the performance is excellent.

      And really, I don't know when you started to use Linux, but when I started (pre-1.0) we didn't have video drivers. We wrote them ourselves. We chose the freedom of Linux over the convenience of binary-only platforms with working drivers. It shames me that so many of the current generation of Linux users don't understand what the world before Linux was like. It was hell. Closed source binary-only drivers everywhere. Buggy code that you couldn't fix. Linux changed all that. Finally we have source and freedom and rights. Finally there's something to be proud of; an entirely open source operating system built through the sweat and tears of 1000s of volunteers. And you would sacrifice all that for slightly faster 3D graphics? I can't comprehend your state of mind. Your priorities are completely foreign to me.

    15. Re:Pragmatism by ashridah · · Score: 4, Funny

      There are for example [...] the famous nvidia drivers which work only on i386.

      Shenanigans! SHENANIGANS!

      (Example following)

      $ ncftp download1.nvidia.com
      Connecting to 216.228.115.24...
      Logging in...
      Anonymous user logged in.
      Logged in to download1.nvidia.com.
      ncftp / > ls
      [...]
      XFree86/
      [...]
      ncftp / > cd XFree86
      ncftp /XFree86 > ls
      FreeBSD-x86/ Linux-x86/ [...] Linux-ia64/ Linux-x86-64/ [...]
      ncftp /XFree86 >

      There you go!
      ia64 is not i386, regardless of what RISC loving zealots will scream about, and x86-64 is not i386 either.
      and what's more, FreeBSD is also not linux.

      I declare your statement partially false on two fronts!

      ashridah

    16. Re:Pragmatism by ray-auch · · Score: 4, Informative

      In some, common, cases they cannot. Eg.

      Companies may licence parts of the code from third parties, usually under other licences that do not allow unlmited source release - so they would have to re-write (clean room) to get a version that they could release source for.

      Regulations (depending on your location, eg. on things like wireless cards, modems) sometimes require that stuff works within set limits (eg. power, spectrum). Often the hardware is more flexible, and the limits have to be encoded in the driver software. The law will then require the company to take resonable steps to ensure that end users can't change the software to circumvent the limits. Usually this will mean preventing release of modifiable source code.

      That's just two examples - there are plenty more reasons that might apply.

    17. Re:Pragmatism by W2k · · Score: 4, Insightful

      So in your opinion, having no nVidia drivers would be better than the current state, which is that there are drivers for the vast majority of systems that need them (which is to say desktop PC's) which are closed-source but mostly working.

      How typical of "free software" zealots to whine and whine for improvement, and when they get it, to whine again that it isn't good enough because it is missing feature X or because it doesn't support obscure platform Y. nVidia is giving you drivers for free, whining because you think they should just give away all their source is not the way to get more companies follow in their footsteps, releasing drivers for Linux.

      I've heard the argument that welcoming binary drivers is counter-productive to getting more drivers that are fully open source. While this may well be true, having a somewhat functional driver which works on some platforms (or better yet as in the nVidia case, a well-functioning driver that works on most platforms) is certainly better for the users than having no driver at all.

      --
      Quality, performance, value; you get only two, and you don't always get to pick.
    18. Re:Pragmatism by Tim+C · · Score: 4, Insightful

      but if you want to get hardware acceleration on another architecture, you're on your own.

      And if you wanted hardware accel on one of the currently-supported platforms, but Nvidia didn't release any drivers at all, you'd still be on your own.

      I understand where you're coming from, but I'm firmly in the "I just want my expensive hardware to work properly" camp.

    19. Re:Pragmatism by kyz · · Score: 4, Insightful

      My opinion is that having NVIDIA work with kernel developers to come up with fully open-source, GPL licensed Linux drivers for their hardware would be better than ever releasing a single binary-only driver.

      NVIDIA haven't given us anything for free. They have given us 6000 lines of code to interface a big black box to the free and open Linux kernel. This has been more than paid for by the thousands of NVIDIA cards sold on the back of supposed "Linux support". They have given us absolutely no device specifications whatsoever. Experience shows us that, over time, Linux kernel programmers write far superior Linux drivers than the hardware manufacturers.

      Currently, NVIDIA have offered a sop to the whining Linux fanboys -- "here's your binary, black box secret drivers -- just like in Microsoft Windows". The drivers cause mysterious kernel panics which can't be debugged because they originate from somewhere inside a black box that only NVIDIA may look at. NVIDIA can't leverage the support of hundreds of kernel developers when trying to fix it. It sucks.

      If NVIDIA gets away with providing half-hearted binary-only support for Linux, why can't every other hardware manufacturer? "No, you can't have any specifications for this Ethernet chipset, it's top secret -- here's a binary HAL instead". "No, you can't have any specifications for this SCSI disk controller", etc.

      --
      Does my bum look big in this?
  3. 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.

  4. here's two well writtens articles: by ciaran_o_riordan · · Score: 4, Informative

    LWN.net do some great coverage of this issue in these articles:
    http://lwn.net/Articles/53780/
    http://lwn.net/Articles/51561/
    These two articles are in relation to Linksys, but they cover the general issue. There have been some other great GPL-related articles on LWN.net if anyone wants to search the site.

  5. What Linus is missing here... by kju · · Score: 4, Insightful

    Linus talks all about linking source with the kernel and stuff like this. But guess what: With most binary modules this part is done by the user, not by the distributor, and this is clearly your right - you just cannot distribute the binary.

    See for example stuff like driverloader (the ndis-wrapper around windows wlan drivers for the centrino and other cards): They are shipping a source which you can compile against the kernel headers (which are provided by YOU!) and will form a kernel module which can be loaded (by YOU!) against the kernel.

    I really can't see how linus can claim copyright to the distribution of any source which happens to run with the linux kernel - but does not contain any part of it. And the enduser is free to compile and link this sources against the kernel, as the GPL allows modifications for own use without any restriction.

    I guess the whole discussion is politics. Linus dislikes binary only drivers (for good reasons: they are unflexible, hard to debug and can cause user confusion and problems) and would like to have them not happen. But i don't think it is helpful to take a extreme shaky legal position (and downright confusing the users by making legal statements which simply do not apply here) to achieve this goal.

    Although i dislike binary-only drivers in general, i came to the understanding that sometimes this might be the best you can get. In the business software world copyright is often a diverse field, and even companies who would like to release the source might be barred from that through NDAs and copyrights of third companies. So some companies have no choice but releasing binary drivers and i'm happy that they do at least that. If all would adhere to linus position we would just keep some users alone out in the rain. I'm all for helping users getting their hardware running. They might have made the wrong purchase in the first (getting a hardware with open sourced drivers would have been wiser), but just saying "tough stuff, you have lost, now go away" won't help them.

    1. Re:What Linus is missing here... by kju · · Score: 4, Insightful

      Yes, we are talinkg about some binary modules which are compiled before distribution and WHICH SIMPLY DOES NOT EXIST. All "binary only" modules i've seen so far contains at least a short kernel linkage stub which is distributed in source and compiled by the enduser, because this is the only way to ensure that the module is compatible with your running kernel.

      The companies providing "binary only" drivers are only distributing this stub source (which they very often GPL) plus their propitary binary. Compiling and linking is usually done by the enduser. Providing real binary-only-drivers would lead to many problems and therefore just isn't done.

  6. 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.)

  7. How viral IS the GPL? by MROD · · Score: 4, Interesting

    OK, from the article it seems that merely writing a device driver which uses the kernel module interface automatically makes the code a derived work. Also, building programs which include the kernel header files automatically makes those programs GPL.

    Now, what if someone wrote another standard driver interface, separate from the kernel interface, wrote a device driver which implemented that and then wrote a GPL'd interface wrapper which translated the Linux module interface to that of the new standard?

    Obviously, the wrapper interface code is now a derived work. However, does it also mean that because the new driver which uses a code interface which the GPL'd wrapper implements now is tainted by the GPL?

    Also, does the driver become a derived work if the person who writes it initially does so to get some hardware working on his Linux box, rather than his other box which runs ObsureOS which also implements this standard device driver interface but the person hasn't installed the hardware on that machine yet?

    --

    Agrajag: "Oh no, not again!"
  8. lines have to be drawn by ciaran_o_riordan · · Score: 4, Interesting

    it lowers the entry barrier to companys wishing to contribute

    I see it as encouraging companies *not* to contribute. Why give people Free code when you don't have to?

    A binary file is not a contribution, it's just a marketing tactic exploiting our free platform. Since the Linux hackers have written an entire kernel, I don't think it's unreasonable for them to ask for module source code in return. Otherwise the module vendor is a parasite.

    1. 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.
    2. Re:lines have to be drawn by Spoing · · Score: 4, Insightful
      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."

      The manufacturer is selling hardware. Anything they want to protect from being exposed in the module means little to other hardware companies who have competent developers. The details of how the hardware is controlled and any setup and tables can be discovered using the Windows drivers and debuggers.

      Contrary example: In Nvidia's case, they don't own everything they ship so unless they convince other companies to opening those parts (unlikely) Nvidia has to either drop those parts or replace them.

      The motivations of different companies are important. Server-grade hardware companies fall all over themselves supporting Linux in the main kernel source tree. If Linux becomes popular on the desktop -- even if modestly so -- the kernel modules that support desktop software will likely be open. Nvidia might even change (though this is speculation on my part).

      --
      A firewall can not protect you from yourself. Turn off what you do not need. Do not use the firewall to do your work.
  9. SCO Derivative works theory & Linux modules by putaro · · Score: 4, Interesting

    The SCO case will have some far reaching effects if a sufficiently bone-headed judge rules in certain ways. One of the cornerstones of SCO's "case" is their theory on derivative works: notably, JFS. JFS is in the same category of kernel module as AFS which Linus references. SCO claims that JFS is a derivative work of Unix and therefore falls under IBM's contract obligations and SCO's copyright. Were SCO's theory to be accepted, it would be theoretically possible to try to force AFS to be GPL'd under the same theory.


    An even more interesting stretch of the theorem would depend on how this "derivativeness" would be defined. Why is JFS a derivative work? If it's because it has substantial similarities to other Unix file systems (tree structured directories, permissions) there's an interesting case against MS for NTFS and DOS FAT, as these both have tree-structured directories and MS has been a Unix licensee. Now, wouldn't that be fun. Unfortunately the only entity that could bring that case would be our good friends Darl and SCO at this time.

  10. 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.

  11. Kernel and module compability by Anonymous Coward · · Score: 4, Interesting

    I hate binary-only kernel modules, and all kernel modules should be available as source.

    I recently purchased an IDE Raid controller, and naturally I chose one where the box said "Yes! Works with Linux!".

    Sounds great so far, doesn't it? Problem was that the drivers turned out to be precompiled binaries for the kernel shipped with the following distributions: SuSe 7.1-8.0 and RedHat 7.2-9.0.

    I returned the controller and demanded my money back.

    First of all, I ran Debian with a kernel not supported by the binary drivers.

    Second, with these kernel-spesific drivers I would be unable to upgrade my kernel (what if an dangerous kernel exploit is found?)

    Third, "Yes, works with Linux!" is a lie. What the label should say is "Yes, works with a couple of Linux kernels!"

    Fuck the binary drivers. I don't see the point. It's not like they would loose money by giving away the source to the driver -- they'll sell the hardware anyways, won't they!?

  12. Why don't they just introduce a proper driver API? by MisterFancypants · · Score: 4, Insightful
    With Windows and other OSes, there is a clearly defined API that drivers code against to work with the system. In the Windows case this is *required* because the driver authors do not have the Window source code (well, most of them don't). If Linux had something similar to the Windows DDK, this would all be a non-issue as that API would become a clear boundary of where the GPL ends and commercial company lawyers wouldn't have a near-heart-attack worrying about this huge (in Linus' words) 'grey area'.

    I know some people just hate the idea of binary drivers to begin with, and if that is your stance, fine; I don't agree, but I understand where you're coming from. But if you're going to allow binary modules (as Linux does), why do it in such a half-assed fashion that a company that might provide a Linux driver can't be sure one way or another how you're going to view their code (exempt from GPL or bound by it)? Either do it right and enforce a clear boundary or just stick with source only drivers.

  13. Original purpose by tjackson · · Score: 4, Insightful

    The original purpose of restricting derived works was to make it so that authors (companies or not) could not copy code from the public domain and claim it as private work, No?

    Kernel Modules cannot exist without the Linux Kernel. This dependancy means that any part of the Kernel Module that depends on the kernel for *module* interface purposes is not derived work. It is when authors base their code off of other code that is in the GPL that they must in turn release thier code under the GPL.

    So in short, if the module could have been written entirely with Manpages and documentation, it is not derived work. If the author views the code of other modules, then it is derived work.

    Deriving functions and invoking them are two very different things.

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

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

  15. Re:It's really simple by anpe · · Score: 4, Insightful

    I think you've missed the point, the problem is to define what does "based upon" means.
    When you compile a binary, you have to compile with some header files which are GPLed. So you are "based upon" GPL code right?
    IIRC Linus argued that this wasn't sufficient. He stated that for a module needed to be written with Linux in mind (ie targeted at it), accessing particular data structures, then it would have to be GPLed.

  16. 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!
  17. 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).

  18. -1 Flamebait by brunes69 · · Score: 4, Informative

    Companies like NVidia provide binary-only modules because they have to. Their code contains stuff that is patented and licensed from other companies, and they *cannot* legally release that code.

    For example, NVidia's linux drivers contain S3TC tecxture compression algorithms, which is patented and licenssed. It is not theirs.

    They CANNOT open source these drivers, nor could Linux developers create an implementation of them without being sued by the company who owns the rights.

    And people just don' t seem to get this and it really really pisses me off. NVidia is just trying to do The Right Thing (tm), releasing Linux drivers at a LOSS nonetheless ( you think they make enough on Linux-owner sales of their cards ot cover these programmers salaries? I doubt it. ), and all the community does is flame them. No wonder hardware companies are so hesitant to support Linux in any shape or form.

    I also need to throw this in to close... I don't know what people's problems with these drivers are. I have been using them since version 1043 (3+ years), and I have *NEVER* had a problem that wasn't fixed by reading the FAQ. And their feature and 3D support totally blows away any of the open source drivers (ATIs always lag 1-2 years behind the release of a card, and they still don't have all the features of the windows ones like FSAA and anisotropic filtering, while NVidia has had them for years).

  19. 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.
  20. Re:But why close the drivers? by RevMike · · Score: 4, Insightful

    OK, I've wondered about this since the dawn of PCs, and wonder about it every time I have to install nVidia drivers: Why do this? Onceupponatime, you bought hardware and drivers were just kinda there with it. Then they started putting copyright callouts on 'em. Now they're treating 'em as if they were standalone programs....

    If the driver spec is floating around in the open, that's a value-add for me as a comsumer (the company can't force-obsolete the cards by yanking drivers away, easier to switch OSes) and for the company (it makes the devices marketable to more people, and they get free optimizations and ports from the OSS community)....

    So, why be all grabby about drivers anyway?....

    In ye olde days, drivers did nothing more thancanfigure and move data back and forth to a piece of hardware. They were fairly trivial pieces of software, and so no one cared if they were protected. Many types of drivers are still like this today. Network card drivers typically do nothing magical.

    A few generations ago, hardware designers realized that they could offload some of the task traditionally done in hardware to the driver. Thus they could simplify the hardware and save money. The driver for a WinModem doesn't just configure and communicate with a hardware modem, it actually performs in software some tasks that were usually done in the modem hardware itself.

    At this point, drivers aren't trivial programs, but represent substantial investment and competative edge for the hardware manufacturer. If WinModem company B could look at WinModem company A's driver, they would see the tricks that they used in order to reduce the part count that much further. Company B could immitate Company A, and match their price.

    Video cards are like WinModems, although the competititon is not based price but performance. The card manufacturers are using tricks in the driver in order to boost the performance of their hardware. Those tricks may confer to them a competetive advantage, so they won't open source the drivers.

    Smart companies are quick to release software as open source when the software doesn't give them a specific and compelling competitive advantage. Cisco released CUPS as OSS because they felt they would benefit far more from having a community enhance their internal printing system than the would be hurt because Bay Networks could reduce their overhead a few hundred thousand dollars. Cisco is not going to open source their routing software anytime soon, because other router manufacturers could use it to compete against Cisco.