Konstantin Komarov, Founder and CEO of Paragon Software, posted a set of patches on the Linux kernel mailing list and with a full implementation of the NTFS file system which supports read and write operations. The code for this patch set is released under the GPL.
The implementation supports all features of the current version of NTFS 3.1including extended file attributes, data compression mode, efficient work with file gaps, and replay of registry changes to restore integrity after failures.
The controller proposed so far uses its own simplified implementation NTFS journaling, but in the future it is planned to add support for full logging on top of the JBD (log block device) available in the kernel, on the basis of which ext3, ext4 and OCFS2 journaling is organized.
On the mailing list, Paragon writes the following:
This patch adds the NTFS read and write driver to fs / ntfs3.
With decades of experience in commercial file system development and enormous test coverage, we at Paragon Software GmbH want to make our contribution to the open source community by providing the implementation of the NTFS Read-Write driver for the Linux kernel.
We plan to support this version after the codebase has been merged and add features and fix bugs. For example, full JBD journaling support will be added in later updates.
The controller is based on the existing commercial product code base from Paragon Software and is well tested. The patches are designed according to the requirements to prepare code for Linux and they contain no additional API links, allowing the new driver to be included in the main kernel.
Once patches are included in the main Linux kernel, Paragon Software intends to provide maintenance, bug fixes, and functionality improvements.
However, incorporation into the kernel may take time due to the need for a third party to review the proposed code. In the comments to the post, there are also problems with mounting and non-compliance with a number of requirements for patch design.
For example, it is proposed to divide the submitted patch into parts, as 27 thousand lines in a patch is too much and creates difficulties in review and verification.
In the MAINTAINERS file, it is recommended to explicitly define a policy for further code maintenance and indicate the Git branch to which fixes should be sent. It also points out the need to agree to add a new NTFS implementation when there is an old fs / ntfs driver working in read-only mode.
Previously, to have full access to NTFS partitions from Linux, I had to use the FUSE NTFS-3g driver, which runs in user space and does not provide the desired performance.
This driver has not been updated since 2017, just like the read-only fs / ntfs driver. Both drivers were created by Tuxera, which, like Paragon Software, provides a proprietary NTFS driver that is distributed commercially.
You have to remember in October last year, following the publication of publicly available specifications by Microsoft and the provision of the possibility of free use of patents for exFAT on Linux, Paragon Software opened its controller code with the implementation of the exFAT FS.
The first version of the driver was limited to read-only operation, but a write-enabled version was in development.
These patches remained unclaimed, and the exFAT driver proposed by Samsung and used in the firmware of this company's Android smartphones was adopted into the kernel kernel.
The move was viewed painfully by Paragon Software, which has been critical of open exFAT and NTFS implementations.