Tuesday, April 03, 2007

Answers to the OpenSolaris Riddle.

This is all related to this post of mine a few days ago.

First, I answered a question from gman (see below) about what mistakes Sun has made in my opinion. (by the way I do not think the recent drop in SUNW price is in any way related... I personally think their sales department is hindering sales (did I say that before? I did! 13 month ago too!))

David Comay (manager, container/zones at Sun Solaris Engineering) asks:
I'm curious what you think Sun should do though with respect to making it clear that Solaris is FOSS (at least, Nevada and beyond are?) Are you saying that nothing less than relicensing it under GPLv2 will do the trick? (ref)
Well, I think these are two independent things, namely, making it clear that Solaris is FOSS, and whether to relicense Solaris under GPL2.

He also adds
With respect to the cost, you may be surprised but many/most of us in Solaris engineering know that open source development doesn't cost less. That's one of the reasons folks are working hard on pushing the remaining pieces of infrastructure outside the firewall so that the community can fully engage.

Well, to that, I'll answer that pushing the remaining pieces of infrastructure outside the firewall won't actually mean lower cost. I'll come back to it, because that's related to the issue above.

Jim Grisanzio, whom some of you know of, is Community Manager, OpenSolaris Engineering, adds:
All I wanted to say is that I certainly realize that many people don't know we are open yet. I get it all the time, actually. I don't really view it as a problem anymore so much as an opportunity to engage people. There's no other choice, actually. :) Also, we've been open for almost two years now, so I think you'll see us start to kick it up a bit. Some of us wanted to keep it a bit low key until we got most of out stuff out there, but I think Sun is going to start pressing the issue more. The OpenSolaris Starter Kit was a pretty good initial indication of that.

That'll come in handy later in the post.

He also added that he had installed Ubuntu on one of his laptops, liked it, and wanted to learn from such successful communities.

gman, who is really Glynn Foster, who was just elected to the 2007 -
2008 Governing Board of OpenSolaris (ref), adds:

OpenSolaris now actually has a platform to build a community from. I expect having a ratified constitution and newly formed board will help with that. As I've mentioned elsewhere, there may never be another phenomenon quite like the Linux kernel - communities don't build over night, and certainly don't form around mature code where the boundaries to entry are still high. All on our agenda, it's going to take some time. The one thing that's interesting about Ubuntu is that they've done relatively little engineering work - 90% of it has been pulling together existing work around the various communities. I do believe that is something that Sun and Solaris needs to start doing.

All right. Hang on to your horses.

I found this little graph out there that shows the relationship of the OpenSolaris source code to the Solaris codebase. Go look at it. Ask yourself if the backport and keeping the Solaris 10 codebase proprietary would be compatible with the gplv2. That little graph was mentioned on the OpenSolaris discuss forum.

Now, the problem for Sun is that Solaris development is too slow, and Solaris until 2 years ago faced the prospect of certain obsolescence.

Just to add to your reading pleasure, go read the thread Ian Murdock (Sun's new Chief Operating Platforms Officers, and the "ian" in Debian) started. Make sure you read all the way down, and look at this one from ux-admin (the last one in the thread).

You didn't read it, did you? Let me just tell you it started real friendly-like. "In the meantime, I just wanted to say hello, and to make sure you heard the news directly from me." --Ian. Of course, as all things are wont to in the Great Internet, this innocuous post meandered all the way to "The way you put it, 'either make it look and behave like Linux or we'll
ditch it', just sounds too much like blackmail." --ux-admin

I gotta tell you, Ian's going to have to like the money Sun is paying him, because if that's the "Welcome Aboard", I don't really want to see the "let's go around the table and introduce ourselves" meeting.

Going back to the obsolescence bit: now that OpenSolaris has been Open for 2 years (under various definitions of Open), and that the community is finally moving into getting people on board to make decisions and coding outside the firewall, OpenSolaris now has a bright future ahead... Or does it?

The code as it is, the open parts, are not buildable into Solaris. And they won't be, it seems. But wait, if OpenSolaris is not actually Solaris, then what is it? (Refer to diagram) oh, it's a bunch of source that could be built into other things. Not actually Solaris, mind you. Also, from the Emancipation project (go John), which yours truly had a hand in prompting, we know there are things now that Sun cannot Open Source that are required to build a minimal Solaris system...

Uh, are you confused yet?

But wait, there's more. What do I think Ian's going to be able to do with the Sun Engineers? Not much, unfortunately. One man alone does not have the bandwidth to deal with such a determined foe.

Ok, now to address the main point: Under CDDL and Sun Contributor Agreement (pdf warning) Sun Microsystems is allowed to backport OpenSolaris code into the proprietary Solaris codebase. So the contributor of code, while contributing to the OpenSolaris codebase, also contributes materially to Sun Microsystems Inc, assuming Solaris Engineers backport the code to Solaris.

Going back to "Solaris development is too slow" and the obsolescence bit: Sun needs new contributors. Not just any kind of contributors, but seasoned, professional software developers. Now, these people work at serious companies. (IBM, Google, HP, Red Hat, Intel, even Sun) or at prestigious institutions (MIT, etc). They not only do not have a lot of time, but they also have very little tolerance for red-tape, already having ample measures of that in the workplace. Go see the source code for linux someday. It may not be pretty, but the email addresses of the contributors read like a who's who of modern computing. So do you think any of these people are going to contribute their very limited and therefore highly valuable time to a for-profit corporation without getting a paycheck?

Now, this means that the people who are going to join are, well, green, and will need mentoring, good communication, TLC, wikis, buildable software... But as gman said: "communities don't build over night, and certainly don't form around mature code where the boundaries to entry are still high" these people will hit the "Sun Solaris Engineering Process", be met by the kind of people who sign their email "PhD Solaris Kernel Development, Sun Microsystems" and be utterly discouraged. They will go back to Ubuntu and make all sorts of disparaging comments on slashdot and kuro5hin about Slowaris. And they will be regarded by the Guardians of the UNIX Way as uncouth rabble.

Then, Sun will essentially have to pay people to work on OpenSolaris. Either on payroll from 8-5, or indirectly by funding a foundation that will pay people to work on their own time at home, after getting out of work from Sun at 5pm. These people, already working 45+ hours, will burn out eventually, having traded time with their family for Yet Another Successful Build. This will cost Sun too: the kernel engineer, who, tired of the rat race, retreats into a life away from keyboards and into coaching a little league team, or running a bakery down by the promenade, will cost Sun replacement expenses.

The more Sun "open sources" OpenSolaris, the more expensive Solaris will become. Eventually, Sun will pull the plug, and recommend Linux to its customers (2009-2011 timeframe).

Now, if GPLv2+: Sun would not be able to backport the changes into Solaris. And some legal magic would have to happen for a GPLv2+ build to happen anytime soon. But then OpenSolaris could be hacked to death by the linux hordes and the best bits could go into linux, and the rest would then die the death that's going to happen anyway.

Sun Kernel engineers could be kept on Sun payroll, and their day self-directed, working through a public bugzilla server. Eventually their skill would be absorbed by the community, the Linux community mind you, and they could retire fat and happy in a dozen (or two) years.

Net result: Sun would use Linux, and have direct input into linux development and future, like IBM and RedHat do now. Sun also could drop all its development efforts, turning them over to googlecode with a large "take this and make it fly" sign. Sun could then focus on hardware.

What about their current enterprise-grade Solaris customers?

What about them? If they were actually paying for the full development and support and infrastructure needed by Solaris, we would not be having this discussion. These Very Important customers are not making Solaris cost-effective for Sun. Essentially, it's costing Sun money to keep these customers. That's the kind of customers Sun does not want. The sooner Sun says: go to Debian stable, the better.

On Ubuntu and 90%, I would suggest that from Debian unstable to Ubuntu on a CD in a professionally typeset sleeve in my mailbox at no charge, there is a huge gap. Thank you Mark. Thank you. Thank you.

By the way, and this is sort of a disclaimer: Simon Phipps needs to not be involved in any of this. He's too Sun Old Guard, besides the fact that I don't like him because he was rude to me personally (ask jimgris) and that as I go out of my way to be non-offensive and generally kind and supportive in spite of my mundane French upbringing, I am sensitive to the negative effects of personal attacks. On that point, I would like to say that he currently is alone in that "I don't like him" category. I especially disliked my previous VP a few months ago, but I don't report to him anymore, so it's all better now.

Finally, and to wrap it all up nicely: Solaris has no alternatives but to merge with Linux on the same terms as Linux. Solaris the distro will die. Solaris the kernel will die, but its children will live on as part of Linux. Linux is famous and known to be FLOSS. This took billions of dollars and many years to sink in (probably a solid 10 years, give or take 2). Sun does not have the resources to do the same thing with Solaris. Unless OpenSolaris lives on its own outside Sun firewall, with a copyright scheme that does not allow Sun to cherrypick enhancements for its own proprietary version, and can freely be mingled with Linux, it will die. It's only a matter of time.

That's why, ultimately, the best you can hope for is GPLv2+.

Now, there is another scenario, but it's bordering on the realms of science-fiction/fantasy: namely that Google was wrong, that hundreds of thousands of disposable computers running linux is not the way to go, that big business and big government are going to start spending a lot more on IT, and that Sun is going to reach $125B in market value, at which point it wants to have copyrights to Solaris because it will be able to make money with it. I think this is the secret hope of Sun shareholders, and of many of its employees.