Last week, Linus Torvalds (creator of Linux) made a statement about his concerns with the ZFS file system (owned by Oracle). In fact, he went so far as to say, in a rather point blank way, “Don't use ZFS.”
The reporting around his comments – coming from a wide array of news outlets (some Linux-centric, others less so) – has been heavy on opinion… but light on commentary from the key parties involved.
In fact, I have yet to see a single article on this topic where the journalist has reached out to the folks that own ZFS (Oracle) or the maintainers of OpenZFS (which was forked from an earlier, open source version of ZFS).
Let's correct that.
To start with, here is the statement from Linus that started this little dust storm (items in bold are highlighted, by myself, for emphasis):
“If somebody adds a kernel module like ZFS, they are on their own. I can't maintain it, and I can not be bound by other peoples kernel changes.
And honestly, there is no way I can merge any of the ZFS efforts until I get an official letter from Oracle that is signed by their main legal counsel or preferably by Larry Ellison himself that says that yes, it's ok to do so and treat the end result as GPL'd.
Other people think it can be ok to merge ZFS code into the kernel and that the module interface makes it ok, and that's their decision. But considering Oracle's litigious nature, and the questions over licensing, there's no way I can feel safe in ever doing so. And I'm not at all interested in some “ZFS shim layer” thing either that some people seem to think would isolate the two projects. That adds no value to our side, and given Oracle's interface copyright suits (see Java), I don't think it's any real licensing win either.
Don't use ZFS. It's that simple. It was always more of a buzzword than anything else, I feel, and the licensing issues just make it a non-starter for me.
The benchmarks I've seen do not make ZFS look all that great. And as far as I can tell, it has no real maintenance behind it either any more, so from a long-term stability standpoint, why would you ever want to use it in the first place?
Pretty blunt and to the point, right? (I mean, that's one of the reasons that Torvalds is so well respected within the industry.)
The statements around licensing with Oracle certainly deserve some clarification, as they are rather intense. So I did what any journalist would do… I reached out to Oracle for comment.
This is the response (in entirety) that I received from Oracle's Press Relations team:
Thank you for reaching out. Oracle will decline to comment on this.
Best Regards, Travis Anderson | PR Manager - Technology Oracle Global Communications”
Well. Fair enough. No comment from Oracle.
Let's turn to the OpenZFS community – this is something that impacts them directly. In fact, I would posit that those would be the folks with the deepest knowledge around the intersection of ZFS, OpenZFS, and Linux.
I reached out to Richard Yao – an OpenZFS on Linux developer, and maintainer of ZFS on Gentoo Linux. I am including Richard's full response here:
Linus tried to clarify his remarks:
He claims that he meant OracleZFS, rather than OpenZFS, despite being asked a question concerning OpenZFS.
His only remark specifically about OpenZFS when looking at his clarification has to do with him being concerned about Oracle's legal department causing problems. I have talked to many lawyers about the legal status of ZFSOnLinux over the years and while I could try to compile everything that they have ever told me, I think I'll just link a legal opinion co-authored by an attorney who is one of the authors of the GPL(v3):
Various attorneys seem to agree that a CDDL kernel module that had been ported from OpenSolaris/Illumos is fine. The only exception appears to be a few overzealous who hadn't contributed their thoughts until ZFSOnLinux was both mature and well deployed. Those few individuals did not convince the attorneys who had already given opinions to the contrary as far as I know.
Linus also tried to answer the original question about the FPU symbols in his clarification. Quite honestly, I think the controversy over this has been blown out of proportion. The FPU symbols were just a couple of wrappers around CPU instructions. I had an idea at the time to deal with it, but I had matters in my life at the time that caused me to leave it to others. Others were using systems with older kernels, so fixing this was a low priority for them, but things were resolved 6 months later. That sounds bad, although most end users would likely have still been on older kernel branches at that time, so the impact should have been smaller than it would seem.
Linus has long been a proponent of ensuring that out of tree modules (like the Andrew filesystem) continue to have the basic functionality that they need to operate. There is little reason to think that has changed. The FPU wrappers were never actually necessary for ZFS to function, so there wasn't really a policy change when they were replaced with GPL only versions, even if that was inconvenient for plenty of people.
Lastly, I find Linus’ remarks about not giving back to be unfortunate. I cannot speak for others, but I have sent several patches fixing issues to the mainline Linux kernel over the years and a few of them were merged. I doubt that I am the only ZFS developer who has done that. I could continue with this train of thought, but quite honestly, Linus has always been civil with me in the past. I am inclined to think that he made some poorly thought out remarks when he was having a bad day and move on.
Yours truly, Richard Yao”
In the interests of providing as much information on the topic as possible, it's worth noting that several lawyers have, indeed, chimed in on the topic of ZFS on Linux. Below is a sampling of three of the most prominent organizations involved in GPL related licensing issues and their stated opinions on this matter.
“Conservancy and the Linux copyright holders in the GPL Compliance Project for Linux Developers believe that distribution of ZFS binaries is a GPL violation and infringes Linux's copyright. We are also concerned that it may infringe Oracle's copyrights in ZFS. As such, we again ask Oracle to respect community norms against license proliferation and simply relicense its copyrights in ZFS under a GPLv2-compatible license.”
“the “Common Development and Distribution License, version 1.0 (CDDL) is incompatible with all versions of the GNU General Public License (GPL).” We explained that “a module covered by the GNU GPL and a module covered by the CDDL cannot legally be linked together,” and we urged developers “not to use the CDDL for this reason.””
Software Freedom Law Center (Eben Moglen & Mishi Choudhary):
“Clarity on the matter beyond the current state of affairs is certainly desirable. If the kernel copyright holders choose to clarify their interpretation publicly, certainty will immediately result. If they do not object privately or publicly to current behavior by other parties, the equity of the license will eventually come to be seen as the measuring rod, and relative certainty will also eventuate. Oracle can, by choosing to broaden the license terms on ZFS to include GPLv2, also provide certainty to all other distributors.”
It appears that the predominant analysis from GPL experts agree with the core of the original assertion from Linus Torvalds – that there are licensing concerns Oracle would need to address.
However, since Oracle is declining to comment on the matter, it is difficult to know what their intentions are (outside of speculation).
Since we've heard from some key players, I wanted to end by reaching out to someone who uses and understands ZFS (and Linux), but doesn't necessarily have a stake in the game. So I tossed an email over to Wendell Wilson (host of Level 1 Techs). He had this to say:
“My gut is that it's my choice. He's right. The argument here is maybe do we need to expose more bits [in the] kernel to make it easier for people like me to have access to no-context-switch simd instructions?
A relatively small pool of modern SSDs can easily overwhelm main memory bandwidth on modern machines! Even with 8 memory channels! So file systems like zfs have a relatively insanely high bottleneck and need every trick in the book to leverage performance.
Like zero copy networking stacks needed a whole new way of thinking about things , we need something like zero copy filesystem stacks for block devices. And this squabbling is just a symptom of that.
- Wendell Wilson”
Which provides an interesting thought: Do we need a new way of dealing with these sorts of issues (technologically) that can work around these licensing concerns?
Whatever the ultimate legal / licensing resolution to this issue, I don't expect that solution any time soon. These concerns have been debated for several years now – with the legal analysis included in this article dating from early 2016.
Realistically, it appears that Linus is right. The only real solution is to have Oracle make a statement regarding ZFS, and release it under a GPL compatible license.
This article is also available as a Video episode and Audio Podcast of The Lunduke Show.
Ways to read the articles: RSS Article Feed.
The Lunduke Show wouldn't be possible without the support of some truly excellent companies:
- Pogo Linux – Awesome new Intel-based servers from Pogo Linux.
- Linode – Awesome Linux server hosting ($20 credit).
Ways to support The Lunduke Show: