The Linux Licensing Labyrinth
The land of open source software is awash in an often confusing array of various licenses and rules regarding what is and is not allowed once someone has written a piece of code. It's enough to scare some vendors away from FOSS altogether, and that can be a problem when it comes to creating open source drivers. Fortunately, some vendors are coming around.
11/18/08 4:00 AM PT
It's a small wonder that the Linux operating system remains vibrant in multiple industries and is poised to make a dash for more consumers' desktops, considering how often misunderstandings get in the way of its advancement.
For instance, Linux was not immediately recognized as a real OS in the way that consumers and business owners viewed the Apple computer or IBM PC in the early days of computing. Linux was available in too many confusing distributions. Even today, many non-Linux users misunderstand the open source model and view non-commercial software much like they view shareware or freeware. They question how good it can be if it's free.
Even more problematic for the growth of Linux has been the attitude of some hardware vendors. They, too, share some misperceptions surrounding Linux's distribution under the General Public License (GPL). This confusion over license requirements and code writing has many times resulted in some vendors' refusal to write Linux versions of their proprietary drivers or firmware. They feared any involvement with free software would force them to open up their own source code.
Do the GPL and its requirements continue to hamstring the wider adoption of Linux? Linux users have had to resort to hacks or unauthorized workarounds. Average users simply want their software to "just work." On principle, they don't generally care about licensing and proprietary vs. open source -- they have more practical needs.
"The basis of that question is that hardware vendors would have to give away too many secrets under the GPL. This is not a concern they should have. More fundamental economic factors are involved," Bdale Garbee, chief technologist for HP's Open Source and Linux Organization, told LinuxInsider.
Major video hardware vendors found ways to supply Linux drivers within the GPL license framework. The notion that the GPL is a hindrance to advancing Linux is more perception than reality, according to Garbee.
For instance, Intel decided to make all of its video drivers available as open source. ATI also agreed to make full program code available. [*Editor's note] So now the open source world has full access. Nvidia is the only holdout of the top three video vendors.
"But Nvidia is coming around. It does provide an open source code for a binary driver code wrapped around an open source interface. The Nvidia model could be used by other vendors who are worried about the GPL restrictions," he said.
The number of holdouts in providing open source code for Linux is shrinking. However, more education of corporate lawyers and upper management is needed to fully explain the impact of the GPL license.
"I believe there is a big misunderstanding of the GPL that leads to this problem. The GPL is developer friendly much more so than traditional proprietary drivers. The legal analysis [of ownership rights] is exactly the same with the GPL and proprietary for drivers," Jason Wacha, vice president of corporate affairs and general counsel for MontaVista Software, told LinuxInsider.
One popular rumor has it that when one writes drivers for Linux, it places the code under the control of the GPL. But that is not what the GPL says, and word is slowly getting out about the correct interpretation of GPL licenses, according to Wacha.
The result is that a lot of commercial vendors are coming around to open source.
Both corporate lawyers and hardware developers are gradually getting up to speed on GPL license issues. The lawyers especially are undergoing a real sea change of understanding, Wacha said.
"Senior business people is where the real problem is. They haven't done the research on what the real situation is with the GPL. They think they have to give up all proprietary code if they use open source drivers. That is not what the GPL says," he explained.
Not all software used in Linux -- including drivers -- has to fall under the GPL license. The Linux inventor, Linus Torvalds, released his operating system under the GPL because he thought it was the best protection, according to Wacha. The GPL was not created for Linux.
Learning How to Share
The solution to getting hardware vendors to the open source table is for them to learn how to share. The numerous licenses available to regulate software address different sharing levels by software creators. They also address the issue of ownership rights from derivative works.
Developers have to decide if they want to follow the share-alike principle, the basis for the GPL license.
"GPL is the first and best known license for open source. It says that to use the covered code I will give you this set of rights, but you agree to give the same set of rights to others. GPL has been one of the keystones of why we are seeing so much success with Linux kernel development," Garbee said.
Some developers view this as a viral license. They believe that if developers use it to distribute their drivers, it will infect their software with legal trouble, both Garbee and Wacha said.
The GPL license, like any other license regulating software use, is a usage agreement. It is not a law, Wacha explained.
Some of the better-known software licenses besides the GPL are the LGPL, the Mozilla Public License (MPL) and CPL. These are called "reciprocal agreements" that allow the developer freedom to modify and redistribute code but also place strong restrictions on selling or owning derivative works.
Under the GPL version 2 license, any derivative work must be licensed as a whole at no charge to all third parties. The MPL license is one of the first to include a royalty-free patent license and patent defense protection, said Wacha.
Other licenses, such as the BSD, MIT and Apache licenses, provide unrestricted use with provisions to create derivative rights and redistribute the software code under a proprietary license, according to Wacha.
Even with these varied license options, Linux developers have alternatives to uncooperative hardware vendors. It's the exception rather than the rule that users cannot find suitable drivers.
"It's been widely reported that Linux supports more devices than any other OS. I think most users would tell you that the majority of devices they need work on Linux," Amanda McPherson, vice president of marketing and developer programs for the Linux Foundation, told LinuxInsider.
In cases where vendors fail to open their code, the Linux Foundation and the Linux community can be helpful both in education and driver development. Uncooperative hardware vendors are often folks who just have not had as much exposure to the Linux development process, she said.
"We find that most vendors are interested in collaborating on driver development. It's also worth noting that the Linux community offers to write drivers for free for any vendor through the Linux Driver Project," she said.
The Linux Driver Project (LDP) says it has over 300 developers who want to participate. Progress includes many drivers that already are accepted into the Linux kernel tree, with many more being developed.
"It turns out that there really isn't much hardware that Linux doesn't already support. Almost all new hardware produced is coming with a Linux driver already written by the company, or by the community with help from the company," the Linux Driver Project executive summary reported.
Despite this level of cooperation, certain interfaces like video input devices and wireless network cards are not generally well supported by Linux. However, large efforts are already underway to resolve this issue, according to the project.
*ECT News Network editor's note: ATI has released to the open source community specifications for building drivers and has assisted with the development of those drivers, according to John Bridgman, director of software engineering for open source drivers at AMD's graphics products group.