Afternoon Tutorial 2: An Introduction to the Implementation of ZFS

Monday, February 24, 2020 - 1:30 pm5:00 pm

Grand Ballroom E

Dr. Marshall Kirk McKusick, Author and Consultant


Much has been documented about how to use ZFS, but little has been written about how it is implemented. This tutorial pulls back the covers to describe the design and implementation of ZFS. The content of this tutorial was developed by scouring through blog posts, tracking down unpublished papers, hours of reading through the quarter-million lines of code that implement ZFS, and endless email with the ZFS developers themselves. The result is a concise description of an elegant and powerful system. It does not cover how to use and administrate ZFS.

ZFS was originally implemented in Sun Microsystems Solaris Operating System in the 1990's. It was released as open-source when Sun released Open Solaris and shortly after was incorporated into FreeBSD where it has become the most actively used filesystem. It was ported to Linux and continuously supported since by a group at Lawrence Livermore National Laboratory. Though it is not in the standard Linux distribution due to possible licensing conflicts, it has been included by Ubuntu since 2016 and can be added to most other Linux distributions.

Marshall Kirk McKusick, Author and Consultant

Dr. Marshall Kirk McKusick's work with Unix and BSD development spans over four decades. It begins with his first paper on the implementation of Berkeley Pascal in 1979, goes on to his pioneering work in the eighties on the BSD Fast File System, the BSD virtual memory system, the final release of 4.4BSD-Lite from the UC Berkeley Computer Systems Research Group, and carries on with his work on FreeBSD. A key figure in Unix and BSD development, his experiences chronicle not only the innovative technical achievements but also the interesting personalities and philosophical debates in Unix over the past forty years.

Open Access Media

USENIX is committed to Open Access to the research presented at our events. Papers and proceedings are freely available to everyone once the event begins. Any video, audio, and/or slides that are posted after the event are also free and open to everyone. Support USENIX and our commitment to Open Access.

This content is available to:

@conference {245986,
author = {Marshall Kirk McKusick},
title = {Afternoon Tutorial 2: An Introduction to the Implementation of {ZFS}},
year = {2020},
address = {Santa Clara, CA},
publisher = {{USENIX} Association},
month = feb,
Training Materials (Must be a registered conference attendee to download)