mogoz

Fuse

tags
Filesystems

Intro

  • Traditionally filesystems were created as kernel drivers/modules. And as we said..the kernel runs in ring 0 with full access.
  • Fuse is a kernel layer that allows the kernel to use filesystem implementions written in userpace. In other words, allows the kernel to redirect filesystem calls to a userspace (ring 3) implementation.
  • You can write your whole filesystem as userspace application, register it with the kernel and if a program tries to open a file from your filesystem the kernel asks your implementation to do it.

Pro

  • We gain security and make creating filesystems a lot easier.

Con

  • Speed. But if making a network file system, we cannot care less, right?
  • Fuse filesystems can do much less than filesystems that are kernel modules.
  • You cannot do stuff like send commands over the SATA bus to communicate with the HDD directly. FS which are kernel modules are capable of this.

Resources

Links to this note