Jeremy Allison Column Archives

The Low Point — a View from the Valley — Column XXX

There is a light that never goes out

“ we enjoy great advantages from the inventions of others, we should be glad of an opportunity to serve others by any invention of ours; and this we should do freely and generously.”-- Benjamin Franklin.

Microsoft has been in the Linux news again, with their Tony Soprano-like CEO Steve Ballmer claiming “the fact that Linux uses our intellectual property is a problem for our shareholders”. Problem indeed, as if this were true then Microsoft is not getting paid for their “Intellectual Property” by all those millions of infringing Linux users out there. That means you, especially if you're reading this magazine. It definitely includes me. I don't remember sending my tribute to “Capo” Ballmer for all my Linux installs, and he thinks I owe him.

But “Intellectual Property” is a weasel phrase. It covers several different things, each of which is treated very differently in terms of property rights. For software this can mean trade secrets, copyright or patents. Let's look at each in turn and see how Microsoft accounting can get creative and determine how much we all owe them for being presumptuous enough to be using Free Software not developed by them.

Trade secrets first. These are the most simple to cover, they mean things like the “secret” formula for Coca-Cola, or the “secret” blend of herbs and spices in Kentucky Fried Chicken (mostly flour and grease if you ask me). The main thing to remember about trade secrets is that they're secret. If they get published then they're not “intellectual property” any more because they're not secret. There are many ways for these to get published. One way can be seen in the way my own software project Samba reveals the trade secrets of the Common Internet File System (CIFS) protocol we use to communicate with Microsoft servers and clients. The parts we work out and publish in our code aren't trade secrets any more, and there's nothing Microsoft can do about it.

Copyright next. The actual author of any piece of software code owns the copyright on it – literally the rights to copy that piece of code. Most employees of a corporation assign that copyright to their employer, who commissioned it as a “work for hire”. For proprietary software the users of it have to take it on trust that the corporation selling them the software actually has the right to make copies of it. Many lawsuits between proprietary software companies have ensued over proving this very fact. With Free Software the history of the code is much easier to see, as most projects keep excellent historical source code control. The name of every submitter is known (and usually their corporate address). Many projects (the GNU Projects for example) keep much better records than that. So the only way Microsoft could claim ownership of any parts of the Linux kernel or any other parts of a Linux distribution is if actual Microsoft code had been maliciously copied into Linux. This is exactly the claim that SCO made about IBM (that they'd copied SCO copyright code into Linux) which is finally being laughed out of court as SCO have no evidence for this.

Once you examine the code, copyright infringement is very easy to see and prove. Of course Free Software is very easy for anyone to examine, the code being published. If Microsoft had any actual evidence that Linux had used any Microsoft copyright code they wouldn't be making idle threats about it, they'd be breaking out the champagne up in Redmond and toasting the demise of their only competition. So I think we can rule this out.

Finally, and the real meat of the argument, is software patents. The original intent of the patent system was to encourage inventors to reveal their trade secrets and thus encourage the sharing of knowledge for the benefit of all humanity. How do you get people to reveal trade secrets without being forced to ? Simple, the government (on behalf of the people of course) offers them a deal. The person (and this also includes “natural persons” in US law, ie. Corporations) is granted a time-limited monopoly to license for a fee whatever trade secret they reveal no matter if anyone else came up with the same idea independently.

On the surface this seems very reasonable. Of course you'd want to make sure that the trade secret ideas being revealed really were secret and valuable, so that people couldn't claim patents on “obvious” things. That's the job of the patent office. Initially software-based inventions were not allowed as patentable, but after a particularly confusing US Supreme Court judgment in the 1980's the patent office was forced to allow “computer based inventions”. Not having any experience in software the patent office started allowing some extremely obvious ideas to be granted the status of a patented monopoly. One of the most egregious caused AutoDesk, creator of the “AutoCAD” design software to have to pay $25,000 to license a patent covering a mathematical operation used to display a cursor on a screen that essentially can be described as “one or the other but not both” (the XOR operation).

Why is software different from a physical “widget” like a new car component that can be patented ? As usual, Richard Stallman the creator of the GNU GPL license explains it best :

“When we programmers put a while statement inside an if statement, we don't have to worry about whether the while statement will run such a long time that it will burn out the if statement, or that it will rub against the if statement and wear it out. We don't have to worry that it will vibrate at the wrong speed and the if statement will resonate and crack. We don't have to worry about physical replacement of the broken if statement. We don't have to worry about whether the if statement can deliver enough current to the while statement without a voltage drop. There are many problems of hardware design that we don't have to worry about.”

It's this freedom from physical constraints that allows programmers to create software of almost unimaginable complexity compared to objects in the physical world. With the number of bad software patents now in existence any program performing any non-trivial operation probably infringes on tens if not hundreds of existing software patents, the Linux kernel certainly must. Even if every part of that program is a wholly original work by the authors of that code this is no defense against infringing a patent. And patents are granted for a twenty year term. Little software lasts for that long, it's usually obsolete long before that, making software patents a lifetime monopoly to control and destroy any competitors to the patent holder. Good for the sharing of human knowledge indeed.

Microsoft over recent years have become one of the strongest proponents of software patents, using their lobbying muscle to try and extend the US concept that software can be patented to the European Union and all other places in the world that currently disallow patents on software. Steve Ballmer's demand for “money with menaces” from Linux users is connected to Microsoft's patent portfolio, and the use they hope to make of it to scare Linux users into paying up.

So what to do ? Certainly don't pay up, for one thing. Don't be scared into changing your current Linux distribution for one that claims to offer patent “protection” from Microsoft. Currently Microsoft is making much of the patent threat by not being specific about what patents they think Linux distributions are violating. There's a reason for that. As soon as they reveal the actual patents they claim are being violated those patents will come under intense legal scrutiny. Most software patents are completely invalid, being covered by “prior art” (previous, non-patented use of the same technique) or simply just by being completely obvious and non-innovative in their claims. In addition to this it may be easy to avoid violating any given patent by changing any infringing code to use a different, non-patented technique.

As soon as Microsoft reveals it's hand a host of Free Software programmers and supporting companies and lawyers will be swarming over the claims to disprove, dismiss or simply code around the problem. You might as well let them do the work for you (just like you do with the software). I would encourage any US Linux users to make a donation to either the Free Software Foundation or the Software Freedom Law Center though, as these foundations will be the ones leading any defense you might end up needing.

It's a funny situation, but it seems that Microsoft's patent portfolio is only valuable so long as their claims are surrounded by fear, doubt, and secrecy. Which is a little odd when dealing with ideas that are supposed to help share and increase the sum of human knowledge isn't it ?

"If you have knowledge, let others light their candles in it."-- Margaret Fuller