Paragon is engaged on integrating its ntfs3 file system into the Linux kernel
Enlarge / Your hard drives and SSDs are no better than the file system you use to format them. Paragon’s ntfs3 driver combines decent performance with a fully functional implementation – a combination that neither Linux-internal ntfs nor FUSE-mounted ntfs-3g can claim both halves of. In March last year, proprietary file system provider Paragon Software released a stream of anti-open source FUD via a Samsung-derived exFAT implementation that was piped into the Linux kernel. A few months later, Paragon seemed to have recognized the flaw of its kind and began the arduous process of integrating its own implementation of Microsoft’s NTFS (the standard file system for all Windows computers) into the kernel as well.
Although Paragon is still obviously struggling to adapt its processes and practices to be open source friendly, Linux kernel BDFL Linus Torvalds appears to have a personal interest in this process. After nearly a year of Paradox’s efforts, Torvalds continues to gently nudge both it and skeptical Linux developers to move the project forward.
For those familiar with everyday Linux use, the utility of the Paragon version of NTFS may not be immediately apparent. The Linux kernel already has an implementation of NTFS, and most distributions make it incredibly easy to install and use another, FUSE-based implementation (ntfs-3g) on top of it.
However, both existing implementations have problems. The in-kernel implementation of NTFS is extremely old, poorly maintained, and should only be used read-only. Hence, most of the people who actually need to mount NTFS file systems on Linux use the ntfs-3g driver instead.
Ntfs-3g is in pretty good shape – it’s much newer than the kernel implementation of ntfs, and as Linux filesystem guru Ted Ts’o points out, it actually passes more automated filesystem tests than Paragon’s own ntfs3.
Unfortunately, the performance of ntfs-3g is miserable because of its operation in userspace, not the kernel. In Ts’o’s tests, Paragons ntfs3 completed the automated tests in 8,106 seconds – but the FUSE-based ntfs-3g took a whopping 34,783 seconds.
Aside from bugs and performance, ongoing maintenance is an important aspect of Paragon’s ntfs3, which does it in the kernel. Torvalds said that “Paragon should just make a pull request for [ntfs3]”-But he did so after realizing that the code should get OKs from the current maintainers and that Paragon should maintain the code itself in the future. (Paragon developer Konstantin Komarov quickly replied that the company intended to post the code to maintain the assumption.)
Why not Paragon?
Although Torvalds himself appears to be positive about the mainline of Paragon’s ntfs3 driver, as do some other users and developers, there are still some concerns about properly integrating Paragon and its workflow with the kernel developer community and standards Community to match.
Ted Ts’o – core maintainer of Linux ext3 / ext4 filesystems and the e2fsprogs userspace utilities that 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 notices other issues like deadlocks throughout the system that occur when ntfs3 is overused. (This is an issue we’ve also heard from people over the years who bought ntfs3 from Paragon.)
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 quality assurance and / or pledged to at least * try * to fix the trivial issues after about 5 minutes of testing with fstests. “
Colleague Darrick Wong added that he wants to make sure Paragon is invested in maintenance so that ntfs3 doesn’t “become one of the shoddy Linux filesystem drivers like”
The way forward
Despite Ts’o and Wong’s skepticism, we by and large expect the inclusion of Paragons ntfs3 to happen at some point. The company has worked for a year so far to bring its code from 27,000 lines of code that were thrown over the wall into a Linux-ready patch set – and although the main developer Komarov may not always have responded as quickly and thoroughly as Ts ‘o and dear Wong, he continues to respond.
For his part, Torvalds seems determined to find a powerful, modern, and maintainable replacement for the old (2001 era) and seldom used ntfs implementation in the kernel. As long as Paragon is ready to keep playing, it seems likely that it will eventually arrive – maybe even in time for the 5.15 kernel.