LWN.net Logo

Advertisement

E-Commerce & credit card processing - the Open Source way!

Advertise here

Pointless ideology?

Pointless ideology?

Posted Sep 3, 2004 2:08 UTC (Fri) by paulusbd (subscriber, #6253)
In reply to: Pointless ideology? by allesfresser
Parent article: Pointless ideology?

I also agree to that having this discussion is very good. However, I think there is a consideration that has not been presented.

I still don't understand why there is this feeling that software must absolutely be free. There is always an exception to everything and I have never heard of a software or hardware developer who has fed themselves or their family by giving away software that took their creativity and hard work to develop. I, however, very much agree that the software community should have the freedom to choose which software they use, free, not free, or both; all while keeping within a framework that is fair to those who use it.

A point in this discussion that I have not noticed, perhaps I'm just in need of new glasses, is the one that deals with proprietary hardware. Most Non-GPL-Compliant Modules are for hardware that has a great deal of custom design to it, if you will. The Non-GPL Modules are compiled by the Vendors (Nvidia, Promise, and others) who wish to keep the inner workings of their ASICs a secret for business reasons. It is a real shame that some type of API mechanism could not be developed to allow a wrapper type driver to keep GPL Kernel Derived code separate from an interface that should remain proprietary and allow it to do so in such a manner as to satisfy all and allow the device in question to operate. I have worked for several companies that have developed specialized hardware for Windows and UNIX that also wished to port a driver to Linux. I was fortunate enough to be involved in a few of these ports and gained some insight into the “Whys” of the issue. The problem we ran into was how to make a driver that exploited the capabilities of the hardware without broadcasting the trade secrets that made the hardware unique to all of our competitors in the form of reverse-engineerable source code. A great number of secrets can be revealed, including flaws (I challenge any of you to develop an ASIC without flaws, even after 3 to 4 rolls) in how certain code is written to 'talk' to ASICs.

If this were not such a worry, the issue with modules would not be an issue. I am just saddened by the attitude of "We don't want any proprietary stuff" when it leaves people out in the cold for no good reason (I know plenty of good arguments have been raised in the issue of closed source software, but hardware interfacing is another issue). A compromise must be struck on this issue or Linux will be deprived of a great number of useful inventions. A great number of us love Linux and what it stands for, but we don't want to give up our toys either! I think the sentiment of "Find another O/S if you want to use that" is just as exclusionary as what closed source software is accused of being.

There are very good arguments on both sides of this issue and all should be considered. What needs to be done is the creation a good solution that would satisfy the development, legal, and end-user communities while allowing companies to keep their secrets.

-Paul D.


(Log in to post comments)

Re: Pointless ideology?

Posted Sep 5, 2004 8:05 UTC (Sun) by gleef (guest, #1004) [Link]

I still don't understand why there is this feeling that software must absolutely be free.

You don't need to use software that's absolutely free if you don't want to. However, for legal and maintenance reasons software developers and distributors need to be able to deal with clean, absolutely free code. If the Linux Kernel distribution contains non-free code, they face lawsuits and huge maintenance headaches, and lose developers. If the Debian distribution contains non-free code, they lose developers and distributors. If it doesn't matter to you, don't worry about it for your stuff, but let the people who proprietary software harms worry about it for their stuff without griping about the decisions they make.

The Non-GPL Modules are compiled by the Vendors (Nvidia, Promise, and others) who wish to keep the inner workings of their ASICs a secret for business reasons. It is a real shame that some type of API mechanism could not be developed to allow a wrapper type driver to keep GPL Kernel Derived code separate from an interface that should remain proprietary and allow it to do so in such a manner as to satisfy all and allow the device in question to operate.

As far as I know such a wrapper could be written. However, the Linux maintainers have wisely and practically declined to include such a module; if this wrapper were to be in the main kernel, it would be a nightmare. First, including a wrapper would encourage binary drivers, which notoriously include poor or missing support for non-mainstream hardware; for example, NVidia drivers have poor AMD64 support and no PPC support.

Next, this wrapper would have legal implications. Binary drivers in the Linux kernel are debatably a contract violation. The wrapper would potentially make it harder to enforce the GPL.

Also, the kernel developers would increasingly be faced with the choice of making a change to the kernel and dealing with outcry from broken binary drivers, or slowing kernel development. This is a lose-lose choice that kernel developers want to stop confronting; your suggestion would have them deal with it more often.

Proprietary code might have a place in the world, however, that place isn't stashed inside Free Software.

Re: Pointless ideology?

Posted Sep 7, 2004 22:32 UTC (Tue) by paulusbd (subscriber, #6253) [Link]

Excellent reply!

This is a much more understandable reason than that of an ideology issue. Shame on me for not doing my due diligence and homework.
I suppose most problems could be worked around as long as the problem is just the one with distribution issues. Unfortunately, I do see the storm brewing about the proprietary modules being developed with GPL Kernel interface code. This is a more complex issue and one that I would hope could be addressed.

I couldn't agree with you more about the lack of support and development for a great number of these devices. The companies I have worked with always seem to get into these ruts and they completely loose interest in the Linux port. This keeps the driver stuck at whatever Kernel level it was built for when the interest left the building. Keep in mind that it is the company interest I am talking about, not the developer's. A great number of us would love to continue our work, if only for the idealist reason that it should be done and be state-of-the-art :) It is painful to hear the complaints and know the shortcomings of the code that is out there while being greatly hindered in any effort to correct the situation. Silly money and profit issues, bah! And you are right about the API issue; the Linux kernel does change often enough in its interfaces as to put a great strain on those who must maintain the API.

Quite true, Proprietary code shouldn't be hiding inside, nor stashed.

-Paul D.

Copyright © 2008, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds