Paragon is working to get its ntfs3 filesystem into the Linux kernel
In March of last year, proprietary file system vendor Paragon Software launched an anti-open source FUD feed about a Samsung-derived exFAT implementation in the Linux kernel. Several months later, Paragon seemed to have seen the error in its ways and began the arduous process of getting its own implementation of Microsoft’s NTFS (the default file system for all Windows machines) into the kernel as well.
While Paragon is still clearly struggling to align its processes and practices with those compatible with open source, BDFL Linux kernel Linus Torvalds seems to have taken a personal interest in the process. After nearly a year of effort on Paragon’s part, Torvalds continues to gently push it and the skeptical Linux developers to move the project forward.
For those familiar with everyday Linux use, the usefulness of Paragon’s NTFS version may not be immediately obvious. The Linux kernel already has an implementation of NTFS, and most distributions make it incredibly easy to install and use another FUSE-based (ntfs-3g) implementation beyond.
The two existing implementations have problems, however. The NTFS kernel implementation is extremely old, poorly maintained, and should only be used read-only. As a result, most people who actually need to mount NTFS file systems on Linux will use the ntfs-3g driver instead.
Ntfs-3g is in fairly good shape – it’s much newer than the ntfs implementation in the kernel, and as Linux filesystem guru Ted Ts’o points out, it actually passes more filesystem tests. automated than Paragon’s own ntfs3.
Unfortunately, due to running in user space rather than the kernel, the performance of ntfs-3g is appalling. In Ts’o’s testing, Paragon’s ntfs3 completed the automated tests in 8,106 seconds, but the FUSE-based ntfs-3g took 34,783 seconds.
Aside from bugs and performance, ongoing maintenance is a key aspect of Paragon’s ntfs3, which makes it integrated into the kernel. Torvalds felt that “Paragon should just do a pull request for [ntfs3]”- but he did so after noting that the code should get OK from the current maintainers and that Paragon itself should maintain the code in the future. (Paragon developer Konstantin Komarov quickly responded that the company had intend to continue to maintain the code, once accepted.)
Why not Paragon?
While Torvalds himself seems positive about integrating Paragon’s ntfs3 driver, as several other users and developers are doing, there are still concerns about the proper integration of Paragon and its workflow into the community. development of the core and the standards of that community.
Ted Ts’o, who is primarily responsible for maintaining the Linux ext3 / ext4 file systems and the e2fsprogs user space utilities used to manage them, appears to be the most critical. In addition to the slightly higher number of failed automated tests he found in Paragon’s code, he notes other issues such as system-wide crashes that appear if ntfs3 is overloaded. (This is a problem we’ve heard over the years from people who have also purchased Paragon’s ntfs3.)
Ts’o also raises questions about maintenance and communication, saying, “I would feel better if * someone * at Paragon Software answered Darrick. [Wong] and my questions about their QA, and / or I made a commitment that they would at least * try * to resolve the issues that about 5 minutes of testing using fstests trivially revealed. ”
Fellow developer Darrick Wong added that he wanted to make sure Paragon is invested in maintenance in the future, so that ntfs3 doesn’t “become one of the crappy Linux file system drivers, like [the current in-kernel ntfs]. ”
The path to follow
Despite Ts’o and Wong’s skepticism, we generally expect the inclusion of Paragon’s ntfs3 to happen eventually. The company has worked for a year so far to turn its 27,000-line code thrown over the wall into a Linux-ready patch set – and although lead developer Komarov hasn’t always responded as quickly or as completely as Ts’o and Wong prefer, he keeps responding.
For his part, Torvalds seems determined to find a powerful, modern, and maintainable replacement for the old (2001 era) ntfs implementation that is rarely used in the kernel now. As long as Paragon remains willing to keep playing, it seems likely that it will eventually get there, maybe even in time for kernel 5.15.