Thursday, July 05, 2007

Will GPLv3 make Linux irrelevant?

Well, GPLv3 has finally been released. This is an attempt by many of the movers and shakers in the open-source community to close the loop holes found in GPLv2. However, as someone who is trying to use Linux in many different types of embedded applications, I find GPLv3 somewhat troubling.

The reality of the embedded space is that silicon vendors such as Marvell, make it almost impossible to get data sheets for their parts -- requiring NDAs galore. And, vendors such as NVidia and ATI won't release their information at all. Whether or not you believe in the existence of intellectual property (IP), these manufacturers do. Hence, if you want cutting edge components in your devices, you have to play by their rules. I'm not happy about that, but that's the way it works in this business.

The reality of the embedded space is that we're trying to move hardware. Routers, cell phones, etc. are what we sell. The software that makes that hardware work is important if it cuts time to market. But, on the whole, the software/OS is a means to an end for most manufacturers. And, I feel that Linux is gaining popularity at least partly because we're seeing it in so many new devices that people interact with every day.

This is not to belittle the efforts in making desktop Linux a better product. I've been running Linux on my laptops for over 6 years now and it's better than ever. However, it's still not something I'd give my grandmother and expect her to be able to send emails with it. You still need a broadband connection and a lot of patience to work with Linux and all of the packages that need to be installed and configured. That's simply beyond most average consumers.

Nonetheless, I've got an NVidia GPU in this laptop and I want it to be able to run the 3D applications I want/need to do my work. Consequently, I use NVidia's proprietary driver and it works just fine. I also use Intel's IPW3945 wireless driver that also has proprietary hooks in it. GPLv3 would attempt to close the door to these proprietary drivers.

Now, the die-hard GPL folks would say that allowing for proprietary drivers is a slippery slope. If you allow proprietary drivers, then it's no longer open source and soon you'll have all kinds of patents that preclude the use of the software. The reality is that I just want my hardware to work. And, I'm not willing to wait for the 3-5 years that it would take for a "new" hardware vendor to come onto the scene that builds open hardware. Additionally, since Linux is such a small piece of their overall business model, I don't see companies like NVidia going out of business simply because we choose to use a vendor who open sources their driver -- if you could even find a laptop that used such a chip. But, I digress...

Embedded device manufacturers want software that enables them to move iron. The argument about royalties is pretty much OBE these days. Most O/S vendors have provisions for royalty-free code distribution. Instead, you want an O/S that enables you to move quickly, has developers available and can be tweaked to fit your application. Linux does this as long as you don't get draconian on the "no proprietary code" thing.

Fortunately, Linus and many other key Linux developers have not been too keen on GPLv3. But, there have been many attempts to limit proprietary drivers in the kernel by using the EXPORT_SYMBOL_GPL option on key APIs such as sysfs. This drives manufacturers to use their own power-management interfaces via /proc rather than potentially invalidate their intellectual property by using the existing power-management interfaces in /sys. This does not help the industry, nor does it help Linux, IMHO.

So, if Linux goes the way of GPLv3 or becomes too difficult to deal with WRT protecting your IP, manufacturers will simply switch to a different O/S. Unlike hardware manufacturers where there might be 3-4 vendors of a particular type of silicon, e.g., wireless interfaces, there are hundreds of different O/Ses out there. Linux is gaining momentum because vendors are using it. The community as a whole benefits from this shift.

If you make it too difficult to live within the bounds set forth by the licenses, manufacturers will move to something that is easier to live with. Therefore, Linux will become increasingly irrelevant in the embedded space. Another aspect that does come into play here is the thought that, "if my phone, MP3 player, GPS, etc. are all running Linux, maybe I should try Linux on my desktop as well". This is helping expand the use of Linux on the desktop. If Linux disappears from the devices we work with every day, then it disappears from our thoughts as well. And then, Linux runs the risk of withering on the vine.

Don't get me wrong here. I'm absolutely in favor of open source and the goals of the open source community as a whole. Given a closed source program vs. an open-source version of a program with equivalent capability (I'm even willing to take a little less capability), I'll go with the open-source program. But, I'm also a pragmatist. When it comes to hardware, silicon vendors control my ability to create interesting, desirable devices. I have to be able to work with them or I have no product.

Blind dogmatism to any position is rarely a good thing. I'm simply saying that the community should use a little common sense in determining how to move forward. Otherwise, we run the risk of making Linux essentially irrelevant in the embedded space, which has impact on it's relevance on the desktop. Think about all of the aspects of a decision such as licensing. We don't need another repeat of the Unix-wars of the 80s/90s. That rift opened the door to Micro$oft. I certainly don't want the Linux community to become famous snatching defeat from the jaws of victory by internal squabbles.

0 Comments:

Post a Comment

<< Home