文档结构  
翻译进度:已翻译     翻译赏金:0 元 (?)    ¥ 我要打赏

WinFsp - Windows File System Proxy

WinFsp Demo

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>。
第 1 段(可获 2 积分)

有关于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>。
第 2 段(可获 2 积分)

编译及运行

为了 编译WinFsp你需要:

如果你自己编译驱动程序,驱动程序会因为没有签名而被Windows拒绝加载,为了解决这个问题你可以开启“测试签名”<testsigning> 。你可以通过命令行启动testsigning:bcdedit.exe -set testsigning. 更多信息请查看这篇文档document.

WinFsp 设计上可以运行在Vista和更新版的系统上。目前已经在这些系统上得到了测试:

  • Windows 8 Pro
  • Windows 10 Pro
  • Windows Server 2012

如何帮忙

我在以下几点需要帮忙:

第 3 段(可获 2 积分)
  • 如果你有一个运行在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 获取更详细信息。

第 4 段(可获 2 积分)

文章评论