Why is zfs out of tree

Content on WhatAnswers is provided "as is" for informational purposes. While we strive for accuracy, we make no guarantees. Content is AI-assisted and should not be used as professional advice.

Last updated: April 8, 2026

Quick Answer: ZFS is out of the Linux kernel tree primarily due to licensing incompatibility between its CDDL license and Linux's GPLv2 license. This conflict prevents ZFS from being distributed as part of the mainline Linux kernel, requiring it to be maintained as an external module. The CDDL was created by Sun Microsystems in 2004 specifically for open-sourcing Solaris, while Linux adopted GPLv2 in 1991. This has led to ongoing legal debates about whether ZFS can be legally distributed with Linux distributions.

Key Facts

Overview

ZFS (Zettabyte File System) is an advanced file system originally developed by Sun Microsystems for Solaris, first released in 2005. The licensing conflict stems from Sun's decision to release ZFS under the Common Development and Distribution License (CDDL), which they created specifically for open-sourcing Solaris components. Meanwhile, the Linux kernel has used the GNU General Public License version 2 (GPLv2) since its inception in 1991. This fundamental licensing incompatibility means ZFS cannot be legally distributed as part of the mainline Linux kernel source code. The issue became prominent when ZFS gained popularity for its advanced features like copy-on-write, snapshots, data integrity verification, and built-in volume management. Despite being widely used on Linux systems through external modules, the licensing barrier has prevented official kernel integration for nearly two decades.

How It Works

The licensing incompatibility works through specific legal restrictions in both licenses. The GPLv2 requires that any derivative work or combined work must also be licensed under GPLv2, creating a 'viral' effect where all components must share the same license. The CDDL, while also open source, contains different terms and conditions that prevent it from being combined with GPLv2 code in a single work. When software is distributed as part of the Linux kernel tree, it must comply with GPLv2 requirements. Since ZFS is licensed under CDDL, it cannot meet these requirements. To work around this, ZFS is maintained as an out-of-tree kernel module that can be loaded separately. This separation allows users to compile and load ZFS modules on their systems without violating either license, though distribution of pre-compiled binaries remains legally contentious. The technical implementation involves maintaining separate source trees and build systems that compile against specific kernel versions.

Why It Matters

This licensing conflict matters because it affects how millions of Linux users access advanced storage features. Many enterprise and home users want ZFS's data integrity, snapshot capabilities, and storage efficiency on Linux systems. The out-of-tree status creates maintenance challenges - ZFS modules must be updated for each new kernel version, sometimes causing compatibility issues. Major distributions like Ubuntu and Debian have navigated legal gray areas by providing ZFS packages, while others avoid it entirely. The situation has sparked ongoing debates about open source licensing compatibility and whether the GPL's restrictions help or hinder software adoption. For system administrators, this means extra steps to install and maintain ZFS, potentially affecting system stability and security updates. The conflict also illustrates broader issues in open source licensing fragmentation that can limit software interoperability across platforms.

Sources

  1. Wikipedia: ZFSCC-BY-SA-4.0
  2. Wikipedia: CDDLCC-BY-SA-4.0
  3. Wikipedia: GPLCC-BY-SA-4.0

Missing an answer?

Suggest a question and we'll generate an answer for it.