billziss-gh / winfuse

FUSE for the Windows kernel
Other
183 stars 21 forks source link

WinFuse · FUSE for the Windows kernel

Download


WinFuse is a suite of software components that allows FUSE file systems to run on Windows. Both Windows and Linux (WSL1) FUSE file systems are supported. Windows FUSE file systems are supported via a kernel driver that exposes the FUSE protocol via DeviceIoControl and a port of the libfuse library compiled as a Windows DLL. Linux FUSE file systems are expected to run in the WSL1 environment and are supported via a kernel driver that exposes /dev/fuse.

ARCHITECTURE

Structural Diagram

The following component diagram shows the WinFuse project components and their relations to the Windows OS (NTOS), WSL (LXCORE) and components that are provided by other projects.

Component Diagram

The components and their interfaces are:

Behavioral Diagrams

The following sequence diagrams show how the WinFuse project components interact with other components in two scenarios: (1) I/O handled by a Windows FUSE file system, and (2) I/O handled by a Linux FUSE file system.

I/O handled by a Windows FUSE file system:

Windows FS Sequence Diagram

I/O handled by a Linux FUSE file system:

Linux FS Sequence Diagram

This case is similar to the previous case except that the winfuse driver is replaced by the wslfuse driver that exposes the FUSE protocol via the /dev/fuse interface that the Linux FUSE file system understands.