WinFsp·Windows文件系统代理

Windows 文件系统代理 -- Windows 的 FUSE。「Windows File System Proxy - FUSE for Windows」

Github星跟蹤圖

WinFsp·Windows文件系统代理

查看我的新内核驱动程序项目 WinSpd

WinFsp 是 Windows 计算机的一组软件组件,允许创建用户模式文件系统。从这个意义上讲,它类似于 FUSE(用户空间中的文件系统),后者在类似 UNIX 的计算机上提供相同的功能。

好处

稳定性

WinFsp 非常稳定。没有已知的内核模式崩溃,它也不会遭受资源泄漏或类似问题的困扰。WinFsp 的这种稳定性归功于其设计和严格的测试体系

性能

WinFsp 胜过竞争对手,并且在许多情况下的性能都优于 NTFS。了解有关其性能的更多信息。

兼容性

WinFsp 致力于与 NTFS 的兼容性和文件系统的正确性。有关完整的详细信息,请参见兼容性文档。

易于使用

WinFsp 具有易于使用但功能全面的 API。

  • 这个简单的教程说明了如何构建文件系统。
  • 请查阅 API 参考以进行本机开发。
  • 包括用于托管开发的 .NET 层。参见 src/dotnet
  • 包括 FUSE 2.8 兼容性层:fuse/fuse.h
  • 包括 FUSE 3.2 兼容性层:fuse3/fuse.h

其他福利

  • 每个版本上都提供了签名驱动程序。
  • 根据 GPLv3 许可提供,但免费/自由和开源软件有特殊例外。

要了解有关WinFsp的更多信息,请访问其网站:http://www.secfs.net/winfsp/

项目组织

项目源代码的组织如下:

  • file_folder build/VStudio:WinFsp解决方案和项目文件。
  • file_folder doc:WinFsp设计文档和其他文档可在此处找到。
  • file_folder ext:外部依赖项。
    • file_folder ext/tlib:最初来自secfs(安全云文件系统)项目的小型测试库。
    • file_folder ext/test:指向secfs.test项目的子模块,该项目包含许多用于测试 Windows 和 POSIX 文件系统的工具。
  • file_folder inc:公共头文件。
  • file_folder src:WinFsp 的源代码。
    • file_folder src/dll:WinFsp DLL 的源代码。
    • file_folder src/dll/fuse:FUSE 兼容性层的源代码。
    • file_folder src/dll/fuse3:FUSE3 兼容性层的源代码。
    • file_folder src/dotnet:.NET层的源代码。
    • file_folder src/fsptool:fsptool命令行实用程序的源代码。
    • file_folder src/ku:可以在内核或用户模式下使用的源代码。
    • file_folder src/launcher:启动器服务和launchctl实用程序的源代码。
    • file_folder src/sys:WinFsp FSD 的源代码。
  • file_folder opt/cygfuse:Cygwin 软件包的 FUSE 的源代码。
  • file_folder tst:示例文件系统和测试套件的源代码。
  • file_folder tools:用于构建和测试 WinFsp 的各种工具。

构建和运行

为了构建 WinFsp,您将需要以下内容:

  • Visual Studio 2015-2019
  • Windows 驱动程序工具包(WDK)10
    • 注意:在 Visual Studio 2015 中使用最新的 WDK(Windows 10.0.18362.1)时,可能会收到有关缺少任务 ValidateNTTargetVersion的错误。解决方法是编辑文件 \Program Files (x86)\Windows Kits\10\build\WindowsDriver.Common.targets 并修改ValidateNTTargetVersion 的 UsingTask 行,如下所示:
  • Wix toolset

要完全构建 WinFsp(包括安装程序),必须使用 tools\build.bat。默认情况下,它会构建一个 Release 版本,但是您可以使用以下语法选择 Debug 或 Release 配置:

tools\build.bat CONFIGURATION

如果您自己构建驱动程序,它将不会被签名,Windows 将拒绝加载它,除非您启用“testsigning”。您可以使用命令 bcdedit.exe -set testsigning on 启用 “testsigning”。有关更多信息,请参阅此文档

WinFsp 设计为在 Windows 7 及更高版本上运行。已在以下平台上进行了测试:

  • Windows 7 Enterprise
  • Windows 8 Pro
  • Windows Server 2012
  • Windows 10 Pro
  • Windows Server 2016

如何帮助

我正在以下领域寻求帮助:

  • 如果您有在 FUSE 上运行的文件系统,请考虑将其移植到 WinFsp。 WinFsp 具有本机 API,但也具有 FUSE(高级)API。
  • 如果您使用的是 C/C++ 以外的语言(例如 Delphi,Java 等),并且对移植/包装 WinFsp 感兴趣,我希望收到您的来信。
  • GitHub 存储库中列出了许多未解决的问题。其中许多要求具备 Windows 内核模式的知识,并了解 WinFsp 的内部原理,因此它们不适合胆小的人使用。

在任何情况下,我都可以提供想法和/或支持。

在哪里讨论

如果您想讨论 WinFsp,现在有两个选择:

许可

WinFsp 在 GPLv3 许可下可用,但 Free/Libre 和开源软件有特殊例外。也可以提供商业许可证。请联系 Bill Zissimopoulos <billziss at navimatics.com> 了解更多详细信息。

(The first version translated by vz on 2020.08.08)

主要指標

概覽
名稱與所有者winfsp/winfsp
主編程語言C
編程語言C++ (語言數: 10)
平台Windows
許可證Other
所有者活动
創建於2016-05-18 21:05:28
推送於2025-03-12 16:54:38
最后一次提交2024-10-10 12:32:50
發布數74
最新版本名稱v2.1B2 (發布於 2024-09-11 14:49:11)
第一版名稱v0.9 (發布於 2016-04-25 20:05:37)
用户参与
星數7.5k
關注者數142
派生數528
提交數3.1k
已啟用問題?
問題數501
打開的問題數77
拉請求數33
打開的拉請求數0
關閉的拉請求數13
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?