WinFsp - Windows File System Proxy
WinFsp 是为Windows计算机提供的一系列软件组件,允许创建用户模式的文件系统。在这一点上它和FUSE (Filesystem in Userspace)相似,为Windows计算机提供了Unix-like计算机的相同功能。
使用WinFsp的一些好处和特性如下:
- 允许简化开发用户模式文件系统的工作。 进程为了实现文件系统而可以进行操作没有限制 (而不是要服从系统的一系列严苛要求)。
- 支持基于磁盘和网络的文件系统。
- 支持NTFS层级的安全和访问控制。
- 支持内存映射文件<memory mapped files>,缓存文件<cached files>和NT缓存管理器<NT cache manager>。
- 支持文件更改通知。<file change notifications>
- 支持文件锁定。<file locking>
- 支持正确的NT 文件共享、文件删除和文件重命名的语义<NT semantics>。
有关于WinFsp的详情请登陆:http://www.secfs.net/winfsp/
项目的组织结构
WinFsp 包含一个FSD <内核模式驱动, File System Driver>和一个用户模式的DLL (Dynamic Link Library)。FSD和NTOS (Windows内核)相连,作为NTOS的一个文件系统驱动来处理一切和NTOS的交互。DLL和FSD相连,为创建用户模式文件系统提供了易于使用的API。
整个项目的源代码组织如下:
- build/VStudio: WinFsp VS解决方案<solution> 和项目文件<project files>。
- doc: WinFsp 的协议<license>, 贡献者一致声明<contributor agreement>和附加的文档<additional documentation>。 WinFsp的设计开发文档就在这里。
- ext/tlib: 一个来源于 secfs (Secure Cloud File System) 项目的小型测试库。
- ext/test: 指向secfs.test 项目的子模块<submodule>,包含一系列用于测试Windows和POSIX文件系统的工具。
- inc/winfsp: WinFsp API的公共头文件<public headers>。
- inc/fuse: FUSE兼容层<compatibility layer>的公共头文件<public headers>。
- src/dll: WinFsp DLL的源代码。
- src/dll/fuse: FUSE兼容层<compatibility layer>的源代码。
- src/launcher: launcher服务 和launchctl 工具的源代码。
- src/sys: WinFsp FSD的源代码。
- opt/cygfuse: Cygwin FUSE 包的源代码。
- tst/memfs: 示范文件系统(memfs)的C++源代码。
- tst/winfsp-tests: WinFsp 测试套件<test suite>。
编译及运行
为了 编译WinFsp你需要:
- Windows 10
- Visual Studio 2015
- Windows Driver Kit (WDK) 10
- Wix 工具链(toolset)
如果你自己编译驱动程序,驱动程序会因为没有签名而被Windows拒绝加载,为了解决这个问题你可以开启“测试签名”<testsigning> 。你可以通过命令行启动testsigning:bcdedit.exe -set testsigning
. 更多信息请查看这篇文档document.
WinFsp 设计上可以运行在Vista和更新版的系统上。目前已经在这些系统上得到了测试:
- Windows 8 Pro
- Windows 10 Pro
- Windows Server 2012
如何帮忙
我在以下几点需要帮忙:
- 如果你有一个运行在FUSE上的文件系统,请考虑将它移植到 WinFsp. WinFsp 有原生的API,同时也有FUSE的高层<high-level> API。
- 如果你使用 C/C++之外的语言 (e.g. Delphi, C#, 等),而且你对移植/提供封包<wrapping>WinFsp感兴趣,我很愿意听到来自你的好消息。
- 一大堆突出问题列出在BitBucket repository. 很多的项目都需要对 Windows 内核模式和对 WinFsp的理解, 所以对于 faint of heart.的人可搞不定。 如果你决定tackle那些问题, 请和我联系共同商讨<coordinate with me>,我正在活跃地解决那张问题清单上的项目(译者注:需要协调,避免工作上各干各而冲突)。
不管怎样我都愿意出点子帮忙就是了。
协议
WinFsp 目前通过AGPLv3协议发布。 同时也可以通过商业协议发布,如果你发现 AGPLv3 对你的限制太多,请联系 Bill Zissimopoulos 获取更详细信息。

- 原文:GitHub - billziss-gh/winfsp: Windows File System Proxy - FUSE for Windows / WinFsp —— Windows 文件系统代理 —— FUSE for Windows
- 作者:billziss-gh
- 频道:计算机
- 发布:CY2 (2016-07-21)
- 标签: FUSE
- 版权:本文仅用于学习、研究和交流目的,非商业转载请注明出处、译者和可译网完整链接。
文章评论