My Views on Open Source

There aren't many things in our industry that are more transformative than open source software, so I think it's a great topic to launch my first "official" blog. And what a better time than now since we announced releasing Solaris in open source form under the new OpenSolaris community (Thanks go to my good friend and colleague, Jonathan Schwartz, for his relentless teasing about my reticence to blog --- more on this later.)

Open software is fundamentally about developer freedom. We want developers to freely use any of the OpenSolaris code that we developed for their purposes without any fear of IP infringement of Sun: either patent or copyright.

We chose a license -- CDDL , an improvement of MPL -- that clearly and explicitly gives that freedom.

In fact, the license is MORE liberal in its IP license than even GPL , because it gives a clear patent license and doesn't demand the same viral propagation. Yes, I know that's a view divergent from many who believe GPL \*is\* open source, but I happen to believe choice and freedom go hand in hand.

Complimentary to developer freedom, are developer rights. A code developer (individuals or corporations) do have rights to the code they developed. It is, after all, the fruit of their labor. By choosing to place that code under an open source license, a developer surrenders some of those rights to the community in the hopes of a beneficial exchange. NO open source license surrenders ALL rights. The way you do that is to place code in the public domain.

Just to level-set. I'm a huge supporter of the free software movement, including the FSF. I knew Richard Stallman at MIT in the early '80s when he was ramping up the GNU project, and vividly recall the relentless yet methodical way he was going after the entire stack: start with the tools (gemacs, gcc,...), build out the supporting libraries and utilities, and then go for the kernel. As I recall, Richard went for the kernel slowly because he was pretty concerned about AT&T and I think wanted to be squeaky clean IP-wise, which as a result reflected a lot of care taken in the GNU project so far. Well, Torvalds and friends just went for it, and built out the kernel. Linux was most definitely built on the back of Stallman's hard labor. It's GNU Linux, IMHO.

At the center of Stallman's genius is the GPL. When compared to BSD, which was essentially a simple copyright grant, GPL was more explicit about IP grants (with a clever sort of mutually assured destruction if you were to sue), and, of course, the duty to re-publish any changes or improvements that got made to the code.

It's all about community building. But it's not a "free beer" license. If you don't play by the rules, then you neither are afforded the IP protection nor are you entitled to copy the code.

A pretty tough provision is the viral aspect that takes away the developer's freedom for independently developed code incorporating GPL code by requiring that code to be GPL'd.(Future rant: a lot of GPL users kick these chalk lines pretty hard by having loadable modules that aren't GPL...)

And just to be clear. You CAN'T take code under GPL that you haven't written and place it under another license. And you DON'T get a patent grant for any of the ideas expressed in that code that you choose to re-code under a different license. Even so, by putting something under GPL, you still have a lot to say about what can and can't be done with it.

So why other licenses like MPL, Apache, and now CDDL? Only because GPL is often considered TOO restrictive in its terms. A key difference with MPL is that it removes the viral requirement, and permits code of different licenses to be co-mingled (obviously assuming that other licenses permit the co-mingling as well).

This co-mingling turns out to be really key for situations when you don't control all of the modules in your system, or when you want to work off of an open base, but do some of your extensions. And, yes, that does go against some of everything-should-be-free philosophy implied by the GPL, but it helps strike a balance between a whole set of competing interests.

To be perfectly clear, we are releasing a huge amount of Solaris code under CDDL. That means you can take any or all of the modules, and if you respect the basic license terms of (1) propagating it, and (2) making public any improvements or bug fixes, you can do with it as you please. Embed it any product. Build your own custom distributions. Intermix with any other code you wish (assuming that code lets you do it). You can do any of that and you get a grant to any patents we might have covering our code. That's an explicit part of the license.

What have we done? We have given away enormous intellectual property rights (the code and about 1600 patents that might read upon it) to any developer who wishes to use our code. The only thing we ask in exchange --- as is the only thing that Stallman and Torvalds and every other open source developer have asked in exchange --- is that you honor the license. Period.

Have at it!


Post a Comment:
Comments are closed for this entry.



« April 2014