Linux-Kernel-Notes

Thinking in linux kernel

View on GitHub

FUSE Subsystem Tutorial

中文 [English] Main contents

Source baseline: Linux 7.2-rc6.

Chapter 1: FUSE subsystem design

Chapter 1 explains why FUSE needs its objects, protocol identities, cache leases, and queue rules without depending on individual source functions.

  1. Boundaries, layers, and end-to-end architecture
  2. Core objects, protocol identity, and capability negotiation
  3. Caching, I/O modes, and coherency
  4. Concurrency, backpressure, security, and failure

Chapter 2: Linux implementation

Chapter 2 follows Linux source code through object creation, request submission, daemon replies, and resource release.

  1. Source map, module initialization, mount, and FUSE_INIT
  2. Path walking, directory operations, attributes, and references
  3. OPEN, cached I/O, direct I/O, writeback, and RELEASE
  4. Request allocation, queue state machine, and /dev/fuse transport
  5. Ordinary mmap and virtio-fs DAX
  6. Teardown, abort, debugging, and performance analysis

Learning objectives

After completing the tutorial, you should be able to: