NTFS-3G
Microsoft Windows NTFS檔案系統的開放原始碼跨平台實作 来自维基百科,自由的百科全书
NTFS-3G是一个由Tuxera公司开发并维护的自由软件项目,采用GNU通用公共许可证发布,旨在为非微软Windows NT系的操作系统提供安全快速、具备读写功能的NTFS文件系统驱动程序。
NTFS-3G最初由资深Linux驱动程序开发者Szabolcs Szakacsits(匈牙利语发音:[ˈsɒbolt͡ʃ ˈsɒkɒt͡ʃit͡ʃ])于2006年发起并主导,2007年初公布了第一个稳定版本ntfs-3g-2007.02.21,源代码托管于SourceForge。随后NTFS-3G团队成立了Tuxera Inc.,负责NTFS-3G的进一步发展、商业推广以及为项目提供开发资金。目前Tuxera公司还推出了NTFS-3G的商用版本Tuxera NTFS及NTFS for Mac,后两者除了NTFS-3G的源代码以外还有一些非Tuxera开发的用以加强访问性能的专有组件。[1]
主要特性
Linux核心里所包含的NTFS驱动程序(在一些发行版上则是作为单独的内核模块)在内核空间上执行,仅提供读取操作(包括列出文件清单、开启、复制文件),而缺少写入操作(包括建立文件,对文件的修改、更名、移动和删除)的支持。
而NTFS-3G则是借助用户空间文件系统(Filesystem in Userspace,FUSE)框架完成挂载,以此支持对NTFS分区的大部分写入操作。
目前实现的特性有:
- 在NTFS分割上建立任意大小的文件
- 在NTFS分割上对文件进行更名、移动、删除、修改
- 支持UTF-8字符集
- 支持访问控制表和权限的修改[2]
- 支持NTFS硬链接和符号链接
- 支持NTFS透明压缩:对经过NTFS透明压缩的文件进行读取、更名、移动、新增、删除、修改[3]
- 对NTFS日志的基本支持,除了基本的文件写入操作记录以外,还可完成对NTFS卷文件系统层面上的修复操作
- 对NTFS加密文件的重命名、复制、移动、删除操作等不涉及文件加密/解密过程的访问操作。
对于NTFS加密,目前为止加密文件的建立、对已有文件进行加密等涉及文件加密/解密的访问操作仍未实现支持。[4]
自ntfs-3g-2009.2.1起,NTFS-3G已经可以默认对含不完整日志的NTFS卷进行恢复及挂接,需要时可通过“norecover”参数禁用这个设置。[5]
支持的操作系统
最初NTFS-3G是Linux-NTFS项目的分支,第一个稳定版本也只运行于Linux上。后来先后被移植至FreeBSD、NetBSD、OpenSolaris、BeOS、QNX、Nucleus、VxWorks、Haiku、MorphOS、Minix、Mac OS X/macOS(除10.13外[1])、OpenBSD、Android等[6][7][8][9],甚至WinCE等微软尚未有NTFS支持的微软操作系统也有移植支持。
不过,由于NTFS-3G需要依赖FUSE框架运行,像是macOS等类UNIX操作系统并没有内置FUSE,需要先安装FUSE框架方能安装NTFS-3G并使用(像是macOS需要安装FUSE for macOS等FUSE框架。而NTFS-3G的商用版本Tuxera NTFS for Mac则是附带了MacFUSE作为FUSE框架)。[10]
Android对NTFS的支持,理论上以基于Linux核心加载NTFS-3G驱动的方式实现,但AOSP并没有集成任何的NTFS驱动程序,而且也不是所有的Android设备厂商原厂就会用此种支持方式,甚至缺乏对NTFS的支持(如小米系列手机,原厂预载的MIUI缺少一些文件系统的驱动程序,包括NTFS[11]),不过在一些客制固件上,绝大多数通过移植NTFS-3G驱动程序至Linux核心来实现对NTFS的支持。[12]此外,一些设备可以通过获取root权限并安装具备NTFS驱动程序供操作系统核心加载的App,实现对NTFS分割的挂载(如SD卡、通过USB OTG挂载的移动硬盘)。
性能
2007年与2008年的两个评测显示,NTFS-3G的驱动程序性能已能与其它一些使用FUSE的文件系统相比,但较依赖CPU的性能,表示NTFS-3G尚未完成对性能的优化。[13][14]
Tuxera官方的使用手册及NTFS-3G手册页上也提到,NTFS-3G当前的开发焦点仍集中在可靠性和实现欠缺的POSIX功能性,访问性能并不是优先考量的,至少需要性能较好的CPU方能获取较好的访问性能。[15]在一些较老的系统或需要低功耗的嵌入式设备上,高CPU使用量会极大地限制NTFS-3G的访问性能(尤其是写入性能),[16]OpenWRT/LEDE的官方说明文档中也告知对性能较为注意的用户尽量避免使用NTFS文件系统。[17]
延伸项目
ntfsprogs是一套类Unix系统下的工具集,用于对NTFS卷进行建立、修改、删除等多种操作。最初复刻自NTFS-3G。2011年4月,ntfsprogs合并至NTFS-3G项目,并持续维护至今。
发展过程
- 自2006年10月31日起,NTFS-3G独立成项目,不再是Linux-NTFS项目的一部分。
- 于2007年2月21日,Szabolcs Szakacsits宣布“第一个开放源代码、完全自由、稳定的读写NTFS的驱动程序,NTFS-3G 1.0发布”。
- 自ntfs-3g-2009.1.1版起已经对UTF-8字符集实现完整支持
- 2009年10月5日,Tuxera发布NTFS-3G for Mac,并推出了含专有组件的商用版Tuxera NTFS。[18]
- 自ntfs-3g-2009.11.14版开始支持新增透明压缩的文件、对透明压缩包案的更名。
- 自ntfs-3g-2010.8.8版开始可对已有经过透明压缩的文件的修改操作。
- 2011年4月12日,宣布ntfsprogs项目合并至NTFS-3G。
类似软件
- Tuxera NTFS及NTFS for Mac —— NTFS-3G的商用版,内含一些对访问性能有提升的专有组件
- Paragon NTFS —— 专有软件,Paragon Software Group开发的一套运行于操作系统核心空间的NTFS文件系统驱动程序
- NTFS4DOS —— 专有免费软件,运行于MS-DOS上的NTFS文件系统驱动程序
参考资料
外部链接
Wikiwand - on
Seamless Wikipedia browsing. On steroids.