Awesome talk, though the SystemTap coverage was oddly weak.
Saying 'SystemTap was was created when there weren't Solaris for Linux ports' is a little disingenuous. Linux had live kernel instrumentation with kprobes way before Sun debuted DTrace, and DTrace was deliberately licensed in a way to be incompatible with the Linux kernel.
DTrace was deliberately licensed in a way to be incompatible with the Linux kernel.
This was commented on directly by Bryan Cantrill on HN [1]. You should also watch his "Fork Yeah!" [2] and "Corporate Open Source Anti-Patterns" [3] talks for full context.
I want to point out a comment [1] apparently by the former chief open source evangelist, Danese Cooper [2], on the "Fork Yeah!" video contradicting Bryan Cantrill on this point. Here it is reproduced:
Lovely except it really was decided to explicitly make OpenSolaris incompatible with GPL. That was one of the design points of the CDDL. I was in that room, Bryan and you were not, but I know its fun to re-write history to suit your current politics. I pleaded with Sun to use a BSD family license or the GPL itself and they would consider neither because that would have allowed D-Trace to end up in Linux. You can claim otherwise all you want...this was the truth in 2005
I fully trust in Danese's description of the events in this case.
Not only because she (Danese) was the person who actually created the licence (and thus is the best authority on the prerequisites set by the Sun management), but also because it makes perfect sense.
Sun, a company whose Solaris product was suffering greatly under competition from Linux, would NOT want to offer up their systems technical advantages under a open source licence which would allow Linux to use said technical advantages. It seems purely logical to me.
Listening further to Danese, she describes the Sun management as wanting a copyleft style licence for the code, and that they were eyeing GPLv3, but not GPLv2 which was already available (again, GPLv3 code would not be compatible with the Linux kernel, while GPLv2 obviously would), however GPLv3 was taking to long to be finalized so they set her (Danese) on the task of creating a new licence.
I've recently been using DTrace on Ubuntu. I filed two bugs on the project page (https://github.com/dtrace4linux/linux), and Paul Fox fixed them quickly. I have more bugs to file, but I'm doing my part in making DTrace on Linux a reality.
It's very tempting to join these licensing discussions (I was at Sun, too, and many of us DID want to see DTrace on Linux), but I think that's a distraction from what's happening right now.
There are two projects porting DTrace to Linux, which is really exciting. I'm helping out.
> Lovely except it really was decided to explicitly make OpenSolaris incompatible with GPL.
In fairness to both sides, pretty much everything that isn't GPL can be said to be incompatible with GPL, and almost anyone who decides to use something different than the GPL can be said to be deliberately incompatible with the GPL. That's just the nature of the GPL.
Permissive open-source licenses (MIT, BSD, etc.) are GPL-compatible. But I think the question here is more one of motivation: was a decision made for reason X which had the side-effect of making DTrace's license incompatible with Linux, or was the choice of license made specifically to cause that effect? There appear to be conflicting accounts from people who were at Sun at the time.
> Permissive open-source licenses (MIT, BSD, etc.) are GPL-compatible.
I guess I have a problem characterizing them that way since the traffic is going to be purely one-way. The GPL code can't be used by the projects with more permissive licenses without some kind of dual licensing, can it?
It depends on what level of compatibility we're looking at. It's true that MIT-licensed code can migrate to a GPL codebase but not vice-versa. But a different kind of compatibility (what I was thinking of) is whether you can maintain separate and separately-licensed codebases and legally distribute the combined binary. If DTrace were MIT and the Linux kernel were GPL, you could legally link them and distribute the result, so in that sense they'd be "compatible". Which isn't the case if you have a CDDL and a GPL codebase.
Danese is wrong. Ask the other people involved; they don't agree with her.
Almost any copyleft license that Sun could have chosen at the time would have been incompatible with the GPL; and multi-licensing wasn't seen as a viable option.
It's all a moot point now anyway, but I wish some individuals would stop acting like Danese is the sole truthful source on this just because it fits their armchair conspiracy theories.
Danese actually _wrote the licence_ as per the requirements set to her by the Sun management. She is as such the foremost authority on this of those who has publically spoken on the subject.
Who are these 'other people involved'? Involved in what? Unless they were involved in the licence creation what do they really know?
She (Danese) is not 'wrong', she is either outright lying (to what end?) or telling the truth. Again she, as the person who actually wrote the licence obviously knows the truth.
And how is it an 'armchair conspiracy theory' that the Sun management did not want to allow Linux (their main competitor who was also eating their lunch in the marketplace) to use the technology they (Sun) was open sourcing?
From a business standpoint it makes perfect sense, and thus is entirely plausible.
That doesn't mean that there weren't Sun developers who had no interest in denying Linux use of Solaris 'tech, but they were not calling the shots, Sun management was. And again from a management perspective it makes no sense to give away your advantages to your main competitor.
Danese is not actually the foremost authority on this, and she did not really "write the license". The license is based on the MPL (Mozilla Public License), and was written by Sun's legal staff in consultation with management and others inside of Sun at the time.
I know it would be wonderful to just wrap the licensing conspiracy theories up in a pretty bow because it fits your logical conclusions, but it isn't that simple.
I'm not saying that Danese is lying, just that she is wrong. There is a difference. Danese may have believed that it was done for the reasons she claims, but that doesn't make it so just because it's convenient to believe it.
There are far more people that have said that Danese is wrong that are qualified to do so; with that, I feel safe in saying she is wrong (nevermind my own involvement).
>Danese is not actually the foremost authority on this
Who else would be? And yes, she did write the CDDL according to both herself and according to Simon Phipps, certainly it was scrutinised and possibly altered by Sun legal staff, but her writing it (as per the prerequisites made to her by Sun management) is undisputed. It doesn't matter if the licence was based upon MPL, the final licence is not MPL, it instead reflects the requests put upon Danese by that of Sun's management (and legal staff).
>but that doesn't make it so just because it's convenient to believe it.
You are the one denying the words of Danese while offering nothing whatsoever to support your claims.
All you are doing is to claim that trusting the words of the person who wrote the licence is akin to buying into 'conspiracy theories', nevermind that everything she said also makes perfect sense from a business standpoint.
If anything comes across as a 'fairy tale', it's the idea that Sun would allow Linux to incorporate Sun's technical advantages at a point where they were losing to Linux in the marketplace.
The person who wrote the licence claims she was told to prevent this, business logic strongly supports her claims, yet you pretend it's some 'conspiracy theory' while offering nothing to support your claims.
>I'm not saying that Danese is lying, just that she is wrong.
Come on, she is either lying or she is telling the truth, you keep trying to dance around this. She (Danese) wrote the licence (nothing has been put forth disputing this), she says that making it GPLv2 (Linux) incompatible was a prerequisite. She either lies or she is telling the truth.
I believe her because:
A) I can't think of any reason for her to lie
B) it makes perfect sense from a business perspective
>There are far more people that have said that Danese is wrong that are qualified to do so
At this point in the history of the CDDL, it's very much open to question what anyone's motives were at the time it was written. It is likely that the various parties involved - even within Sun - had varying motives: Sun, like any other large organization, was not monolithic in its opinions nor even its behavior.
Whatever the CDDL was designed or hoped to do, the ultimate question of what it /will/ do may someday be decided by a court. In the meantime, Oracle - which is notoriously well-equipped with lawyers - apparently believes that the CDDL-vs-GPL question does not prevent it from porting DTrace to Linux. If someone disagrees with them strongly enough to… well, do what, exactly? …that will be entertaining.
In the meantime, why does anyone bother to argue about whether Danese wrote the CDDL, didn't write it, knew what Sun was really after in writing it, or tap-danced naked down Sandhill Road while writing it?DTrace is coming to Linux, CDDL or no CDDL. That ought to be cause for rejoicing, not flogging the dead license horse.
I may be able to help explain one factor that hasn't been mentioned, and might be related:
Imagine that at a previous company you worked for - and one where you signed a standard confidentiality agreement - you were privy to a sensitive legal matter.
After you leave the company, there is much public speculation about that legal matter.
You can weigh in, and share the sensitive legal details that you were privy to - that are not publicly known. Would you? Should you? Can you?
Does this help explain?
I doubt anything new is going to be found by continuing these discussions. I can say what will be found going forward - exciting new observability made possible by DTrace on Linux.
>I doubt anything new is going to be found by continuing these discussions.
Agreed, and just to make something clear, me believing that Sun did indeed create CDDL to be incompatible with GPLv2 is not something I hold against Sun at all, contrary I think it was the 'right' thing to do given their circumstances as a company, had I been a shareholder I would have been angry if they gave away technology 'crown jewels' to their main competitor.
On the other hand, wearing my Linux user hat I really want to have this great technology at my disposal :) (something which is now thankfully being rectified by things like DTrace / ZFS on Linux)
Anyway, as I said, this is what I 'believe', it doesn't mean it is the _truth_, I've just yet to come across anything factual which would make me think otherwise.
Jonathan did not say "it's valuable technology that we've invested in creating, and we would defend that intellectual property."
What Jonathan did say was in line with his open source vision. There were many interviews at the time about it; eg:
> With the Java platform I'd guess we reach 20 to 30 percent of the Internet every day (powering the games kids play online, the intranet application at a bank, etc.). Each of these constituents may think about Java in different ways, but in each case Java "sells" my brand. If you believe that brand is central to the next wave of Internet monetization--and I believe it is absolutely central--then the more people that know my brand, the more benefit inures to me.
If people are interested in continuing to research this for whatever historical reason, you'll find Jonathan gave many interviews about Sun's open source strategy. It's great for everyone, and Linux, that he succeeded in open sourcing what he did.
You are the one denying the words of Danese while offering nothing whatsoever to support your claims.
Oh really? How about this:
Nonetheless she is wrong to characterise the opinion of
the Solaris engineering team in the way she does. She is
speaking this way because she lost an argument inside
Sun, not because her view is representative of the views
of Sun or its staff in the way she claims. She, along
with many actual engineers, was an advocate of using GPL
for OpenSolaris but the need to release rather than wait
for one of {GPL v3, Mozilla license revision, encumbrance
removal} meant that this was not possible. I am still
furious with her for the statement she made at DebConf,
which was spiteful and an obstacle to a united FOSS
movement.
S. (Simon Phipps)
If anything comes across as a 'fairy tale', it's the idea
that Sun would allow Linux to incorporate Sun's technical
advantages at a point where they were losing to Linux in
the marketplace.
As one of the first contributors to the OpenSolaris project who had many long and heart-felt discussions with various Solaris engineering and executives, I believe your assertions are flat out wrong. Jonathan Schwartz (CEO at the time) was fond of saying "A rising tide lifts all boats"
Others have pointed out that this is demonstrably false as well. Have you also forgotten when Apple was considering integrating ZFS into OS X?
Your argument also seems specious given that the only "OS" that had issues with integrating DTrace or other CDDL-licensed technology was Linux. Apple and many others have had no problem integrating it. So if Sun was really not willing to give up their competitive advantage, why would they give away technology under a license that was reasonable for almost every competitor?
As others have also pointed out, not everyone believes that the CDDL and GPL are as incompatible as many would like to claim.
It's just like the silliness you see in the Linux kernel today where some kernel symbols are marked with a special macro EXPORT_SYMBOL_GPL?
I recently dove into this area in an attempt to find something like strace that didn't cost as much (as the slides mention, it's hundreds of times slower to run something under strace). It seems like dtrace can likely do what I want, but it doesn't sound reliable under linux yet. Does anyone know if the native linux profiling tools can be used to answer questions like "which files is my process accessing"?
As far as I found, various tools can trace syscalls and count them, but the critical thing strace adds is that it decodes the pointer parameters to syscalls into strings, something that e.g. "perf trace" doesn't seem to do.
You could link your library to a passthrough libc that logs calls, if it is dynamically linked. There are various library hijacking solutions to make it easier. ptrace, that strace uses is necessarily slow (ktrace in eg NetBSD is much faster, the kernel does the tracing not userspace).
Correct me if I'm wrong here, but I believe lsof can only display files held open at a given point in time (when you run lsof), no? So if a process opens a file, does something with it, and then immediately closes it, you're unlikely to be able to catch that with lsof unless you happen to run it at exactly the right time.
Saying 'SystemTap was was created when there weren't Solaris for Linux ports' is a little disingenuous. Linux had live kernel instrumentation with kprobes way before Sun debuted DTrace, and DTrace was deliberately licensed in a way to be incompatible with the Linux kernel.
If you want to see some actual useful production taps you can use right now on your Red Hat / CentOS box, check out http://sourceware.org/systemtap/wiki/WarStories