February 20, 2019

When Worlds Collide: Combining GPL and Proprietary Software - page 2

Embedded Industry Rife With Violations

  • February 12, 2009
  • By Bruce Perens
But the customer's only concern with the GSM stack is that it works. It's not business-differentiating, because every phone has a GSM stack, and they all do pretty much the same thing. But the GSM stack costs each of these companies many millions to develop, so it must be valuable, right?

Not quite right. One GSM stack is valuable. 20 independently-developed GSM stacks that do the same thing, without customer-visible differences, are a waste of a few billion dollars across the industry.

The trend has been to place the non-differentiating parts of technology into Open Source projects, where competing manufacturers can collaborate on their development, each putting less into the task than if they'd done it alone, and getting the benefit of the entire software development. Thus, we see projects like Android and the Symbian Foundation, concentrating on the non-differentiating parts of the phone in public projects.

The next step, obviously, is to put a GSM stack into such a collaborative project. Companies facing hard times can save millions of dollars in development expense by doing so.

So, what might a cellular handset manufacturer sensibly wish to keep proprietary? Software that the customer sees, and that makes their phone different in a customer-visible sense from competing products.

The one remaining reason to have software that's physically separated from Open Source is lock-down. In the U.S. cellular market, the network vendor generally wants to exercise control over the software in the telephone, perhaps to make sure you're using their services rather than just anything on the Internet.

Network neutrality hasn't yet arrived at U.S. cell phones. In Europe, handsets and cellular network connections are often sold separately and the network vendor never has the opportunity to control the internals of the phone. The cellular carrier will still want to lock down the GSM stack to keep the phone behaving well with the cellular network and in compliance with the rules of FCC or their national radio authority.

So, we arrive at a few different sorts of software that must somehow be combined in your embedded device:

��� Software that must not be modifiable, for some business or regulatory reason.

��� Software that is proprietary to your company or another company, and is protected by copyright and trade secret law.

��� Open Source software with "gift-style" licenses, like the BSD license, which don't present significant compliance requirements, and can be combined directly with proprietary software.

��� Open Source software with sharing-with-rules style licenses, like the GPL, which requires a continuing license compliance process, and which must not be directly combined with proprietary software.

You might ask why all Open Source can't be licensed with the "gift-style" licenses, since those licenses allow you to combine the Open Source that they apply to with proprietary software, and they are easy to comply with. A good answer is that not everybody wants to give your company a gift, but people who use the GPL have a good alternative: their license is an invitation to share work ��� modifications to their program ��� with them.

In general, the Open Source developers aren't on your payroll. They might use a GPL-style license because they are commercial companies, and they don't want their competitors running away with the product without sharing their work on it. Or they are individuals, and they feel the "sharing with rules" is a good reward for their own work, as others will work to improve and expand their program, and to expand Free Software in general.

So, there might be some amount of proprietary software that you might wish to have in your product, and some amount of GPL software. The GPL requires that modifications to the GPL program be licensed compatibly with the GPL itself: given to the world for free in source-code form with the right for anyone to use, modify, and distribute. So, we can't combine GPL and proprietary software directly. There are a few ways that we can combine it, though, which won't violate the license of either program.

Separate Processors

Cell phones often have two processors, a small one that concerns itself with the basic operations of the telephone ��� the interface to the cellular network ��� and a larger one that provides the PDA-like functions of the phone. These used to be an ARM-7 for the smaller processor and an ARM-9 for the larger one (the numbers might be different today).

Often both processors are physically on the same chip, a custom ASIC (application-specific integrated circuit) that is the core component of the phone. The GSM stack lives on the smaller processor, and communicates with the larger processor using a very simple control protocol derived from Hayes modems of the 1970's.

Most Popular LinuxPlanet Stories