ZFS distribution in Linux kernel?

08
2014-07
  • Solignis

    If anyone has a better title for this question feel free to edit

    I am wondering about something related to the conflict between CDDL (Sun's license) and the GPL. Mainly pertaining to the reason ZFS cannot be added to the Linux kernel.

    I was told ZFS cannot be distributed with the Linux kernel because it would be derived work of the kernel and according to CDDL it cannot legally be distributed because of the conflict with GPL.

    Is this the same as saying because the ZFS module's origin is that of the Linux kernel it cannot be legally distributed?

    Am I even close?

    This brings to my real question.

    Is it legal for me to compile my own kernel with ZFS inside of it?

    As in could I add the code to the kernel and roll my own kernel with ZFS built in? Or does this still violate the terms of the licensing?

    It would not be distributed (physically at least) but I would most likley write some kind of tutorial on it.

    Any input would be great.

  • Answers
  • Daniel Pittman

    One of the Linux ZFS distributions has a reasonable answer: http://zfsonlinux.org/faq.html#WhatAboutTheLicensingIssue

    They also have the incentive to care deeply about what is or isn't legal.


  • Related Question

    performance - Compiling the Linux kernel
  • Hernan

    Just for the learning experience, I have recompiled the Linux kernel with different options, installed and booted from it. It was both instructive and straightforward. However, I was overwhelmed by the large number of options available.

    My questions are:

    1. Does it make sense to spend time trying to optimize the Linux kernel for my particular laptop? Will it make a significant improvement?
    2. Are there any tools that can read the configuration of my computer and suggest a config?

  • Related Answers
  • bahamat

    In all actuality, the kernel provided by your distro is probably the best one for almost everybody. What pretty much every distro is doing is compiling all options as modules and dynamically loading the modules as they are needed.

    It's a good exercise, especially if you're interested in learning about the kernel, but as far as day to day operation goes the performance benefits on a desktop or workstation will be slight to non-existent, even with the best compile time optimizations for your specific CPU.

    If you're doing this for education more than for performance then I suggest you try to compile as many different ways as possible. Compile everything as modules, then compile everything static (and watch how huge your kernel gets), then try to compile a minimal kernel yet keeping all of your hardware working. Try some experimental features (probably on a VM though ;-)). Have fun with it.

  • hbdgaf

    It can make a significant improvement in boot time, but not necessarily performance.

    Small add-on here: A static no modules kernel could be considered a bit more secure if you disable module support altogether.