NTFS-3G

Microsoft Windows NTFS檔案系統的開放原始碼跨平台實作

NTFS-3G是一个由Tuxera公司开发并维护的自由软体项目,采用GNU通用公共许可证释出,旨在为非微软Windows NT系作业系统提供安全快速、具备读写功能的NTFS档案系统驱动程式

NTFS-3G
开发者Szabolcs Szakacsits,Tuxera Inc.
当前版本2022.10.3(2022年10月31日,​2年前​(2022-10-31
源代码库 编辑维基数据链接
编程语言C
操作系统主要是类Unix系统
类型档案系统驱动程式
许可协议GNU GPL
网站http://www.ntfs-3g.org/

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上。后来先后被移植至FreeBSDNetBSDOpenSolarisBeOSQNXNucleusVxWorksHaikuMorphOS英语MorphOSMinixMac OS X/macOS(除10.13外[1])、OpenBSDAndroid[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英语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英语Paragon Software Group开发的一套运行于作业系统核心空间的NTFS档案系统驱动程式
  • NTFS4DOS —— 专有免费软体,运行于MS-DOS上的NTFS档案系统驱动程式

参考资料

编辑
  1. ^ 1.0 1.1 NTFS on macOS Sierra: Paragon or Tuxera?. alexw. 2017-04-14 [2018-04-05]. (原始内容存档于2018-04-05). 
  2. ^ NTFS-3G: NTFS Driver with Ownership and permissions. [2008-04-23]. (原始内容存档于2019-10-18). 
  3. ^ Data Compression - Tuxera. [2018-02-15]. (原始内容存档于2018-02-16). 
  4. ^ NTFS-3G FAQ. [2018-04-02]. (原始内容存档于2018-02-19). 
  5. ^ NTFS-3G 2009.2.1 changelog. [2018-04-02]. (原始内容存档于2009-03-23). 
  6. ^ 引用错误:没有为名为community-edition的参考文献提供内容
  7. ^ OpenBSD adds fuse(4) support for adding file systems in userland. OpenBSD Journal. 2013-11-08 [2013-11-08]. (原始内容存档于2013-11-10). 
  8. ^ ntfs_3g-2014.2.15 – FUSE NTFS driver with read/write support. OpenBSD ports. 2014-01-05 [2015-02-14]. (原始内容存档于2014-11-08). 
  9. ^ NTFS-3G for Mac OS X ("Catacombae"). [2018-04-02]. (原始内容存档于2017-11-28). 
  10. ^ Home - FUSE for macOS. osxfuse.github.io. [2018-04-03]. (原始内容存档于2018-02-26). 
  11. ^ Forum, Xiaomi MIUI Official. MIUI does not support exFAT, NTFS, UDF and ext4 file system for micro sdxc. - MIUI General - Xiaomi MIUI Official Forum. en.miui.com. [2018-04-04]. (原始内容存档于2018-04-05). 
  12. ^ Full NTFS Read/Write Support for Android. xda-developers. 2012-06-25 [2018-04-04]. (原始内容存档于2017-01-11). 
  13. ^ 比較 JFS、XFS、NTFS-3G 和 ZFS-FUSE 的效能. [2008-04-23]. (原始内容存档于2008-04-30). 
  14. ^ 10 個檔案系統的評測. [2017-09-05]. (原始内容存档于2008-02-16). 
  15. ^ Performance at Tuxera. [2018-04-02]. (原始内容存档于2011-05-22). 
  16. ^ Raspberry Pi 2 vs Banana Pi ext4 vs NTFS vs exFAT •. HTPC Guides. 2015-03-19 [2018-04-05]. (原始内容存档于2017-07-19). 
  17. ^ OpenWrt Project: Filesystems. openwrt.org. [2018-04-05]. (原始内容存档于2018-04-05) (英语). 
  18. ^ NTFS-3G for Mac OS X is now Tuxera NTFS for Mac. [2018-04-02]. (原始内容存档于2018-04-03). 

外部链接

编辑