👩💻 Join our community of thousands of amazing developers!
文件系统是一种用来存储和组织计算机文件的软件。我们日常所说的硬盘只是一种存储介质,可以理解为一张白纸,但是这张纸并不能对上面的数据进行分块管理,也不能保证每一个bit在过了一段时间之后还是正确的。而文件系统就是用来管理这张纸的,除了存储文件的元数据信息之外,大部分文件系统还会提供校验码之类的数据安全保障,保证用户的数据不会因为存储介质的问题发生改变。 文件系统本身作为软件,还可以提供一些额外的功能,例如权限控制、加密、压缩、快照等等。这些功能都是在文件系统层面实现的,所以用户不需要关心具体的实现细节,只需要在使用的时候调用相应的接口就可以了。文件系统甚至还可以建立在另一个文件系统之上,例如 cvsfs-fuse 等等。 在用户空间文件系统(User-space Filesystems)出现之前,文件系统开发一直是操作系统内核开发人员的工作。创建一个新的文件系统需要了解内核编程和一些内核技术(例如vfs),但是移动存储设备的新兴和数据管理的需求使得这种文件系统开发方式显得很麻烦,应当有一种更加简洁好使的方案来开发文件系统,并能够在不同的操作系统中与原有API相互配合,于是便有了 FUSE...