STO-220 · Storage & Filesystems

Writing a Filesystem from Scratch

Implement a small but real filesystem, which is the fastest way to genuinely understand the VFS.

Expert 4 days in person8 half-days online Max 14 in person

Who this course is for

Experienced kernel engineers who want the fastest route to real VFS fluency: implement a small but genuine filesystem and let the kernel's own test suites tell you what you got wrong.

Prerequisites

Solid C and kernel module development (KRN-110 level)STO-201 (VFS Internals) or equivalent strongly recommendedAbility to build and boot your own kernel in QEMU

Course outline

Day 1 — The on-disk format and getting mounted

  • Designing a minimal format: superblock, inode table, block allocation map
  • Writing the mkfs tool in userspace
  • Module skeleton: register_filesystem, ->mount, fill_super, kill_sb
  • Reading on-disk structures safely: buffer heads vs bio
  • Milestone: mount and unmount cleanly

Day 2 — Inodes, dentries and directories

  • Implementing ->lookup and the dentry interface
  • Directory format and ->iterate_shared (readdir)
  • ->create, ->mkdir, ->link/->unlink and updating the parent
  • iget and the inode cache; when inodes get written back
  • Milestone: ls, stat, mkdir and rm all work

Day 3 — The data path

  • address_space_operations: read_folio, write_begin/write_end
  • Block allocation on write and the allocation bitmap
  • Integrating with the page cache instead of fighting it
  • ->fsync and what durability you actually guarantee
  • Symlinks and the remaining inode operations as time allows

Day 4 — Testing like a filesystem developer

  • fsx: randomised operation fuzzing and interpreting failures
  • Running generic xfstests against your filesystem
  • Fault injection: failing block devices and allocation failures
  • Locking review under parallel load; lockdep findings
  • Code review clinic: defending your design under upstream-style critique

Hands-on labs

Labs follow the academy model — 35% principles, 20% guided investigation, 45% engineering studio. Every claim you make in a lab is backed by a trace, a counter or a measurement you captured yourself. How we teach

  1. Lab: write mkfs for your format and mount the resulting image read-only in QEMU
  2. Lab: implement ->lookup and ->iterate_shared until find and ls behave correctly
  3. Lab: implement the write path with block allocation and prove data survives umount/remount
  4. Lab: run fsx and a subset of xfstests generic cases; triage and fix the first three failures
  5. Lab: inject block-device failures mid-write and make your ->fsync semantics honest under error

Capstone project

The filesystem itself is the capstone: by day 4 you demonstrate it mounting, surviving a parallel fsx run and passing a defined subset of xfstests generic cases, then present the evidence — test logs, a fault-injection transcript, a lockdep-clean parallel workload, and a short design note stating precisely which durability guarantees your format does and does not make.

What you leave with

  • A working filesystem you wrote and can extend
  • The VFS operations tables understood from the implementer's side
  • fsx and xfstests as ongoing development tools
  • Fault-injection discipline behind any durability claim
  • A realistic sense of what upstream filesystem review demands

How it runs

Every course follows the same model: 35% principles, 20% guided investigation, 45% engineering studio. You leave with working code, raw measurements and an evidence-based report — not a certificate of attendance. Read the methodology or see a full sample lesson.

Material is adapted to your kernel version, hardware and workload before a private delivery. For public cohorts, the environment is provided and configured.

Questions

Who is this course for?

Experienced kernel engineers who want the fastest route to real VFS fluency: implement a small but genuine filesystem and let the kernel's own test suites tell you what you got wrong. It sits at expert level within the Storage & Filesystems track.

What do I need to know already?

Specific prerequisites for this course: Solid C and kernel module development (KRN-110 level); STO-201 (VFS Internals) or equivalent strongly recommended; Ability to build and boot your own kernel in QEMU. We confirm levels before the cohort starts and adapt if a group is stronger or weaker than expected.

Can this run privately for my team?

Yes. Any course runs on-site at your offices anywhere, or live online for a distributed team, with labs adapted to your hardware and codebase.

What is the difference between in-person and online?

In person is 4 full days with hardware on your desk, capped at 14. Online is 8 half-day sessions across about two weeks so you can keep working, capped at 20, with remote lab access.

Do you invoice companies?

Yes. Purchase orders are accepted and invoicing is available in USD, EUR, GBP, SAR and CAD.

Upcoming dates

DatesWhereSeatsEarly birdRegular
1 Nov – 4 Nov 20264 full days RiyadhIn person · KAFD Conference Centre 10 of 14 —SAR 13,500
8 Nov – 11 Nov 20264 full days Kuwait CityIn person · Al Hamra Tower 5 of 14 KWD 1,010until 9 OctKWD 1,120
8 Nov – 11 Nov 20264 full days MuscatIn person · Knowledge Oasis Muscat 10 of 14 OMR 1,250until 9 OctOMR 1,390
15 Nov – 24 Nov 20268 half-days Gulf bandLive online · 09:00–13:00 GMT+3 4 of 20 US$2,340until 16 OctUS$2,600
16 Nov – 19 Nov 20264 full days OttawaIn person · Kanata North Tech Park 5 of 14 CAD 4,410until 17 OctCAD 4,900
23 Nov – 26 Nov 20264 full days TorontoIn person · MaRS Discovery District 10 of 14 CAD 4,410until 24 OctCAD 4,900
23 Nov – 26 Nov 20264 full days LondonIn person · Shoreditch Works 5 of 14 GBP 2,530until 24 OctGBP 2,810
23 Nov – 2 Dec 20268 half-days Europe bandLive online · 09:00–13:00 CET 9 of 20 US$2,340until 24 OctUS$2,600
23 Nov – 2 Dec 20268 half-days Americas bandLive online · 13:00–17:00 ET 14 of 20 US$2,340until 24 OctUS$2,600
30 Nov – 3 Dec 20264 full days BerlinIn person · Factory Görlitzer Park 10 of 14 EUR 2,980until 31 OctEUR 3,310

Dates shown for the next few months. If nothing fits, tell us where and when — cohorts are added on demand, and private delivery can be scheduled any week.

More in Storage & Filesystems