How to design a File System: A Beginner's Journey

Programmers talk about building an OS or developing a new programming language but why never about building a File System? Is it even a thing? How hard can it be? There is more to it than meets the eye and I want to show how complex yet fun it can be with this talk.

Introduction Operating System & Programming Languages - Who hasn’t dreamt of building one? But the complexity and time investment is something very few of us can put in. However, we never hear people talk about wanting to build a File System. I believe the reason for that is because we think it is part of the OS, but to be honest it need not be. In my opinion, building a File System gives you all the technical challenges you might expect in building an OS but an earlier payout. (Imagine a USB stick with your own file format that no one else can access.) In this talk, I want go through the basic concepts one might need to understand to implement a File System on their own.

Planned Talking Points Why build a FS?


What is a FS?

Program? Format? Data? How & where does FS write Data?

Write to File? Write to Disk? Reasoning about FS

How does FS interpret data Data in memory vs. Data on disk. Data Structures

Super Block I-Node Direct Indirect Double Indirect Visualization of a large file. Standard Values used by FS Disk Block Size File System Block Size File System Operations under microscope

Initialization a FS Mounting & Unmounting a FS Creating Files & Directories Reading from Files & Directories Writing to Files & Directories Deleting Files & Directories Renaming Files & Directories How to use your own File System

A File on Disk - Quick and easy. Filesystem in UserSpacE (FUSE) - Your gateway to let others use your FS. References

Some suggestions on where to find more information.

track icon Kernel
duration icon 45 min
language icon English
level icon Beginner


This talk video is not yet available, but we upload new videos and slides every month.

What is LinuxLab?

LinuxLab - how to build the Cloud - is the conference on Linux, kernel, embedded, cloud, containers, virtualization technologies and open source. LinuxLab is organized by Develer, the company who launched events like Better Software, Better Embedded, QtDay, PyCon and EuroPython.

Our conferences in numbers

conferences icon



speakers icon



attendees icon



countries icon



Talk slides

The talk slides are not yet available.