【Windows开发】使用Windows官方版FUSE开发文件系统
本文仅分析技术信息,不提供代码!
1.用户态实现文件系统
1. Linux上要自主实现文件系统一般会采用fuse,主要是能在用户态进程直接开发实现,不需要开发内核驱动模块,这部分官方示例代码和开源代码太多了,也没什么好讲的,另外MAC上也有fuse开源项目。
2. Windows也有开源项目dokany,再加上其提供的fuse兼容层,基本上和fuse使用相同,而文件系统方面也有开源的fatfs可以使用。
但是,dokany仍然需要安装驱动,这意味着需要数字签名,对小公司和个人开发者来讲成本略高,当然使用官方提供的已签名版本也可以,只是仍然存在不可控的风险。
2.Windows官方提供的FUSE模块
而2018年的Win10更新上微软新增了一个叫ProjFS模块,本质上是GVFS项目的衍生,微软收购GitHub后开发新版本git工具,原本的git是基于命令或者简单的GUI界面操作,总体上不是很直观,所以微软基于VFS和git云存储,开始了一个GVFS项目,旨在将git工程文件直接映射到微软的资源管理器中(Explorer),GVFS(即VFS for Git)其中的一个模块叫GvFlt,是一个文件系统过滤驱动(dokany的驱动也是这一类),到了2018年,GvFlt独立出来一开始内部叫Primes,简称为Windows投影文件系统,后来改名叫ProjFS,即Windows Projected File System的简称,所以Windows 10 version 1809以上才支持。
总体上可以简单认为,ProjFS模块相当于dokany的微软版,当然细节上很多是围绕Git仓库的管理实现的,所以在使用上和fuse类还是有差距,且在开发过程的理解上可能fuse或dokany更直观一些,但这毕竟是官方原生支持,相对更方便,没有驱动方面的顾虑。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)