Novell made the right decision even if for the wrong reasons
Novell has decided not to use proprietary Linux modules such as the NVidia accelerated driver. My first reaction was that Novell was being needlessly idiotic. Then I read this article on OSWeekly.com, by Matt Hartley. It calls out the leading Linux distributions for failing to band together to pressure hardware vendors to pre-install Linux. I've been saying basically the same thing for the past few years, so I heartily agree with this article. It was then that it occurred to me that Novell may have made the right decision, even if for the wrong reason.
Before I continue, I have to point out a delicious irony in the first page of the above-mentioned article. It reads, "I have just learned that Novell is working to front a full scale assault on Microsoft's Vista as they ready their own Linux distribution, SuSE 10.1 and that super-cool xgl feature based on OpenGL." I can't help but wonder if the either Novell or the author is aware of the fact that Microsoft owns the patent on OpenGL. SGI used to own the patent, but Microsoft snagged it in one of the infamous "bail-out" deals Microsoft loves to make with struggling competitors. No doubt Microsoft coveted the patent for OpenGL because it was the only credible competition for DirectX. Should OpenGL-based games ever pose a threat to its PC and Xbox game market strategy, Microsoft now has the ability to cause trouble for the competition. Microsoft has hinted at waging patent wars against Linux, and this may be one that it has in mind. But that's a topic for yet another column.
Obviously, the Novell decision affects more than just NVidia, but NVidia practically owns the graphics card market, and for good reason. The video cards that use the NVidia chipsets are top notch. Virtually every computer I own has an NVidia card, and every computer I have owned in the past several years had an NVidia card. Why? They (with a few exceptions) work great, and they work even better on Linux when you use the NVidia proprietary driver. The driver is so popular that many Linux distributions install it by default when they detect that you're using an NVidia-based card. When distributions do not install it by default, it's generally a breeze to install it yourself without having to download the driver from the NVidia web site.
As I said, I'm an NVidia guy, and I'm not familiar with ATI cards or drivers. So I'll spend most of my time talking about NVidia. But the sentiments I am about to express apply to all proprietary drivers, even drivers for devices other than video cards.
Given the quote from vice president of Linux product management "[this decision] gives the responsibility for drivers to the vendors, which is where it belongs", I am inclined to assume Novell made this decision to offload the burden of maintaining the proprietary drivers to the vendors, not to pressure the vendors to reconsider how they license their drivers. That's too bad.
Come together, right now
So to echo the spirit of Matt Hartley's article, I am calling out all Linux distributors to follow Novell's lead, but for the right reasons. It's time Linux distributors, large and small, commercial and free, band together and pressure vendors, especially NVidia, to relicense their drivers under the GPL.
I'm perfectly aware of the fact that vendors like NVidia and ATI have proprietary driver algorithms they want to protect. But as far as I can see, NVidia has already made public all of the source code that comprises the kernel portion of the NVidia driver. That's probably because this code isn't doing anything interesting with the card. As far as I can tell, the NVidia driver doesn't even load a proprietary binary, such as firmware, in order to work. Most of the interesting stuff must take place in the Xorg modules and GL drivers, none of which would taint the kernel no matter how proprietary they may be. I'm not sure whether the NVidia license conflicts with the Xorg license, but that would be a whole 'nother issue.
The kernel issue must revolve around this header in the NVidia driver source (emphasis mine):
* Copyright 1999-2001 by NVIDIA Corporation. All rights reserved. All
* information contained herein is proprietary and confidential to NVIDIA
* Corporation. Any use, reproduction, or disclosure without the written
* permission of NVIDIA Corporation is prohibited.
Well, all of NVidia's information contained therein may be proprietary, but it isn't very confidential in any practical sense. You can browse through the source code all you want. So why not simply change the license to be GPL? WHat harm would that do to NVidia? None that I can see.
The only possible problem I can imagine is if the NVidia driver loads one or more of its proprietary libraries when you run Xorg such that these libraries become part of the kernel at runtime. I don't see any evidence of this, but it's conceivable, since the driver module seems to use up 4 MB, and I don't see how the source code alone compiles into a module that size. Maybe I'm missing something in the code that allocates that huge chunk of memory for reasons other than loading something at Xorg runtime.
But let's assume, for the sake of argument, that this is the case. The NVidia driver is loading proprietary binary code at runtime, and does so in such a way that this proprietary code becomes part of the Linux kernel. Obviously, in this case, it would not solve the problem to relicense the source code as GPL.
It would solve the problem, however, to make that binary code firmware that is licensed such that it can be included in all distributions. The Linux kernel already accomodates drivers with proprietary firmware, so this approach shouldn't taint the kernel. But (assuming NVidia isn't making its source code proprietary for other reasons, such as company politics), then perhaps the need to turn some portion of its libraries into firmware could be the sticking point for NVidia.
Here's why. The only way to switch from loading binary code into the kernel to making this same code firmware would be to modify the NVidia cards. Unless NVidia provided a way for the cards to work with both the firmware approach and existing drivers, this kind of design change would break backward compatibility and force NVidia to rewrite all of its drivers for other operating systems.
I hope NVidia will excuse me if I have little or no sympathy for the company if it has to deal with this problem in order to make its drivers GPL. The same goes for ATI, if ATI faces a similar problem. You can find NVidia chipsets everywhere these days, including embedded systems and motherboards. NVidia must be making a feces-load of cash. Surely it can afford to make this sort of change. It might jack up the price of its video cards, but it could also make these cards run faster.
The beneficial tradeoff would be that the kernel developers would carry the burden of maintaining the source code for the drivers. NVidia would no longer need to modify its source code every time a change in the kernel breaks their current driver code.
Put the pressure on
NVidia has a weak spot for Linux because NVidia's video cards are favored by those companies that use Linux and NVidia for high-performance rendering of graphics for animation, among other things. However, I don't see how anyone could get every Linux user on the planet to ditch their NVidia graphics cards, and I don't know that it would make a big enough dent in NVidia's bottom line even if they did. Maybe I'm wrong, but I think there's a better approach.
Linux distributors should band together to exercise some of their muscle to pressure NVidia, ATI, and others to GPL their drivers. They should make it as difficult as possible to install the proprietary drivers, even if they have to insert boot scripts to delete the modules and the proprietary libraries. They should, as a unified group, threaten to make it extremely painful for all but the most savvy Linux users to install and use the proprietary drivers. Better still, pick one or more alternative video chipsets with GPL drivers (I hear there are good GPL drivers for Intel video chipsets), and rub those in the faces of NVidia and ATI.
Threaten to promote these alternatives in advertising. Threaten to make a deal with Intel (or whoever) to help them sponsor a campaign to "trade in your NVidia/ATI card for $XX off on the alternative". Even better, go after both NVidia and ATI and play them off each other. Make it clear to NVidia and ATI that if one of them goes GPL and the other doesn't, that could make all the difference in video card brand loyalty. It takes only one victory to start a campaign to rip out your NVidia or ATI card in favor of the other because those drivers are finally GPL. Indeed, I might find it hard to give up the NVidia performance I enjoy for an inferior card, but ATI is real competition. I would be among the first to rip out all my NVidia cards and replace them with ATI cards if ATI went GPL.
I'm sure there are other tactics that escape me at the moment that would increase the pressure on NVida, ATI, and others. Some combination could work.
The key here is that the Linux distributions leaders are dropping the ball on several fronts. As Matt Hartley aptly pointed out, they're dropping the ball on getting Linux pre-installed on hardware. When it comes to hardware preloads, they seem to be unaware that if they cooperate more and compete a little less, they'll create a rising tide that lifts all boats. The same applies when it comes to making NVidia and ATI drivers GPL. All Linux distributions would be much more attractive to a wider audience if they all just worked with the favorite video cards of existing and potential customers.
The question is, are the executives and leaders of distributions listening? Are you willing to put in the effort? A lot of you give constant lip service to the importance of free software. How about backing that up with some aggresive pressure on those companies who fail to provide GPL drivers?
Fast/Flexible Linux OS Recovery
On Demand Now
In this live one-hour webinar, learn how to enhance your existing backup strategies for complete disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible full-system recovery solution for UNIX and Linux systems.
Join Linux Journal's Shawn Powers and David Huffman, President/CEO, Storix, Inc.
Free to Linux Journal readers.Register Now!
- Devuan Beta Release
- May 2016 Issue of Linux Journal
- EnterpriseDB's EDB Postgres Advanced Server and EDB Postgres Enterprise Manager
- The US Government and Open-Source Software
- The Humble Hacker?
- BitTorrent Inc.'s Sync
- The Death of RoboVM
- Open-Source Project Secretly Funded by CIA
- New Container Image Standard Promises More Portable Apps
- AdaCore's SPARK Pro
In modern computer systems, privacy and security are mandatory. However, connections from the outside over public networks automatically imply risks. One easily available solution to avoid eavesdroppers’ attempts is SSH. But, its wide adoption during the past 21 years has made it a target for attackers, so hardening your system properly is a must.
Additionally, in highly regulated markets, you must comply with specific operational requirements, proving that you conform to standards and even that you have included new mandatory authentication methods, such as two-factor authentication. In this ebook, I discuss SSH and how to configure and manage it to guarantee that your network is safe, your data is secure and that you comply with relevant regulations.Get the Guide