In one of my previous blog entries about a Dell Support issue some of the comments suggested that the reason we were in this mess was because of the inflexible nature of the Linux kernel, the start of which was this blog entry about how evil the GPL is when it comes to making closed source drivers and why this is stopping hardware manufacturers from contributing to the kernel.
I’ll try and address all of the issues that came up in the discussion, and then if those who’s comments I have removed for being OT from the previous article want to discuss further, they can on this entry.
Hardware Manufacturers Need Trade Secretes for their drivers – False, hardware is not sold because the software is good, it’s sold because the hardware is good. The loss in effectiveness and quality that a manufacturer will suffer from keeping everything in house will be massive as the amount of possible peer review and reuse of other modular parts is small.
The Musings blog above states that “where some zealots believe that people who make money selling software are somehow evil.”: Firstly hardware makers make money selling hardware, not software. Secondly, the GPL has no issues with people making money from selling software, it’s concern is with the reciprocal freedom you must grant to all users. There may be some reorganisation that’s required in order to make money effectively but none of these issues effect hardware manufacturers.
A constantly changing kernel is required to support latest hardware – False, there is no technical reason why the kernel must be changed in order to support hardware that isn’t in the main line. It’s just not something we’ve focused on solving. It’s true that if you have a fix for your hardware as a patch or source that our current packaging systems won’t keep track of it and automatically add in your extra or fixed modules. Even reverse deps for the kernel when it comes to things like virtual box cause functionality to regress when updating. But these are distribution issues (for Ubuntu or Debian to solve) not for the Linux Kernel.
We will never have the year of the Linux desktop until Linux can stabilize their driver model to the point that new drivers can run in 5-year-old kernels – False, if your release cycle is 5 years, you’re doing something wrong. If your computer is running an OS that old, then we’re doing something wrong. A modern OS should be flexible enough to continue to run on old hardware, doing the same things it did before without needing extra resources. Logically only extra functionality requires more resources. Although entropy might be playing a joker card.
All Advocates want to see Everyone using their Linux Distro – False, Not all advocates care about market share, or perceived market share, they care about being treated fairly. If removing the freedom aspect of my distro is required to make it popular, then I say that we must find another way or simply admit that the cost is too great. I don’t think this is something that we have to do though.
There is no difference between closed source and open source production, only the people involved – False, open source is not just about where the code is made, it’s about how it’s made. The fact is, FOSS has an efficiency that can speed past closed source, even when more attention is being paid to code quality and a greater number of releases.
None Technical Users don’t need access to the Source Code – False, all users should have access to the source code so that they can hire or in some manner convince a programmer to fix problems and help them effectively. No problems in proprietary software is ever fixed outside of the company that writes it, only workarounds and mitigations are possible.
Politics has no Place in Software – False, whenever you’re talking about more than one person and furture insight more advanced than next week in any human endeavour you will run into politics. Social issues are not simply distractions from rigorous logic. Practicalist extremism is just as unfortunate as political extremism. Idealism is a guiding light, it might not tell you what to do, but it can help explain you the long term technical and social costs of a given solution. If you don’t care for other people in your community it doesn’t mean that those issues are not important, it just means your not able to be compassionate and considerate towards others enough to take effects towards them seriously in discussions.
Linux programmers should be catering to the hardware suppliers’ every whim – False, hardware makers are in business of selling hardware, if they want their hardware to be effective then they will cater themselves by joining the community or pay someone already in the community to make sure their hardware works effectively. Linux does not owe OEMs some social responsibility to cater to their whims, not unless those OEMs are paying for that service.
Linux programmers deliberately make deployment as difficult as possible – False, all the top linux programmers I’ve ever known have been happy to work with and give their time towards hardware manufacturers who want to join in as partners. The Linux Foundation even went out of their way to make sure there were no issues by allowing members to sign NDAs with certain companies to acquire their specifications. Linux programmers are champions of working well with others, despite their rough social standards.
Even when vendors do release specs/source, the result is still sucky – False, most code done for Intel hardware is made by Intel developers, most code for the AMD ATI graphics cards are fairly young and are already making good progress with stability. Most FOSS code is of better quality then closed source, this includes drivers. One of the reasons companies don’t want to open up code is because they’re embarrassed by it’s quality. see bugs per 1,000 lines.
There are things we could do to improve the driver situation, introducing some form of source based package which sits in a special directory where all the custom drivers sit, that are automatically recompiled for each new kernel update. We could further modularise the kernel driver set, so updates can be more modular too. We could do more about making sure that updates are held back when functionality will be lost. But whatever, it’s up to the developers and the packers of the kernel.
Now I’m off for a nice walk, it’s a nice day outside.