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.


webmink said...

I have checked my e-mail records and as far as I can see, the way I was "rude" to Mr Mahan was to reply "Had you not included the ad-hominem I might have answered you." (just that) in a private e-mail to him responding to his lengthy posting in which he chose to miss the point of an earlier posting by me (which was not directed at him), where he demonstrated his existing distaste for me by rather rudely saying "On a personal note, I am relatively disconcerted that the Chief Open Source Officer at Sun Microsystems had to be explained the difference. Oh well, live and learn." Maybe my choosing not to continue the argument was "rudeness" meriting a permanent "black mark"?

I avoid rudeness where I can, and was in fact responding as simply as I could to the slight Mr Mahan made in his posting which offended me. I am sorry he's offended, though - the whole thread was a noxious one and this was the least of the rudeness I was receiving from the other participants, most of whom seem to have considerably thicker skins than Mr Mahan.

As for "Old School", I'm afraid this comment will be laughed out of court by anyone actually in-the-know, not least the people in that thread who regard me as a dangerous, pro-GPL radical!

Binary Crusader said...
This comment has been removed by the author.
Binary Crusader said...

Your argument seems to boil down to, "no FLOSS project will survive unless it's GPLv2, and Sun doesn't have jack in the way of innovation or development, so they might as well go home and let the rest of us loot and plunder the good stuff."

Wow. That's a really motivating speech there. Not only that, it is so far from the truth it isn't even funny.

I'm not even going to bother trying to do a point-by-point rebuttal of your comments because your criticisms are not constructive.

No, telling people "give up and go home and leave us the goods" is not constructive criticism.

As far as the free media Ubuntu sends out?

Sun does that too:


Also, as far as the "Sun couldn't backport code if was GPLv2" -- that's false. Sun would still require a contributor agreement, and rightfully so, which would allow this as a joint-copyright holder. For some of the same reasons that the *Free Software Foundation* requires a contributor agreement, the OpenSolaris project does as well.

Finally, you are aware that the *Free Software Foundation* the *authors* of the GPL, have recognised and classified the CDDL as a *Free Software License*, right?

I can't stand people who are stuck in this "the GPL way or die!" mentality. It's too much like organised religion.

Maybe if you posted again, but this time with well thought out, logical, reasoned, and constructive criticism, the community would be inclined to address your concerns.

Christopher said...

@Simon/webmink: apology accepted. I also thought that in mentioning the title of an officer of a software company that has and is involved heavily in the open source movement, not an individual's name, it would be construed that I was referring to the "job" rather than the "man". For that, I'm sorry I didn't make the distinction clear enough and caused this confusion and offense. Indeed the thread was animated, and I understand how it could have happened.

As far as old school, maybe the term was ill-fitting. I still, however, think that you (and this is my personal opinion based on appearances, nothing more) are the type of person who prefers to be confrontational in the us versus them thing. Not related to the choice of licenses, but rather in the Sun vs IBM vs Microsoft sense. I know I'm not expressing it very well, but better this now than letting the misunderstanding linger six months.

you said: "no FLOSS project will survive unless it's GPLv2, and Sun doesn't have jack in the way of innovation or development, so they might as well go home and let the rest of us loot and plunder the good stuff."

I didn't.

I said, that in this particular case, and faced with current difficulties, constraints, and Sun's pressures, this particular software's opensourcing efforts (which I have been following for 2 years now, more, actually) might be more effective if the source code was under the GPLv2.

As far as the Solaris CD thingy: I know.

Go read http://blogs.sun.com/jimgris/entry/getting_the_word_out, including the comments, from last year.

It's not like I just started mouthing off. I use solaris at work and find it the most difficult part of my day (besides dealing with management), and the company is about to embark on a multimillion dollar project that will involve either Solaris 10, or a flavor of Linux, and I would prefer Solaris because I would be fine with Debian but could not deal with anything like RH or Suse (personal preference again) and I'm sure our Fine Infrastructure Folks would not get Debian.

So, you see, I have a vested interest in making Solaris better.

Shawn said...

I said, that in this particular case, and faced with current difficulties, constraints, and Sun's pressures, this particular software's opensourcing efforts (which I have been following for 2 years now, more, actually) might be more effective if the source code was under the GPLv2.

The GPLv2 is not an option. It does not address the patent issues surrounding the code, and it does not provide sufficient protection for the OpenSolaris codebase. The GPLv3 may be an option, depending on what the final version looks like.

Doing GPLv2 would likely bring little to no benefit and create problems rather than solve them.

Gman said...

FWIW, we've accepted John into this year's participation in the OpenSolaris GSoC, and I'm looking forward to seeing him rock on OpenSolaris Emancipation. I'm also hugely worried about the barriers to entry and trying to attract good contributors (developers) to the project. I do worry that we're increasing those barriers rather than decreasing them, but I suspect that will be a process that we're just going to have to suffer the mistakes and improve over time. Time will tell if we have the liberty of screwing it up a couple of times first - it's a desperately hard judgement call to find the right balance between engineering excellence (that Solaris has traditionally been known for), and growing the community.