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

132 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 Ececheira · · Score: 2, Informative

      Yes, but Houghton Mifflin Company, the publisher of The Wind Done Gone, won in that case.

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

    7. Re:Linux linkiing analogy by jusdisgi · · Score: 2, Insightful

      "it's hard to tell where their drivers start and the kernel begins"

      Um, yeah, I can see how that would be a problem. Here, let me help:

      The drivers start at the beginning of the files you downloaded from Nvidia, and end at the end of those files. The kernel pretty much includes everything that was under /usr/src/linux before you installed the Nvidia drivers.

      After the installation, the nvidia modules are two files...a binary kernel module, and a binary XF86 module. The kernel is generally a single image at this point.

      I can see how this could be tricky...

      So anyway, in the larger sense, I agree with you that binaries ought to be allowed. However, I disagree that there is any question where the lines are drawn; if you use GPL code in your stuff, or statically link to it, your code must be GPL. If it doesn't, it doesn't have to be. That's really not that complicated, assuming you paid attention when you wrote the thing.

      --
      Given a choice between free speech and free beer, most people will take the beer.
    8. Re:Linux linkiing analogy by rifter · · Score: 2, Informative

      But for some reason Linus believes that anything that uses interface to kernel is derived work then and should be GPLed...,/i>

      No he doesn't. RTFA. He specifically used NVidia did not have to GPL the drivers. I don't understand at all where this confusion comes from. It is really pretty simple. Derived works are GPL. Works which are not derived are not GPL. So if you have to include code from the kernel your work shoudl be GPL. If not, then no. This is why the Nvidia wrapper is GPL and the rest of the driver is not.

    9. Re:Linux linkiing analogy by dgatwood · · Score: 3, Interesting
      My favorite would be:

      If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.

      ---George Bernard Shaw

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    10. Re:Linux linkiing analogy by xenocide2 · · Score: 2, Informative

      Are you nuts? I know there's actually more than three sentences in the article-- I read it myself -- but do please try from time to time to read the damn thing. Linus emphatically does not believe "that anything that uses interface to kernel is derived work." Linux offers two levels of intimacy with the kernel. One has very few entry points for module to kernel, something you might expect from a driver that really doesn't use the kernel. The other, the one with the "gpl symbols" offers access to a wide set of toys.

      Also watch out when using the word "use," its vague and open to interpretation. The GPL itself uses the word 4 times in specific contexts; two of these are in the "CAPITAL TEXT WARNING - NOT FIT FOR HUMAN CONSUMPTION" clauses. The kerneltrap.org article had a posting concerning this very word. Since I like to encourage reading, you'll have to do the homework as an extra credit exercise.

      --
      I Browse at +4 Flamebait

      Open Source Sysadmin

  2. It's really simple by ObviousGuy · · Score: 2, Informative

    If a module is "based upon" GPL code, then it must be released under the GPL as well.

    If a module is not "based upon" the GPL code, then no such restriction exists in regards to its licensing.

    In fact, you could say that the Linux kernel in a particular system was "based upon" these closed modules, but it is difficult to argue in the other direction.

    --
    I have been pwned because my /. password was too easy to guess.
    1. Re:It's really simple by ajs318 · · Score: 3, Informative

      Says this. Copyright law demands permission to base things on other things.

      --
      Je fume. Tu fumes. Nous fûmes!
    2. Re:It's really simple by mattjb0010 · · Score: 2, Informative

      Also see this

    3. Re:It's really simple by ajs318 · · Score: 2, Interesting

      You put two programmes on the same CD => they are not necessarily anything to do with one another. As long as you have permission from the copyright holders of both, that's fine.

      You write a programme that interacts intimately with another other than via the established interfaces for user space => they definitely have something to do with one another. Your programme may well be a derviative work. If it makes use of any information obtained from another programme {e.g. a .h file in an obscure -devel package} then it is quite clearly a derived work.

      Wouldn't life be so much simpler if the law just said that you have to disclose your source code, no exceptions?

      --
      Je fume. Tu fumes. Nous fûmes!
    4. 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.

    5. Re:It's really simple by morgue-ann · · Score: 2, Interesting

      Anything .... which you statically-linked to GPL code, MUST BE GPL.

      What about dynamically linking to code that's contained in a cramfs in the same ROM as the closed-source code?

      This isn't an artificial example. I write digital camera firmware. We'd like to use the MAD mp3 decoder library (GPL'd), so how 'bout we elf2flat it, stick it in a compressed ramdisk image in ROM, then use (a tweaked) NetBSD ld.elf_so to load it?

      [note: we're planning to contact the MAD author & try to negotiate a license so we don't have to try the trick above]

  3. 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 October_30th · · Score: 2, Insightful
      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!!!

      And what good is having free but sub-par reverse engineered drivers that no-one except for the most idealistic zealots would care to use voluntarily?

      As always, taking the middle ground is the best option. Sure, keep Linux core free but don't stop people and companies from interfacing it with binary only modules.

      Give people the freedom to choose. If you are not willing to risk having them to choose "the wrong option" you're not giving them freedom at all.

      --
      The owls are not what they seem
    14. Re:Pragmatism by Spoing · · Score: 2, Funny
      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".

      Hey! That would make Windows user feel right at home! LET'S DO IT!!!! (leaps behind flame-proof barrier)

      --
      A firewall can not protect you from yourself. Turn off what you do not need. Do not use the firewall to do your work.
    15. Re:Pragmatism by John+Courtland · · Score: 3, Insightful

      I think he's stating that it's more that there are so many legal hoops to leap through because of cross-manufacturer and cross-corporation mingling, that it simply isn't feasible to open up the drivers. Getting approval from all involved parties is a daunting task. Now-a-days, the video driver does a lot more than just fiddle with registers and memory, especially if there are vertex/pixel shaders involved. There's quite a bit of compiler technology in the current driver releases from nVidia and ATI.

      --
      Slashdot is proof that Sturgeon's Law applies to mankind.
    16. 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?
    17. Re:Pragmatism by femto · · Score: 3, Insightful
      > ...there simply is no viable way.

      Rubbish.

      What you should have said is "...there is a lack of will."

      The problem is that the companies don't want to release the source not that they cannot. Once they start looking serious sales volumes, due to being excluded from the Linux kernel, companies will find the will to release source.

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

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

      taunt me for being stupid enough to use that hardware.

      You've hit the nail right on the head, there. There's only one way to convince capitalist, profit-driven corporations to support Linux, and that's to let them know that their non-existant or sub-standard Linux support is losing them money.

      If you do buy a card without checking that it's supported in Linux, simply return the card, buy an alternative that is supported, then write a letter to the original card manufacturer stating that you returned their $XXX.XX card because of sub-standard Linux support, and you look forward to their support of the only operating system you use in the future.

      --
      Does my bum look big in this?
    20. Re:Pragmatism by Crazy+Eight · · Score: 2, Informative
      ...what's this about not having one compiled for your archetecture?...

      From your description it sounds like you ran an Nvidia installer script that compiled the kernel->proprietary_module wrapper code that Nvidia has made available for Linux and BSD on x86 platforms. When the parent poster said "architecture" he actually meant architecture like PPC, MIPS, x86, etc... You are confusing computer architecture with Linux Distributions. Those Nvidia binaries aren't going to do any good on a PowerMac -- that was his point.

    21. Re:Pragmatism by 10Ghz · · Score: 2, Insightful
      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.


      What about users like me? I'm not a coder. For me the source might as well be written in Hebrew. I get no benefits from having the code available. I can't debug it, I don't know what things do what. All I care is having a drivers that work. If I could choose between closed and open drivers that worked as well, I would choose the open drivers. But I don't get to make that choice, so I chooce the closed drivers, and use them instead.
      --
      Lesbian Nazi Hookers Abducted by UFOs and Forced Into Weight Loss Programs - -all next week on Town Talk.
    22. 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

    23. Re:Pragmatism by nathanh · · Score: 3, Informative
      And what good is having free but sub-par reverse engineered drivers that no-one except for the most idealistic zealots would care to use voluntarily?

      Because most Linux drivers began their life as "sub-par reverse engineered drivers". It was only because they were open source that they got better.

    24. Re:Pragmatism by hummassa · · Score: 2, Insightful

      All I care is having a drivers that work. So, you must care about others as the grandparent poster reading and debugging your drivers and their interactions with the kernel at large, so in the end you have... (roll the drums) drivers that work!

      --
      It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
    25. 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.

    26. Re:Pragmatism by martin-boundary · · Score: 2, Funny

      "Three processors ought to be enough for everyone".

    27. 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.
    28. 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.

    29. Re:Pragmatism by Tim+C · · Score: 3, Interesting

      More than that, last I heard NVidia was under NDA from one or more third parties concerning some of the code in their drivers. They simply can't release it, as it essentially isn't theirs to release.

    30. Re:Pragmatism by joaha · · Score: 2, Insightful

      Sacrificed? It doesn't go away because of a videodriver. I don't know what choices nvidia have. Maybe they could release enough to make it possible to write a good driver? And if so, they should. And we should definitely keep bugging them for not doing it. But to say that chosing a binary only driver sacrifices the whole operating system including the effort of "1000s of volunteers" is a bit over the top.

      Of course, it's a dead end. If you believe in the open source model, you know that. But for now, it gives us the opportunity to run good hardware in linux.

    31. Re:Pragmatism by iantri · · Score: 2, Informative
      Now...if I can just get the 3d on this ATI mobile radeon IGP320M going......

      You might be interested in this.. or this.

      I believe you still need the patched agpgart w/ the precomplied binaries.

    32. 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?
    33. Re:Pragmatism by W2k · · Score: 2, Insightful

      You and 7658880 are both right in saying nVidia hasn't given anything (of value) to Linux. They have, however, given something to users of Linux (Linux on i386, anyway), and from what I am reading elsewhere in this discussion, there certainly are people for whom the nVidia drivers have proven very useful. So they have definitely given _something_ to the Linux community, though clearly, not everyone thinks it's worth cheering over.

      Whether they gave it (or are giving it) away for free is arguable. Clearly, someone who bought an nVidia card prior to there being Linux drivers for it got something more than he originally paid for when the Linux drivers were released. Linux desktop users are still in the minority; are there any figures to back up your claim that nVidia have sold thousands more cards than they otherwise would have just because they have Linux drivers out now? My guess is the actual number of additional cards sold is much lower. Most Linux users I know are developers who do their work on Linux but boot into Windows for games and other graphics-heavy applications. I consider this as simply choosing the right tool for the job.

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

      If the binary driver works at least for the majority of Linux users, the majority won't really care if it's binary or not. Most Linux users, myself included (though I don't have a funtioning linux box atm) are content with drivers that work as specified, though we would of course also rather see the drivers open-sourced. Until Linux (or rather, the community) becomes a powerful force in the harldware marketplace (having Linux drivers becomes a major competitive advantage) I believe we must get used to compromises like this or throw out binary-only drivers altogether and face the possiby dire consequences.

      --
      Quality, performance, value; you get only two, and you don't always get to pick.
    34. Re:Pragmatism by NegativeK · · Score: 3, Insightful

      We chose the freedom of Linux over the convenience of binary-only platforms with working drivers.

      That's odd, as it is the exact reason I switched over too. Plus stability and power, of course. But you know what else I find odd? You. It would seem that you would rather I didn't have the freedom to do what I want with the OS on my computer. It is really pretty simple.. To each his own. I'll run my binary modules, unload them if I think I have a bug to test it, and get my very nice hardware acceleration out of a card that I payed $200 for.
      But really, I think this argument comes down to one issue.. If you have to release and use everything as open source, then you are almost as restricted as having to release and use everything as closed source.

      P.S.: I do agree that I would _like_ open source drivers, and I have e-mailed nVidia's PR department about that. But I'm still going to support them, as they've shown more support for their hardware than _some_ companies.

      --
      This statement is false.
    35. Re:Pragmatism by mhesseltine · · Score: 3, Informative
      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.

      And, as has been said many times before, NVidia doesn't own all the code in their drivers. Some of that is licensed. As a result, they are not allowed to change the licensing to GPL-only. To do that, they'd have to strip out much of the functionality that makes the card useful.

      --
      Overrated / Underrated : Moderation :: Anonymous Coward : Posting
    36. Re:Pragmatism by tiger99 · · Score: 2, Insightful
      You are quite correct, and it applies to many other types of device also. Canon, for instance, only disclose programming info if you are a corporate and sign a NDA. Did all that ages ago, because I wanted a driver for ny printer and scanner, never had time to do the programming......(usual story). But, if I had done it, I would only be able to release it as a binary, or at least part of it, which IMHO is better than nothing, but not ideal.

      But, as you rightly observe, what was the point of them doing that? Dismantling the scanner carefully showed exactly what chip was in it, IIRC it was a National something or other, so I got chip data freely, in tha way that most semiconductor manufcaturers have always provided it. The printer could have been reverse engineered using a little bit of code to monitor the parallel port or USB while printing under a Bill OS. (I never got round to looking inside the printer.)

      So, all they have done with their secrecy is to put a minor delay in the way of someone who really needs to find out how it works. A competitor needs at least hundreds of millions to create a new family of ink jets, probably a few millions for a scanner, (tooling charges for the plastic bits alone are horrendous, without software or any custom silicon). so why bother hacking into a competitor's drivers, if you have the budget there are better ways of spending it.

      It is only people with a legitimate need to use a device under a non-Gates OS who are impeded by this obsessive secrecy, there are not thousands of hackers sitting up late at home building reverse-engineereed inkjets or scanners. The only thing such manufacturers do is lose the 5 or 10% of business (an increasing proportion!) that they might have got from people who need or want to use Linux, *BSD, or whatever. They do not protect themselves in any way from serious reverse enginering, it is just not possible.

      Nvidia is a fairly minor annoyance IMHO, the graphics cards are VERY popular and need support, and what the have done works, on the 3 diverse machines with Nvidia cards at muy disposal. Sadly it does not integrate well into SuSE's Yast configuration system, you always have to edit XF86Config by hand, for which I blame SuSE as Nvidia say the drivers may be distributed, but SuSE doesn't distribute them as part of an integrated package.

      The hardware manufacturers could save themselves and us a lot of trouble by publishing proper driver specs in a form that could be easily compiled for any reasonable OS and CPU. That means some kind of definition of registers and how to fiddle them, as you say. It used to be that way, years ago a graphics card or a printer had a proper manual.

      A side issue is that if they do disclose details, it is actually much easier to prove copyright viotations as far as the hardware is concerned, and it also prevents a competitor taking out a patent on something they have done, by demonstrating prior art. There is every advantage for a full disclosure of how hardware works, it gives nothing away to the competition that they can't get anyway, although I think some of the operations involved in 3D graphics, or for that matter dithering algorithms on a printer, may be a bit more complex than your description might suggest.

    37. Re:Pragmatism by anthony_dipierro · · Score: 2, Insightful

      If NVIDIA gets away with providing half-hearted binary-only support for Linux, why can't every other hardware manufacturer?

      Because those who provide full-hearted open-source support for Linux have a competitive advantage over NVIDIA. If you don't like the Linux support for NVIDIA, don't buy their hardware in the first place. No one is forcing you to do so. If you feel you have been tricked by the advertisement of "Linux support," return your video card and demand a refund.

  4. different perspective by millette · · Score: 3, Informative

    The article is actually an email thread. It does explain boths views. Here's another look at it from Kevin Dankwardt. A little dated, sept. 2002, but still relevant today.

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

    1. Re:Linux driver model doesn't help by StenD · · Score: 3, Interesting
      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
      No, because he immediately explains that it isn't an exception, it's a clarification:
      There's a clarification that user-space programs that use the standard system call interfaces aren't considered derived works, but even that isn't an "exception" - it's just a statement of a border of what is clearly considered a "derived work". User programs are _clearly_ not derived works of the kernel, and as such whatever the kernel license is just doesn't matter.

      And in fact, when it comes to modules, the GPL issue is exactly the same. The kernel _is_ GPL. No ifs, buts and maybe's about it. As a result, anything that is a derived work has to be GPL'd. It's that simple.

      Now, the "derived work" issue in copyright law is the only thing that leads to any gray areas. There are areas that are not gray at all: user space is clearly not a derived work, while kernel patches clearly _are_ derived works.

      But one gray area in particular is something like a driver that was originally written for another operating system (ie clearly not a derived work of Linux in origin). At exactly what point does it become a derived work of the kernel (and thus fall under the GPL)?

      THAT is a gray area, and _that_ is the area where I personally believe that some modules may be considered to not be derived works simply because they weren't designed for Linux and don't depend on any special Linux behaviour.
      And specifically talking about nVidia:
      In contrast, these days it would be hard to argue that a new driver or filesystem was developed without any thought of Linux. I think the NVidia people can probably reasonably honestly say that the code they ported had _no_ Linux origin. But quite frankly, I'd be less inclined to believe that for some other projects out there.
      And, to wrap it up:
      No, the note at the top of the copying file is something totally different: it's basically a statement to the effect that the copyright holder recognizes that there are limits to a derived work, and spells out one such limit that he would never contest in court.

      See? It's neither a license nor a contract, but it actually does have legal meaning: look up the legal meaning of "estoppel" (google "define:" is qutie good). Trust me, it's got _tons_ of legal precedent.
    2. Re:Linux driver model doesn't help by julesh · · Score: 2, Informative

      Dynamically linking to a GPL'd library does not _necessarily_ cause a program to become licensed under the GPL.

      It has long been held in copyright law (through case history) that using an API does not, of itself, mean that the program that uses it is a derivitive of an implementation of that API.

      This would be especially true if two implementations of the same API existed, which is probably the case in the nVidia drivers that were being discussed; there is a small driver module (whose source code is available) that merely provides an API layer between the kernel and another program (no source code available). My guess is that that program is simply a recompilation, with no source code changes, of the equivalent program under Windows, which would use a different compatibility layer.

      It is therefore plainly not a derivitive of the Linux compatibility layer, because it could be used separately from it. And by the terms of the GPL, as it is a separable program that doesn't depend entirely upon the other, it does not have to be GPL licensed.

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

  7. 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 squid_wrangler · · Score: 2, Informative
      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.

      For device driver (and similar) modules that run within the kernel, the statement that they "don't contain any part of it [the kernel source]" can't be made so easily. To develop and compile the driver, the kernel header files are needed. Even putting aside structure definitions and the like, which are kernel sources, it is very easy to get whole functions subject to GPL be included in binary-only drivers by way of inlining (see the example of "static inline ..." functions mentioned in the original discussion).

    2. Re:What Linus is missing here... by Anonymous Coward · · Score: 2, Interesting

      We're talking about binary modules. In this case, while the linking may be done by the user, the module is compiled before distribution. Consequently the object file may contain GPLd code by ways of inlining. At that point it clearly becomes derived work and cannot be distributed (except with source and GPL).

      Even if it doesn't contain GPLd code there are things to look out for. The GPL defines what is considered derivative and what is not. According to the GPL, kernel modules clearly fall into the former category, even if they don't include GPLd code by inlining. If you are in a position in which you have to accept the Linux kernel license (IOW you distribute the kernel, which you aren't allowed to do without accepting its redistribution license), then you have to provide source to your modules. Only if you don't distribute the kernel you can ignore the GPL's definitions of "derivative" and fall back to standard law definitions which probably allow distribution of a binary module.

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

    4. Re:What Linus is missing here... by geirhe · · Score: 2, Interesting
      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.

      He doesn't. He is claiming copyright for the interfaces you have to use to make a kernel module. You are free to do whatever you wish to the bits you have written yourself - you have the copyright on that.

      However, including the *.h files needed to make your code a derived module makes use of something someone else have written. You are not allowed to make copies of that code without the consent of the copyright holder.

      The other copyright holder is willing to give you the right to make copies of his code and distribute the result. The terms may, however, be dictated by him. He owns the copyright to the code you need, after all. The terms you are being offered are based on the concept that if you want to link to the linux kernel and distribute the result, you have to let everyone else do what you just did to the code you wrote.

      You are, of course, free to try to negotiate a better deal. Be my guest.

    5. Re:What Linus is missing here... by Anonymous Coward · · Score: 2, Insightful

      On second thought, inlining is probably a non-issue. If you aren't bound by the GPL because you don't distribute the kernel, standard copyright law applies and AFAIK (IANAL), you are allowed to use published interfaces, so standard interfaces which cause kernel code to be inlined into your module probably don't force you to GPL the module. However, entering a contract with kernel developers by redistributing the kernel and therefore accepting the GPL does force you to GPL your module, regardless of inlining or symbol-names.

    6. Re:What Linus is missing here... by Anonymous Coward · · Score: 2, Insightful

      Stubs don't save you. The intentional viral nature of the GPL transcends stubs. If the stub becomes a derivative work of the kernel, so does the binary module, because according to the definitions of the GPL the stub and the binary module are not independent programs. The real question is if the stub is a derivative work of the kernel. That is exactly the same question as wether a directly linkable binary module is a derivative work of the kernel. According to the GPL it is, according to standard law it is not. It boils down to the question wether you are bound by the kernel's redistribution license, IOW wether you distribute the kernel or not.

    7. Re:What Linus is missing here... by Hobbex · · Score: 2, Insightful

      What part of this contradicts my statement that the GPL "derives it's authority from copyright law"?

      If I download and run application X under the GPL, then I need to enter exactly zero contracts with anybody. If I want to redistribute X, or a derived version X1, then I need to enter a contract under the GPL, but not sooner.

      Say I download and run application X, and then write and distribute application Y. The only way that I would need to get into a contract (the GPL) with the author of X in order to distribute Y is if Y is in some way a derived work of X. The GPL is not a EULA, it cannot add any restrictions on my behavior until such time as I do something with program X that normal copyright law does not allow by default.

      This is exactly the situation with kernel modules. If kernel modules are not a derived work of the Linux kernel under copyright law, then the it does not matter what the GPL says. If kernel modules are considered original works under the law, then they can be distributed in exactly whatever form the author chooses, regardless of what the GPL says. Microsoft likes to talk about the "viral" GPL. But the GPL can never be more "viral" then copyright law is: as long as something is an original work, the author can never be compelled to GPL it.

      This whole question is simply one of legal interpretation. What is a derived work under the law and what is an original work? If something is a derivative of GPLed code like the kernel, then the GPL is required, if it isn't, then there are no licensing requirements. At least Linus seems to understand this much.

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

    1. Re:I love this guy. by armando_wall3 · · Score: 2, Funny

      That line:

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

      made me laugh, cause sometimes Linus tries to make the world look the way he wants it to. An example is his Kernel Coding Styles, where he states things like:

      Heretic people all over the world have claimed that this inconsistency is ... well ... inconsistent, but all right-thinking people know that (a) K&R are right and (b) K&R are right.

  9. 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!"
  10. 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 _Spirit · · Score: 3, Insightful

      This is some seriously deranged logic. This is how your post reads to me:

      I make a video card which I expect to be used with Windows. Some of my users beg me to support Linux. I make a Linux driver. Now I'm a parasite?

      An open sourced driver would be nice but not supplying one is now a crime? What am I missing here?

      --

      beauty is only a light switch away

    3. Re:lines have to be drawn by Spoing · · Score: 3, Insightful
      I see it as encouraging companies *not* to contribute. Why give people Free code when you don't have to?

      A few plusses just for maintenance come to mind, there are likely more for maintenance and other reasons such as good PR;

      1. As the kernel changes, the module is kept in sync almost automatically
      2. Others can look at and make changes, fixing defects
      3. Crossplatform support is much more likely
      4. Any defects discovered during the in the kernel port and maintenace will help with the Mac and Windows versions that lack this level of review; remember, the copyright holder does not loose copyright when using the GPL and can dual-licence or re-licence any code they have copyright to!
      5. Knowing that the code will be seen, opening it encourages cleaning up and repairing the nasty parts -- or if it is not a port -- keeping it clean and better organized leading to fewer defects

      There's not much of a benifit to binary-only modules for the vendor except;

      1. They don't have to pull or replace code or binary parts that come from other companies (though this applies to few potential modules)
      2. Likely faster to get an initial version out since there is no requirement for code review to be "accepted" (no acceptance process)
      3. If the code is too messy, there's no need to clean it up so others can figure out what's going on or to avoid embarasment
      4. The old protecting IP paranoia is lowered
      --
      A firewall can not protect you from yourself. Turn off what you do not need. Do not use the firewall to do your work.
    4. 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.
    5. Re:lines have to be drawn by penguin7of9 · · Score: 2, Insightful

      This is not parasitic; if they want, they can just not bother, and you can just not use that hardware in Linux.

      Yes, it is "parasitic". And the kernel license should be updated to put a stop to this. If we believe in free software, we want to support companies that support free software.

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

      No, it's not. It will give other companies a chance to get into the market, with Linux-friendly products with open source drivers.

      You see, leading or not, nVidia doesn't really have anything that is so unique. Dozens of companies can put together decent 3D graphics cards. Maybe they aren't quite as fast or quite as cheap, but they are plenty good.

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

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

  13. 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!?

    1. Re:Kernel and module compability by Anonymous Coward · · Score: 2, Interesting

      And imagine this scenario

      your raid driver requires kernel 2.2.18
      your sound card driver requires kernel 2.4.19
      your network adapter driver requires kernel 2.2.21

      the drivers has to be open sourced.

    2. Re:Kernel and module compability by goranb · · Score: 3, Insightful

      That's not true, they might lose money...

      The IDE Raid controller you're talking about uses some functionality which I have a patent on. To make this functionality work the driver includes some code which of course I wrote and are the copyright owner.
      I see no point in releasing any of my code as that would lower my income, because none of the manufacturers would need to buy my code anymore...

      Ok, I admit, I'm not holding any patents and didn't write any driver code that's included in any RAID driver (not that I know of, at least)...
      But I think you get the picture here... It doesn't have to be the actual hardware manufacturer who's responsible for the drivers not to be released in source form. They might be restricted by other parties....

  14. Unfair moderation by Anonymous Coward · · Score: 2, Interesting

    Yes, I'm replying to my own down-modded post. I feel that the Flamebait moderation is uncalled-for and believe that the moderator has simply missed the point of my post.

    It is a morally incorrect stance to demand that 'because I did all this work that you are benefitting from, you must pay me back in kind', as the original poster to whom I was responding to said (in a sort of way). He correctly makes the point that this is a community and that it is in everyone's best interest (cumulatively) for everyone to play by the rules, so to speak, and release source code into the open. However, to demand that someone open their source code is to usurp that person's Freedom and that is where the moral error arises.

    When a person derives a work from GPL'd code, there is a legal understanding that the derived code must be placed under the GPL as well. This is designed into the GPL because the derived work benefits from having existing source code to be based off of and as 'payment' for this use the deriving programmer gives up his rights to copyright the derived code. It is a raw deal to some, heaven to others, but all parties come into the deal knowing what is required of them.

    OTOH, a person who simply writes a driver that is linked at runtime to the kernel is under no such obligation to do so. This is precisely because the code is not based off the GPL'd kernel code but rather designed to a specification which the kernel implements. The use of kernel headers and libs would arguably be considered Fair Use of the GPL-copyrighted work. It would be nice for the developer to include the source under the GPL, but he is in no way required to do so by law. He does not benefit from the GPL'd code in any way except in the sense that the GPL code exists and he is finding a way to serve a need in users of that code.

    But another point that I was making in my original response was that closed source binaries in no way hinder the uptake of an OS. Windows, being the premier closed source whipping boy, does no worse because Windows drivers are closed. It is arguable that it does better because binaries can be standardized at the source rather than having many incompatible user-altered binaries floating around. Support becomes a matter of fixing a problem once and floating a new binary rather than applying a patch to the source code and hoping that everyone who's using the source can merge the changes correctly.

    Linux is not hurt by closed source drivers. The Free Software Movement may be set back because drivers for advanced hardware may not be available in any form except binary, but Linux itself will soldier on regardless. In fact, the more drivers that are available for Linux (open or not), the more likely it is that a user will be able to use the operating system without an incompatible hardware problem.

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

  16. Developer resources and graphic cards drivers by HuguesT · · Score: 2, Insightful

    The huge problem pertaining to graphic cards is that they probably are, on PCs, the item that is replaced /upgraded most often and are developed at the highest pace immediately after CPUs.

    While CPUs are well documented and a critical resource well looked after by developers, GPUs are in contrast shrouded in mystery and buried in patents. Also most kernel developers, I'd wager, don't care one bit about dual screens and accelerated OpenGL.

    Before NVidia came on the scene with their drivers the high-quality multi-screen 3D Linux desktop was very very hard to come by. It think it is still true today that you cannot have accelerated 3D and xinerama together under XFree. This causes no problem with the NVidia drivers.

    So yeah, it's bad, and the NVidia stuff does cause mountains of weird problems still (I still can have my USB webcam running with the combination of NVidia drivers, dual-head and SMP, not that this is crucial, mind you, but it is annoying). OSS drivers only give you 2D.

    Meanwhile I'd like to know how are things with the ATI camp, probably not much better.

    Paradoxically, if NVidia had not come forward with binary-only drivers, the situation would probably be a bit better even with their hardware: it would have been reverse-engineered to some extent.

    However the pool of available talented OSS developer is finite, and some other project would have suffered almost certainly.

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

    1. Re:Original purpose by Lost+Race · · Score: 2, 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?
      That is one wacky misunderstanding of "public domain"! If a work is in the public domain, anyone can do whatever they want with it. I can take Shakespeare's Hamlet, delete the "Shakespeare" part and publish it with a "Copyright 2003 by me" notice, and I won't have broken any laws or opened myself to any legal action at all (just public ridicule). Of course that doesn't give me ownership of Hamlet; you could copy "my" Hamlet and just claim you also cribbed it from Shakespeare and there's nothing I could do about it.

      Now, if you took Hamlet and added a few scenes, that would indeed be your work, and nobody could copy the "new" work without your permission. That's what the public domain is all about. In fact, that's where Disney make most of their money -- derive movies from public domain fairy tales and tightly control the resultant work.

  18. Why binary-only modules? by file-exists-p · · Score: 2, Insightful

    I never understood why companies are so reluctant to provide the source codes. The reason I hear usually is that such source codes would help competitors to design similar hardwares. Is this just urban legend and the real reason is more an habit of secret, or does this argument is real (i.e. seeing APIs implementation helps you design hardware) ?

    --
    Go Debian!

  19. kernel-api-headers package? by Akai · · Score: 2, Interesting

    I'm no C expert, but I imagine there is a to get a list of available functions from the kernel, some query or another. One that is available, at least as root, from userland. Something like how the System.map file is generated from a kernel compile.

    If this facility exists, would a dump of the function calls in the kernel, with apropriate calling information (data types, number of parameters, etc) converted info a new set of .h files (which don't contain any inline'd code, just function defs), would the resulting .h files be considered GPL? After all if I use a GPL word processor, my documents are not GPL'd, right?

    In ethical belief, I side with the GPL-only crowd, in the rome-wasn't-built-in-a-day argument, binary drivers wins for me.

    If I were NVidia, which seems to be both the most loved and most hate bin only driver, I would see if it was possible to move all protected/proprietary code to the X11/GLX driver. X11 has full (or near full) access to the system a t a low level, and it's BSD licensed so no toes are stepped on.

    --
    Please send all UCE to scally@devolution.com so I can f
  20. Binary modules & GPL by tr0llx0r · · Score: 3, Redundant

    Several issues need to be more clearly defined before the forest is seen for the trees.

    The phrase "Her bosom heaved..." can probably be found in 152,234 fictional books. If I add a few more words, it becomes a sentence and can probably be found in 1,289 books.

    Derivation means you take the original work which has some 'body' of substance and add or subtract to it. Using less than that results in an excerpt. We know that excerpts can be used all over the place. There is also a difference in whether the material is 'instructional' in nature. Significantly more leeway is given. The kernel and associates aren't 'instructional'.

    Simply including one line of a system or function call will not make a work a derivation. Including a file (or, even if not a 'file') of substantial body will make a work derivative. Two people writing a play may write separate acts which are then combined and published. Their final work is not one derived from another, but a shared work - joint equal ownership. If they individually copyright their own 'act', the joining would be derivative - the former not.

    Binary code is a derivative work. It could not have occurred without the source file. But is it a copyright derivative? Colorization of B&W films results in new copyright, but also contains information for the 'source' that is identifiable. Binary code doesn't except for strings which might appear.

    If I use a proprietary compiler on a GPL code, I get a binary. In one sense, it's derivative. In another, it's not. If I create my own scrambler, and process the novel Gone with the Wind text, is that new work a copyright derivative? I think not. This may even imply that using a GPL compiler on GPL source may result in a work that is -not- GPL because it could only be created via the creators unique use of the tools.

    Joining a transmission to a motor will not result in copyright infringment over either the motor or tranmission, without regard that they have complex connectivity, assuming there were only separate copyrights beforehand. Patents aren't an issue either provided there is one for the motor and one for the transmission.

    Whoever put the two together can sell it or use it as they wish.

    Titles cannot be copyrighted. For more protection over things like system or function calls which may be specific to Linux, it may be necessary to do more legal legwork. For example, it may be necessary to assign a trademark to the function one-liner. Overkill? Not in todays legal world. Perhaps a GPL for trademarks used in Linux will become necessary.

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

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

    1. Re:Another copyright defense. by TheSHAD0W · · Score: 3, Funny

      /* non-ATI hardware detection */
      if (!startswith(hwid, "ATI") {
      cout "You stupid Englishman! I wave my private parts at your aunties!";
      return(FALSE);
      }

  22. But why close the drivers? by BigRedFish · · Score: 3, 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 - doesn't an nVidia card kind of function as a dongle for the nVidia drivers, if they're so worried about copying?

    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). On embedded devices it's even sillier, I mean, what good does PalmOS do me if I don't have a Palm? If I were trying to reverse-engineer an nVidia card or a Palm, wouldn't I start with the hardware? And if I did make a 100% Palm-compatible, I could just sponge off Palm's binaries then... ditto nVidia...

    So, why be all grabby about drivers anyway? The cavalier something-for-nothing closed-source approach to open-source support seems vaguely dishonest to me somehow - it just makes me uneasy, and affects my purchasing decisions. If they're so happy to rip off the OSS community, won't they also be happy to rip me off, I ask myself.

    IMO, binary-only is a trap: All it takes is closed-source drivers for motherboard devices, the manufacturer doesn't make a new version of the drivers to support a new kernel, and you're stuck buying a new computer or using Windows. A trap. Since an open driver spec is a value-add for both the consumer and the hardware company, I am very suspicious of proprietary drivers and the motives behind them. Trap. Linux is better off without binary-only taps. I mean drivers.

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

  23. this one is good! by aLEczapKA · · Score: 2, Funny

    Linus: "So you can run the kernel and create non-GPL'd programs while running it to your hearts content. You can use it to control a nuclear submarine, and that's totally outside the scope of the license (but if you do, please note that the license does not imply any kind of warranty or similar)."

    --
    -- All Gods were immortal.
    -- S. Lem
  24. 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!
  25. Linus, nice guy, but wrong. by mumblestheclown · · Score: 3, Insightful
    From what i get of linus' posts, he seems to take an (from his standpoint) overly optimistic view of what "derived" works are.

    By his definition, if X was created primarily to work with the linux kernel, then it is a derived work, and therefore falls under his copyright regimen of choice (GPL). this is like saying that if you make a super efficient oil filter that was clearly designed exclusively for mercedes engines, then mercedes can tell you how to sell it.

    while mercedes clearly has the right to protect its trademarks and copyrights, as long as the oil filter maker doesn't pass it off as anything but an aftermarket job, his business is secure. this is true whether the aftermarket add-on fits onto an easily identifiable interface (the little bit that the oil filter screws on to) or not (those places that hack up a whole mercedes and turn it into a stretch limousine or something - though the latter may well run into trademark issues if they are not careful).

    yes, software is not like physical items in many instances. but, in this one, it is.

    1. Re:Linus, nice guy, but wrong. by woods · · Score: 2, Insightful
      By his definition, if X was created primarily to work with the linux kernel, then it is a derived work, and therefore falls under his copyright regimen of choice (GPL). this is like saying that if you make a super efficient oil filter that was clearly designed exclusively for mercedes engines, then mercedes can tell you how to sell it.

      That's a misleading concusion and resulting analogy. The work doesn't fall under the copyright of his choice just because it's a derived work; there's no such law. It falls under the GPL because presumably the derivative work authors agreed to those "extra" set of rules when they used the linux source to create their work.

      There's no such agreement with Mercedes. If there were some kind of GPL'd Mercedes that everyone collaborated on, the analogy would make more sense. Then companies wouldn't be allowed to create custom add-ons for tricking out your GNU/Mercedes without also making their add-ons GPL'd.

    2. Re:Linus, nice guy, but wrong. by cyberformer · · Score: 2, Insightful

      This isn't an anology: It's exactly the same! The question isn't really abotu the GPL, it's about how copyright law applies to software: Do the copyright holders of an OS have the right to control how drivers are distributed?

      The GPL explicitly states that it's intended only to add rights, not take them away. It isn't a signed contract or a dubiously-legal EULA; it's just a limited copyright permission. If you can create drivers for Windows without permission from Microsoft, you can create drivers for Linux without permission from the kernel contributors.

      One difference is that creating drivers for Linux may be easier than for Windows, because the source code is available. But arguing that a programmer merely seeing the source code makes the next thing he/she writes somehow a derivative of that code seems contrary to both the spirit of free software and the nature of creativity. It's like saying that novelists shouldn't read books, or that composers should never listen to music.

  26. The only thing I got by Chuck+Chunder · · Score: 2

    was a crackingly playable Quake 3. That was worth something to me.

    --
    Boffoonery - downloadable Comedy Benefit for Bletchley Park
  27. Re:Why don't they just introduce a proper driver A by trenobus · · Score: 3, Insightful

    An even better alternative would be for the proprietary part of the driver to be a provider of a public, documented API, so that anyone could write a driver for it for any OS, instead of it being a consumer of some particular OS driver API. This would completely eliminate the need to use any GPL'd code in the proprietary driver binary.

    Such an API could (and in many cases should) conceal proprietary aspects of the associated hardware, and in so doing perhaps remain stable for more than one generation of the hardware. Also, such an API could (but in most cases should not) have hidden functionality (e.g. "reserved" arguments to functions) that could be transparently used by proprietary application code (assuming the driver for a particular OS passes the arguments through unchanged).

  28. Depends by famazza · · Score: 2, Interesting

    It depends rather the module uses or not other GPLed files, either source or headers.

    It's as simple as MS claims to be. GPL infects everything it touches. If you use any header or any source code from Linux kernel (or whatever GPLed code) it MUST be released under GPL.

    But this is theory. We must avoid problems with this kind of GPL violation in order to keep major non-free drivers avaiable. (oh no, if Stallman sees me talking like this... :o) At this moment popularity is also very interesting.

    Let's not become like SCO.

    --

    -=-=-=-=
    I know life isn't fair, but why can't it ever be un-fair in MY favor!?
  29. 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).

  30. Re:Why don't they just introduce a proper driver A by lorien420 · · Score: 2, Insightful

    You're mistaking the GPL for the LGPL. The API would not be subject to copyrights, but any sources compiled against it would be GPL because the license of the GPL does not allow for abstraction layers like that.

    --
    "[We'll be] really getting inside your head and making it an unpleasant place to be" -- Trent Reznor
  31. This isn't limited to the kernel. by Moderation+abuser · · Score: 2, Interesting

    There are a load of GCC headers and other GPL'd library headers which are compiled into any code you build. The library itself may be LGPL'd but the code, data astructure definitions in the headers are included into the resulting binary, so if this problem is as you state, it is a GPL issue rather than a Linux kernel issue.

    If this is the case then *any* binaries produced by GCC or which even look at headers or data structures included with any GPL'd or LGPL'd library must also be [L]GPL'd.

    --
    Government of the people, by corporate executives, for corporate profits.
    1. Re:This isn't limited to the kernel. by adrianbaugh · · Score: 2, Informative

      I'm pretty sure that (even) RMS has said that code produced by GCC does not /have/ to be GPLed. Therefore it seems you need a bit more than dependence on headers to transmit the so-called "GPL virus".

      --
      "'I pass the test,' she said. 'I will diminish, and go into the West, and remain Galadriel.'"
      - JRR Tolkien.
  32. Re:Amazing by nathanh · · Score: 2, Informative
    Wow. It's just amazing to me how the Linux community supports the wholesale theft of SCO's intellectual property,

    Hard to believe you're not a troll but just in case...

    The Linux community wants SCO's "intellectual property" out of Linux. The GPL doesn't permit their IP to stay in there. It must be removed; the license and the law demands it.

    But first they have to tell us WTF their IP actually is. We can't remove it because we don't know WTF they're talking about! Even IBM doesn't know and the judge couldn't figure it out either, which is why SCO has been compelled to tell the court WTF they think they own in 30 days time.

    Linux developers are very respectful of IP rights, even if sometimes the users (*cough*MP3 thieves*cough*) are not. This is why we wrote our own operating system, from scratch, rather than subject ourselves to binary-only licensing.

  33. the real problem is... by jonwil · · Score: 3, Insightful

    that sometimes there is no other choice.

    For example, try to find a combination of GPU and drivers that is good enough to play linux games like Neverwinter and Unreal or emulated games through WINE that is 100% open.

    You cant.
    I suspect that even if you were able to completly Reverse Engineer (through disassembly or otherwise) the windows or linux Binary-Only drivers and/or the interface and hardware APIs for and from that, make an open source driver, you would probobly be violating several patents or other IP thingos and would have your ass sued by the makers of . Also, the makers of would probobly state that using the code means you get no tech support, no warranty, no nothing. Plus, the makers of would get some kind of court order to state that since the open source driver violates the patents etc that distributing, using or working with it is illegal and have all the copies in existance removed.

    Also, 802.11* wireless network cards. I dont know of any 802.11* wireless network cards that have 100% open source drivers for linux except for 1 or 2 that have been Reverse Engineered by someone. For those, you dont get technical support, you may not get warranty service and the manufacturers would probobly shut down the Open Source driver projects if they had a way to do it.

    Personally, I love Open Source and Open Specifications (i.e. Open file formats, Open APIs, Open network protocols, Open hardware interfaces etc) and push for such things wherever I can. (I was involved in a push to get Electronic Arts to release stuff connected with the gameplay scripts for Command & Conquer Renegade. They didnt release it. But in the end, I wrote my own DLL that sits between the game exe and the official DLL and allows one to implement ones own scripts but its still nowhere near as good as having the official stuff would have been)

    1. Re:the real problem is... by Just+Some+Guy · · Score: 3, Insightful
      For example, try to find a combination of GPU and drivers that is good enough to play linux games like Neverwinter and Unreal or emulated games through WINE that is 100% open.

      The problem is trying to determine causality. You could equally argue that were it not for NVidia's binary drivers, there would've been enough need for someone to have spent the time and money to reverse engineer an MX-400 and build good open source drivers. From that point on, NVidia would have a vested interest in supporting the community drivers with their new boards, since it would be cheaper than maintaining their own in-house closed drivers.

      Instead, they beat us to the punch, and removed 99% of the motivation to do it "right".

      --
      Dewey, what part of this looks like authorities should be involved?
  34. I think that's a bad precedent by penguin7of9 · · Score: 2, Insightful
    Basically:
    - anything that was written with Linux in mind (whether it then _also_
    works on other operating systems or not) is clearly partially a derived
    work.
    - anything that has knowledge of and plays with fundamental internal
    Linux behaviour is clearly a derived work. If you need to muck around
    with core code, you're derived, no question about it.
    I think arguing what is a "derived work" is both dangerous and unnecessary.

    It's dangerous because if Linus's argument actually holds, than Microsoft can legitimately claim that Mono is a "derived work" from .NET and SCO can legitimately claim that Linux is derived from UNIX. Fortunately, courts, so far, do not seem to have agreed.

    It is also unnecessary because the kernel falls under a license. A license can state under what conditions something can be used. Whether or not the GPL has enough teeth, you could certainly write an open source license under which any module developed using the Linux kernel must itself have an open source license. Or you could write an open source license that explicitly prohibits the linking of closed source modules into the kernel. That makes the question of whether something is a "derived work" or not irrelevant and still enforces the intent.

    Now, we only need to figure out what the intent should be. Do we actually want closed source kernel modules?
  35. So the GPL in fact hurts Linux... by Otis_INF · · Score: 3, Interesting

    You don't have to agree with me, but I can only conclude that the restrictive GPL with its vague derived work clause is hurting Linux: a company won't put trade secrets into a binary driver to run the risk of losing these trade secrets because of a lawsuit based on the GPL which states that the binary only driver has to be opened up because it violates the GPL.

    OR get a proper system into place like in Windows, for kernel modules so the modules are not 'derived works' (calling kernel modules derived works is pretty stupid IMHO, but that aside) OR live by the fact that not a lot of hardware vendors will offer drivers for their hardware. (which then results in the 'home brewn' drivers which are not always up to par).

    Reading all the comments here I simply can't understand why so many people are so hardheaded. Don't you see / understand that to make Linux an OS with great support for a LOT of hardware, you have to convince hardware vendors their drivers will not be part of a GPL-case? Apparently not.

    --
    Never underestimate the relief of true separation of Religion and State.
  36. keep an eye on step two by ciaran_o_riordan · · Score: 2, Interesting

    > I'd rather run a 95% Free Software operating
    > system, than a 95% closed operating system

    All software should come with permission to study, share, modify, and redistribute. If 95% of the software you use comes with these freedoms, that's a great, but we mustn't lose sight of the final goal. We've come so far, we have soooo many pieces of software that people said we'd never have. If hardware companies would just give us specs, we could write our own drivers, and y'know I bet we'd write better drivers than they do! ;-)

  37. Because they have to by brunes69 · · Score: 2, Insightful

    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, and I have *NEVER* had a problem that wasnt 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).

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

    1. Re:-1 Flamebait by atriusofbricia · · Score: 3, Insightful
      Not likely anyone will see this at this point but I just had to say something.

      What pisses me off are the, as was said, hardheaded people who are of the immovable position that either a driver is open source or it's evil. Or worse, those who say that either it should be open source or not exist!

      You correctly, finally someone did it, pointed out that even if nvidia wanted to release their drivers under the GPL they can't! The owners of S3TC would own them inside of a week.

      And it is not a bloody solution to just say people with such hardware can just bite off. I want to see Linux on the desktop, not just relegated to the server room, and that is only going to happen with good driver support across the board.

      I'm sorry, not everyone who makes a board wants to GPL their drivers. They all have their reasons, right or wrong.

      I would rather see such drivers then have to tell someone when they ask me about linux,

      "Yes, it's a great OS. It's stable, runs fast, isn't full of bloat, blah, blah, blah. But you can only buy a model blah video card, model blah sound card. Because those are the only ones there are drivers for." Keep in mind that model blah and blah would likely be pretty old and out of date.

      And to those saying that nothing "important" would have to be released to OS their drivers, that would logically mean it should be pretty easy to write OS drivers that are just as good as the, in this example, Nvidia binary drivers. Why is it then I haven't seen such drivers? (I am not a programmer, so I am likely off base on this, feel free to reply if I'm wrong)

      Thank you no, I'll take my fully working, yes with binary nvidia drivers, system anyday. bah!

      --
      I was raised on the command line, bitch

      "Nemo me impune lacesset"

    2. Re:-1 Flamebait by brunes69 · · Score: 2, Informative

      You do realize that hardware specifications can, and likely are, also covered by patents owned by either Nvidia, another company, or jointly?

      I am 100% in favour of Open Source, but I am also 100% in favour of ENCOURAGING companies that TRY to support it.

      Open Source People don't seem to understand the concept of compromise and that Rome wasn't built in a day. Alienating hardware companies with your ideological rants is just going to discourage them and turn them off of the idea of supporting Linux altogether, and then you'll be stuck with no specs AND no drivers.

  39. 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.
    1. Re:Actual case of a module affected: PWC/PWCX by soccerisgod · · Score: 2, Interesting

      As I see it, you link your GPLed work to some proprietary work. There's hardly any base for calling this a violation of the GPL. If normal binary-only drivers are in a grayzone, than your zone must be #FEFEFE. I wouldn't worry about legal implications here too much.

      Besides, I think this discussion is mostly aimed at manufacturers - which indeed have a choice wether or not to include everything as source code. On the other side, anyone who disses you for doing what you do is clearly a moron. I'm sure the great majority of users appreciates your ongoing effords - most likely even the evangelists. Otherwise your driver wouldn't have made it into the kernel :)

      --
      If a train station is a place where a train stops, what's a workstation?
  40. GPL v3 will need to address this by linuxbikr · · Score: 2, Interesting
    The problem with kernel modules is as Linus has stated: they fall into a grey area of the GPL.

    Under a strict GPL interpretation, modules can be considered "derived works" because they link dynamically into a GPL environment (the kernel). The modules depends on kernel headers to compile and use internal kernel data structures exposed through module interfaces that are technically under the GPL. Thus, if you interpret the GPL as written, then yes, all modules would be required to be released under the GPL.

    Clearly such a situation is not acceptable to hardware manufacturers and Linus recognized this. Hence his "binary only is allowed for modules" rule. It is the kernel developers themselves that are changing the module environment to try and enforce the strict constructionist view of the GPL.

    RMS recognized this issue and developled the LGPL. The intent behind the LGPL was to allow for the development of GPL'd code that could be incorporated into binary-only products without tainting those products provided the binary product announced was linking to LGPL code and made it available on request (or distributed it with the product). As long as a clear separation exists between the proprietary product and the LGPL'd code (in other words, the proprietary code links to the LGPL'd work. If it copied LGPL'd code into its code base, then it would become tainted), the two models can co-exist.

    RMS doesn't like the LGPL. It is a compromise license designed to fit the realities of the world rather than what he wishes it could be.

    In my opinion, maybe the simplest solution is to relicense future versions of the Linux kernel under the LGPL. The distribution and modification requirements for the kernel proper would still be in force as with the GPL and make it compatible with binary-only modules explicitly since this very issue of linkage and mixing is exactly what the LGPL was designed to address. For the record, I prefer the LGPL over the GPL for practical, real-world open source development. It provides the best of both worlds when approached correctly.

    If the LGPL cannot fit, then clarification is required for the definition of derived works as encompassed by copyright law and how the GPL perceives it. v3 of the license should maybe incorporate a better, clearer definition of dynamic linking when no source is exchanged between two programs.

    I agree with Linus. Binary-only modules should be acceptable under the GPL since they do not incorporate GPL'd works directly except through runtime linkage.

  41. Re:Pessimists are mind-killers by jlar · · Score: 2, Interesting

    Of course, in real life not all are born equal. What I was trying to convey was that, in my opinion, society should work towards giving, e.g. disabled people, equal opportunity (though I do realise that it is a goal that cannot be reached in full).

    Equal opportunity does not mean that everybody will be able to become astronauts. But it does mean that most people will have greater opportunity to shape their lives according to their wishes than in other societies.

    And sure society is influencing how you live your life. But we also have a choice for ourselves. In my 'dream society' this choice is maximised.

  42. Don't push it... by OneFix+at+Work · · Score: 3, Insightful

    The reason most of these companies develop binary-only modules is to keep a leg up on their competition. Put simply, companies like nVidia don't want ATI or Matrox getting hold of their improvements. Some drivers include proprietary technology and speed or quality improvements that either can't or (in the interest of profit) shouldn't be open.

    Hardware manufacturers have very little that sets them apart from each other. Their biggest concern is that the driver source code would give away how the hardware works and therefore would show their competitors how to implement their technologies.

    Let the hardware manufacturers develop their binary only modules. It's better than what we've seen with the wireless market...which is what we would likely see if we started spouting "show us your source code" to all of the hardware manufacturers that choose to make binary only modules...

    And of course the other reason for a binary module is to charge for it (like is being done with Linuxant's DriverLoader) but...just like anything else worthwhile, there is already an open sourced equivalent under development.

  43. Pragmatism has to win out by joshsnow · · Score: 2, Insightful

    This has been more than paid for by the thousands of NVIDIA cards sold on the back of supposed "Linux support".

    Well, this is precisely why, I and many others, buy nVidia cards. I use a dual boot Win2K/Mandrake box and I know I'm getting excellent drivers for each operating system.

    I personally don't see any problems with closed source binary drivers. The kernel provides (or should provide) interface abstraction to a sensible level where it's possible for safe "black box" drivers to be written.

    Then again, I don't understand anything about writing device drivers or how tightly integrated to an os kernel they need to be. As a layman, I would have thought that the kernel provides certain services to a driver module which are accessable through an interface?

    Card manufacturers have trade secrets to protect - that's the nature of the world we live in. No matter how much you or I may wish that drivers are all open source, if an opensource driver reveals details about the hardware, manufacturers are not going to want to opensource the software.

    1. Re:Pragmatism has to win out by Elladan · · Score: 2, Informative

      Device drivers are essentially completely integrated with the OS kernel. Even in "microkernel" operating systems that purport to create a separation at a performance cost, this is true.

      There are a few basic reasons for this. The first is simplicity and performance. An OS which moves data around device drivers by sharing memory and providing direct access will be faster and easier to understand and debug than one which attempts to use a message passing scheme for all IO data internally.

      The second is really just reality. A device driver is something that talks to a bare hardware device. This is the very thing that the idea of "protection" and "decoupling" and such is trying to avoid. Hence, by definition, it has horribly powerful low level control over the computer. All sorts of catastrophic actions by a device driver are trivial and also impossible to block. Want to crash the entire system bus? Read and write over any random section of kernel memory? Crash other hardware devices? Cause other hardware devices to walk over memory? Deadlock core subsystems by taking locks in the wrong order? Etc.

      All of these things are trivial to do with low level hardware access. Even making a "microkernel" with different protection levels for device drivers doesn't really help at all. Even if there's some redumentary memory protection through the CPU, the driver can certainly hang the computer, or read/corrupt any memory it pleases through the DMAC or some other hardware access primitive.

      The only correct way to consider a device driver is that it's a core component of the OS kernel itself. There may be some interfaces the kernel makes available to particular sorts of devices so they can work in a generic way, but certainly in any sense of stability, security, or correct operation the device driver is just as critical as anything else in the OS.

      This is the problem with closed source ones, of course. They can't be supported by anyone except the company that made them, so they'll break whenever the kernel changes in a way that's incompatible or simply exposes a bug in the driver. Since nobody can fix it, this simply means that any poor person stuck with such a badly supported piece of hardware will be left out in the cold when new kernel releases come out, having to wait for the company they bought the hardware from to update the drivers.

      And of course, when the OS crashes, no matter what the problem is, only that company can fix it since nobody else has the requisite information. So, unless that company feels comfortable fixing all kernel bugs, not just their own drivers', for their customers, anyone with such a piece of hardware is effectively eliminated as part of the general debugging community for Linux. Meaning, Linux as a whole suffers since any problems these people have in the rest of the kernel are not going to be fixable.

      Proprietary software may be ok for applications in some situations, but it's really horrible when the core system software isn't available. You have problems that are simply unfixable - and break all applications too!

      Computers should work properly (ie., they shouldn't crash and should perform well), and keeping IO device specifications and drivers a big secret is one of the most significant things keeping them from doing that. I really think hardware manufacturers should take far more of the blame than they do for this issue - operating systems and software in general gets a bad rap in terms of stability, but how can something be stable when the way it talks to the hardware it runs on is this big secret kludge and any problem will cause it all to fall apart?

  44. With all due respect..... by lysium · · Score: 2, Insightful
    I understand where you're coming from, but I'm firmly in the "I just want my expensive hardware to work properly" camp.

    Do all of us Linux users a favor, then. Please switch to Windows. Or better yet, Mac OSX. Linux should not change itself to support the needs of the consumer-gamer crowd; if you want your expensive hardware to 'just work' why are you running on a tinkerer's operating system?

    =====================

    --
    Together, we will drive the rats from the tundra.
  45. Sure, less realistic.. by msimm · · Score: 2, Insightful

    Wouldn't it be more productive to concentrate on finding a solution everyone can accept?

    --
    Quack, quack.
  46. It gets complicated by RCR · · Score: 2, Insightful

    My employer has a product that includes an embedded Linux system. Some of the product code runs in user space, some is implemented as loadable modules. I can find no clear guideline anywhere that tells me whether the product can remain proprietary (i.e., closed source).

    First problem: Nobody's *opinion* (not even Linux or Stallman) counts - only a legal interpretation of the GPL has any weight in the real world (i.e, with my employer). Such a legal opinion does not yet exist (though it probably will post-SCO).

    Second problem: Does the fact that some code is a module mean it has to be GPL'd? (These aren't device drivers, BTW).

    Third problem: How much does the use of header files "infect" the code with GPLness?

    As much as I love Linux, using it in a litigation-shy big company is more complicated that most people realize.

  47. Linus doesn't get to define "derived work" by Sloppy · · Score: 3, Insightful
    If a piece of code is a derived work, then the license Linus chooses (the GPL) sets the terms, and the issue of "linking" and so on, is relevant. If a piece of code is not a derived work, then the GPL, the contents of the COPYING file, and Linus' desires, are irrelevant. When Linus tries to refute Larry McVoy's excellent point, Linus shows he's very aware of this:
    But a license only covers what it _can_ cover - derived works. The fact that Linux is under the GPL simply _cannot_matter_ to a user program, if the author can show that the user program is not a derived work.
    although he then shows a little confusion:
    Does that mean that any kernel module is automatically not a derived work? HELL NO! It has nothing to do with modules per se, except that non-modules clearly are derived works (if they are so central to the kenrel that you can't load them as a module, they are clearly derived works just by virtue of being very intimate - and because the GPL expressly mentions linking).
    (I say this indicates confusion, because of his reference to "because the GPL expressly mentions linking." What the GPL says is irrelevant in discussions of whether something is or isn't a derived work.)

    I think it would be interesting to see the support for these two statements:

    There are areas that are not gray at all: user space is clearly not a derived work, while kernel patches clearly _are_ derived works.
    and
    Basically:
    - anything that was written with Linux in mind (whether it then _also_
    works on other operating systems or not) is clearly partially a derived
    work.
    - anything that has knowledge of and plays with fundamental internal
    Linux behaviour is clearly a derived work. If you need to muck around
    with core code, you're derived, no question about it.
    Where's he getting this stuff? I have serious doubts that copyright law contains the words "user space" anywhere. So just what causes that distinction to exist? My guess is that he's making it up (with the best intentions and desire, of course).

    That one about "anything that was written with Linux in mind" is particularly amazing.

    --
    As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
    1. Re:Linus doesn't get to define "derived work" by jpallas · · Score: 2, Interesting
      Furthermore, RMS doesn't get to define "derived work", and Darl McBride doesn't get to define "derived work."

      If I had Linux in mind when I wrote a haiku, is it a derived work?

      The one definition
      Of being a derived work
      Is copyright law.
  48. How about user-land apps... by yeremein · · Score: 2, Interesting

    ...that include Linux kernel header files?

    Linus commented in the LKML thread that "YOU CAN NOT USE THE KERNEL HEADER FILES TO CREATE NON-GPL'D BINARIES" (emphasis in original).

    I've written a userland program for my company that #includes a single kernel header file (linux/nbd.h, the network block device).

    It's mostly of academic interest, since my company has no plans to ship this program, but does #include'ing that GPL'd header file mean that the program must now be GPL licensed?

    I didn't think so, since I'm not getting any actual GPL'd code in my own program (just #defines for ioctl() numbers, and a couple of struct definitions), but Linus's comment seems to say otherwise.

  49. This is pathetic by pclminion · · Score: 3, Interesting
    This is exactly why I'm choosing the BSD license for my code. If you want my code, by all means USE it. By all means CHANGE it. In binary form if you wish. All I ask is that you don't claim that you WROTE IT yourself.

    More and more these days, I view the GPL as moralistic masturbation. It's pathetic and sad. There are plenty of other things in this world that are worth being moralistic about. I don't see how software development falls under the same heading as "helping the homeless" or "stopping persecution" or any of those things we really ought to give a shit about.

    Sorry, but I just don't want to waste my energy on that crap. My primary objective with my code is for people to USE it. Not to sit around smoking cigars with the boys arguing over who has a "right" to it. Grow up and find something worth fighting for, for chrissake.

  50. On selective memory. by mindstrm · · Score: 2, Interesting

    See, I've used linux since around version .95

    I remember, clearly, reading the kernel license, which was the GPL with an added clause: that binary-only kernel modules were permitted, as long as they use an interface that already exists in linus' kernel tree. So you could write a new binary only network driver, or scsi driver, or video driver, but not some totally new kernel functionality, and wrap it up as a module.

    Now, I realize that this clause seems to have never existed, and I must have mentally mixed up some mailing list posts with the actual license... I can't find it anywhere in the kernel archives.. but I swear Linus' older kernel license was not just the stock GPL... it had some exceptions.

    Anyone else remember this, or am I off my rocker?

  51. Re:Free? I don't think so. by Trejkaz · · Score: 2, Interesting

    This is where a model like an extreme version of the 'random model' might come in handy. Release neither the source, nor the binaries, until the sum total of donations crosses a certain mark.

    Of course it would have to be a bloody good product to achieve it.

    --
    Karma: It's all a bunch of tree-huggin' hippy crap!