❯ Filesystems: The ZFS a Linux Developer Sent to FreeBSD A Linux kernel developer told a ZFS user, on the kernel's own mailing list, to switch to FreeBSD. On Debian the bill arrives with every kernel update: 368,777 lines of ZFS compiled on your server. Whoever runs ZFS on Linux pays for it twice: with a module that DKMS compiles on the server after every kernel update, and with a kernel whose maintainers have put in writing that ZFS is on its own. On 15 January 2019 a patch for Linux 5.0 stopped exporting two functions that ZFS on Linux used for its checksums and RAID-Z parity. A user objected. Greg Kroah-Hartman replied that ZFS "could be the best filesystem ever to grace this planet", but that its licence was "specifically designed to not be compatible with Linux". Why would he care? Christoph Hellwig was briefer: "please switch to FreeBSD". The habit is real. Debian carries ZFS in contrib, Ubuntu has shipped the module since 2016, Proxmox since 3.4, and TrueNAS has run on Linux since 25.04, all with the same OpenZFS code. ■ WHAT THE KERNEL SAYS In the reading of the FSF and the SFC, GPLv2 and CDDL may not be combined in a distributed binary. So Debian ships source and compiles on your machine, and Ubuntu ships a binary the SFC called an "ongoing violation". Linux 5.0 cost ZFS its SIMD code until July 2019. Linus Torvalds, January 2020: "If somebody adds a kernel module like ZFS, they are on their own." And: "Don't use ZFS. It's that simple." He also saw "no real maintenance" behind it; OpenZFS has shipped 56 stable releases since. ■ THE WINDOW Every new kernel needs a ZFS release that supports it. Across the seventeen mainline kernels from 6.6 to 7.2, that took between 5 and 88 days, 38 at the median. Until then a machine with its root on ZFS holds the new kernel back, and when the DKMS build fails, the old kernel gets chosen at the boot prompt. ■ THE SAME JOB ON FREEBSD The installer offers "Auto (ZFS)" first. ZFS has been in the base system since 7.0 in 2008, on OpenZFS since 13.0, and the 15.1 kernel I checked this morning ships zfs-kmod 2.4.2. Kernel and ZFS leave the project in one release, freebsd-update takes a boot environment before it installs, and bectl rolls back. Nothing compiles on the server and nothing waits for a second project. The CDDL code simply sits in the tree beside the BSD code. Every Linux distribution that offers ZFS builds this integration for itself. That is the thesis of my book Integrated by Design in a single case: the integrated system solved it once, in 2008. ■ THE LIMIT The code is the same OpenZFS on both. Debian stable and Ubuntu LTS rarely meet the window, because their kernels move slowly. Linux has the larger ecosystem, which is part of why TrueNAS moved. And no court has settled the licence question. Christoph Hellwig offered his advice as a dismissal, and as a recommendation it has aged rather well.