FUSE文件系统
用户空间文件系统(Filesystem in Userspace,简称FUSE)是操作系统中的概念,指完全在用户态实现的文件系统。目前Linux通过内核模块对此进行支持。一些文件系统如ZFS,glusterfs和luster使用FUSE实现。 Linux用于支持用户空间文件系统的内核模块名叫FUSE,FUSE一词有时特指Linux下的用户空间文件系统。 文件系统是一个通用操作系统重要的组成部分。传统上操作系统在内核层面上对文件系统提供支持。而通常内核态的代码难以调试,生产率较低。 Linux从2.6.14版本开始通过FUSE模块支持在用户空间实现文件系统。 在用户空间实现文件系统能够大幅提高生产率,简化了为操作系统提供新的文件系统的工作量,特别适用于各种虚拟文件系统和网络文件系统。上述ZFS和 glusterfs都属于网络文件系统。但是,在用户态实现文件系统必然会引入额外的内核态/用户态切换带来的开销,对性能会产生一定影响。 目前Linux,FreeBSD,NetBSD,OpenSolaris和Mac OSX支持用户空间态文件系统。 比较知名的用户空间文件系统: ExpanDrive: 商业文件系统,实现了SFTP/FTP/FTPS协议; GlusterFS: 用于集群的分布式文件系统,可以扩展到PB级; SSHFS: 通过SSH协议访问远程文件系统; GmailFS: