NTFS-3G

Last updated

NTFS-3G
Developer(s) Tuxera Inc.
Stable release
2022.5.17 / May 26, 2022;21 months ago (2022-05-26) [1]
Repository
Written in C
Operating system Unix-like, Haiku
Type File system driver
License Dual-licensed GNU GPL [2]
Website github.com/tuxera/ntfs-3g

NTFS-3G is an open-source cross-platform implementation of the Microsoft Windows NTFS file system with read/write support. NTFS-3G often uses the FUSE file system interface, so it can run unmodified on many different operating systems. It is runnable on Linux, FreeBSD, NetBSD, OpenSolaris, illumos, BeOS, QNX, WinCE, Nucleus, VxWorks, Haiku, [1] MorphOS, Minix, macOS [3] and OpenBSD. [4] [5] It is licensed under the GNU General Public License. It is a partial fork of ntfsprogs and is under active maintenance and development.

Contents

NTFS-3G was introduced by one of the senior Linux NTFS developers, Szabolcs Szakacsits, in July 2006. The first stable version was released on February 21, 2007, as version 1.0. The developers of NTFS-3G later formed a company, Tuxera Inc., to further develop the code. NTFS-3G is now the free "community edition", [1] while Tuxera NTFS is the proprietary version.

In 2021, Linus Torvalds merged a different NTFS (experimental as of 6.0) [6] implementation called NTFS3 into the Linux kernel 5.15. [7]

Features

NTFS-3G supports all operations for writing files: files of any size can be created, modified, renamed, moved, or deleted on NTFS partitions. Transparent compression is supported, as well as system-level encryption. [8] Support to modify access control lists and permissions is available. [9] NTFS partitions are mounted using the Filesystem in Userspace (FUSE) interface. NTFS-3G supports hard links, symbolic links, and junctions. With the help of NTFS reparse point plugins, it can be made to read chunk-deduplicated files, system-compressed files, and OneDrive files. [10] NTFS-3G provides complete support and translation of NTFS access control list (ACL) to POSIX ACL permissions. A "usermap" utility is included to record the mapping from UIDs to Windows NT SIDs.

According to its own information, the company Tuxera Ltd was founded in 2008 by Szabolcs Szakacsits, because more and more requests from well-known companies regarding the integration into their products made this step necessary. [11] On its website, the company offers customized versions as Tuxera NTFS for Embedded Systems.

NTFS-3G supports partial NTFS journaling, so if an unexpected computer failure leaves the file system in an inconsistent state, the volume can be repaired. As of 2009, a volume having an unclean journal file is recovered and mounted by default. The ‘norecover’ mount option can be used to disable this behavior. [12]

At the end of August 2009, it became known that Tuxera had entered into a cooperation with Microsoft, which also included an intellectual property agreement. [13] Since Microsoft thus also provided insight into the specification of exFAT, Tuxera was able to develop the driver Tuxera exFAT for Embedded Systems in addition to NTFS, which is offered to commercial customers.

Performance

Benchmarks show that the driver's performance via FUSE is comparable to that of other filesystems' drivers in-kernel, [14] provided that the CPU is powerful enough. On embedded or old systems, the high processor usage can severely limit performance. Tuxera sells optimized versions of the driver that claims to have improved CPU utilization for embedded systems and macOS. [15]

The slowness of NTFS-3G (and FUSE in general) on embedded systems is attributed to the frequent context switching associated with FUSE calls. Some open-source methods provided to reduce this overhead include: [16]

History

Advanced version

The software's main maintainer Jean-Pierre André has kept the development active on SourceForge, providing bug fixes and new features. He ran a parallel release system on his website as the NTFS-3G Advanced Version (NTFS-3G AR). Each version was run through a test suite and was considered stable. [21] [22]

Linux distributions that have switched to NTFS-3G AR include Debian and its derivatives (Ubuntu, PureOS, Pardus, Parrot OS, Trisquel), Gentoo Linux, and LiGurOS. [23]

As of August 30, 2021, the previously two collaborating projects merged and moved to GitHub. [24]

See also

Related Research Articles

<span class="mw-page-title-main">Operating system</span> Software that manages computer hardware resources

An operating system (OS) is system software that manages computer hardware and software resources, and provides common services for computer programs.

New Technology File System (NTFS) is a proprietary journaling file system developed by Microsoft. Starting with Windows NT 3.1, it is the default file system of the Windows NT family. It superseded File Allocation Table (FAT) as the preferred filesystem on Windows and is supported in Linux and BSD as well. NTFS reading and writing support is provided using a free and open-source kernel implementation known as NTFS3 in Linux and the NTFS-3G driver in BSD. By using the convert command, Windows can convert FAT32/16/12 into NTFS without the need to rewrite all files. NTFS uses several files typically hidden from the user to store metadata about other files stored on the drive which can help improve speed and performance when reading data. Unlike FAT and High Performance File System (HPFS), NTFS supports access control lists (ACLs), filesystem encryption, transparent compression, sparse files and file system journaling. NTFS also supports shadow copy to allow backups of a system while it is running, but the functionality of the shadow copies varies between different versions of Windows.

ext2, or second extended file system, is a file system for the Linux kernel. It was initially designed by French software developer Rémy Card as a replacement for the extended file system (ext). Having been designed according to the same principles as the Berkeley Fast File System from BSD, it was the first commercial-grade filesystem for Linux.

Unionfs is a filesystem service for Linux, FreeBSD and NetBSD which implements a union mount for other file systems. It allows files and directories of separate file systems, known as branches, to be transparently overlaid, forming a single coherent file system. Contents of directories which have the same path within the merged branches will be seen together in a single merged directory, within the new, virtual filesystem.

In computing, a futex is a kernel system call that programmers can use to implement basic locking, or as a building block for higher-level locking abstractions such as semaphores and POSIX mutexes or condition variables.

<span class="mw-page-title-main">/dev/random</span> Pseudorandom number generator file in Unix-like operating systems

In Unix-like operating systems, /dev/random and /dev/urandom are special files that serve as cryptographically secure pseudorandom number generators (CSPRNGs). They allow access to a CSPRNG that is seeded with entropy from environmental noise, collected from device drivers and other sources. /dev/random typically blocks if there was less entropy available than requested; more recently it usually blocks at startup until sufficient entropy has been gathered, then unblocks permanently. The /dev/urandom device typically was never a blocking device, even if the pseudorandom number generator seed was not fully initialized with entropy since boot. Not all operating systems implement the same methods for /dev/random and /dev/urandom.

<span class="mw-page-title-main">UEFI</span> Operating system and firmware specification

Unified Extensible Firmware Interface is a specification that defines the architecture of the platform firmware used for booting the computer hardware and its interface for interaction with the operating system. Examples of firmware that implement the specification are AMI Aptio, Phoenix SecureCore, TianoCore EDK II, InsydeH2O. UEFI replaces the BIOS which was present in the boot ROM of all personal computers that are IBM PC compatible, although it can provide backwards compatibility with the BIOS using CSM booting. Intel developed the original Extensible Firmware Interface (EFI) specification. Some of the EFI's practices and data formats mirror those of Microsoft Windows. In 2005, UEFI deprecated EFI 1.10.

HFS Plus or HFS+ is a journaling file system developed by Apple Inc. It replaced the Hierarchical File System (HFS) as the primary file system of Apple computers with the 1998 release of Mac OS 8.1. HFS+ continued as the primary Mac OS X file system until it was itself replaced with the Apple File System (APFS), released with macOS High Sierra in 2017. HFS+ is also one of the formats supported by the iPod digital music player.

Filesystem in Userspace (FUSE) is a software interface for Unix and Unix-like computer operating systems that lets non-privileged users create their own file systems without editing kernel code. This is achieved by running file system code in user space while the FUSE module provides only a bridge to the actual kernel interfaces.

Captive NTFS is a discontinued open-source project in the Linux programming community, started by Jan Kratochvíl. It is a driver wrapper around the original Microsoft Windows NTFS file system driver using parts of ReactOS code. By taking this approach, it aimed to provide safe write support to NTFS partitions.

<span class="mw-page-title-main">Git</span> Software for version control of files

Git is a distributed version control system that tracks changes in any set of computer files, usually used for coordinating work among programmers who are collaboratively developing source code during software development. Its goals include speed, data integrity, and support for distributed, non-linear workflows.

A kernel is a component of a computer operating system. A comparison of system kernels can provide insight into the design and architectural choices made by the developers of particular operating systems.

Squashfs is a compressed read-only file system for Linux. Squashfs compresses files, inodes and directories, and supports block sizes from 4 KiB up to 1 MiB for greater compression. Several compression algorithms are supported. Squashfs is also the name of free software, licensed under the GPL, for accessing Squashfs filesystems.

<span class="mw-page-title-main">Comparison of open-source wireless drivers</span>

Wireless network cards for computers require control software to make them function. This is a list of the status of some open-source drivers for 802.11 wireless network cards.

The following tables compare general and technical information for a number of file systems.

exFAT is a file system introduced by Microsoft in 2006 and optimized for flash memory such as USB flash drives and SD cards. exFAT was proprietary until 28 August 2019, when Microsoft published its specification. Microsoft owns patents on several elements of its design.

An NTFS reparse point is a type of NTFS file system object. It is available with the NTFS v3.0 found in Windows 2000 or later versions. Reparse points provide a way to extend the NTFS filesystem. A reparse point contains a reparse tag and data that are interpreted by a filesystem filter driver identified by the tag. Microsoft includes several default tags including NTFS symbolic links, directory junction points, volume mount points and Unix domain sockets. Also, reparse points are used as placeholders for files moved by Windows 2000's Remote Storage Hierarchical Storage System. They also can act as hard links, but are not limited to pointing to files on the same volume: they can point to directories on any local volume. The feature is inherited to ReFS.

<span class="mw-page-title-main">Tuxera</span> Finnish software company

Tuxera Inc. is a Finnish company that develops and sells file systems, flash management and networking software. The company was founded in 2008 and is headquartered in Espoo, Finland. Tuxera's other offices are located in the US, South Korea, Japan, Hungary, Germany, Taiwan and China.

<span class="mw-page-title-main">OpenZFS</span> Open-source implementation of the ZFS file system

OpenZFS is an open-source implementation of the ZFS file system and volume manager initially developed by Sun Microsystems for the Solaris operating system and now maintained by the OpenZFS Project. It supports features like data compression, data deduplication, copy-on-write clones, snapshots, and RAID-Z. It also supports the creation of virtual devices, which allows for the creation of file systems that span multiple disks.

References

  1. 1 2 3 "STABLE Version 2022.5.17 (May 26, 2022)". GitHub. Tuxera. May 26, 2022. Retrieved September 12, 2022.
  2. "Tuxera/NTFS-3g". GitHub . November 3, 2021.
  3. NTFS-3G for Mac OS X ("Catacombae")
  4. "OpenBSD adds fuse(4) support for adding file systems in userland". OpenBSD Journal. November 8, 2013. Retrieved November 8, 2013.
  5. "ntfs_3g-2014.2.15 – FUSE NTFS driver with read/write support". OpenBSD ports . January 5, 2014. Retrieved February 14, 2015.
  6. "Re: [GIT PULL] ntfs3: bugfixes for 6.0 - Linus Torvalds". lore.kernel.org. Retrieved March 17, 2024.
  7. "Re: [GIT PULL] ntfs3: New NTFS driver for 5.15 - Linus Torvalds".
  8. NTFS-3G FAQ
  9. NTFS-3G: NTFS Driver with Ownership and permissions
  10. André, Jean-Pierre (March 1, 2019). "NTFS-3G: Junction Points, Symbolic Links and Reparse Points". jp-andre.pagesperso-orange.fr. Archived from the original on August 28, 2022.
  11. "About us - Tuxera" . Retrieved January 26, 2023.
  12. "NTFS-3G 2009.2.1 changelog". Archived from the original on March 23, 2009. Retrieved September 10, 2012.
  13. "NTFS-3G-Firma schließt IP-Abkommen mit Microsoft" . Retrieved January 26, 2023.
  14. Comparing NTFS-3G to ZFS-FUSE for FUSE Performance
  15. "Performance at Tuxera". Archived from the original on May 22, 2011. Retrieved September 29, 2017.
  16. Gothe, Markus. "On Linux NTFS Performance" . Retrieved October 3, 2019.
  17. "NTFS-3G Questions". Tuxera. Workaround: using the mount option "big_writes" generally reduces the CPU usage, provided the software requesting the writes supports big blocks.
  18. Wang, M. "linux - Disadvantages of ntfs-3g 'big_writes' mount option". Unix & Linux Stack Exchange. Retrieved October 3, 2019.
  19. NTFS-3G for Mac OS X is now Tuxera NTFS for Mac
  20. "Release: NTFS-3G + NTFSPROGS 2011.4.12". Archived from the original on September 9, 2014. Retrieved April 26, 2018.
  21. "Advanced NTFS-3G Features". jp-andre.pagesperso-orange.fr.
  22. "NTFS-3G: Changelog for the Advanced Versions". jp-andre.pagesperso-orange.fr.
  23. "ntfs-3g package versions". Repology.
  24. "ntfs-3g versions merge". GitHub.