In March of last year, proprietary filesystem provider Paragon Software unleashed an anti-open source FUD stream over a Samsung-derived exFAT implementation targeting the Linux kernel. Several months later, Paragon seemed to have seen the error of his methods and it started the arduous process of getting your own implementation of Microsoft’s NTFS (the default file system for all Windows machines) into the kernel as well.
Although Paragon is still clearly struggling to align its processes and practices with open source friendly ones, the Linux kernel BDFL Linus Torvalds seems to have taken a personal interest in the process. After nearly a year of effort by Paradox, Torvalds kindly continues Push both he and the skeptical Linux developers to keep the project moving forward.
For those familiar with everyday Linux use, the utility of Paragon’s NTFS version may not be immediately obvious. The Linux kernel already has an NTFS implementation, and most distributions make it incredibly easy to install and use another FUSE-based implementation (ntfs-3g) beyond that.
However, both existing implementations have problems. The kernel implementation of NTFS is extremely old, poorly maintained, and should only be used read-only. As a result, most people who really need to mount NTFS file systems on Linux use the ntfs-3g driver instead.
Ntfs-3g is in reasonably good shape; is much newer than the kernel implementation of ntfs, and like Linux filesystem guru Ted Ts’o Points out, actually passes more automated filesystem tests than Paragon’s own ntfs3.
Unfortunately, because it operates in user space rather than the kernel, ntfs-3g’s performance is abysmal. In Ts’o’s tests, the Paragon ntfs3 completed the automated tests in 8,106 seconds, but the FUSE-based ntfs-3g required a whopping 34,783 seconds.
Bugs and performance aside, ongoing maintenance is a key aspect for Paragon’s ntfs3 to do so in the kernel. Torvalds opined that “Paragon should make a pull request for [ntfs3]”… but it did so after noting that the code should receive approval from current maintainers and that Paragon itself should maintain the code in the future. (Paragon developer Konstantin Komarov was quick to reply that the company intended to continue keeping the code, once accepted).
Why not Paragon?
Although Torvalds himself seems positive about the integration of Paragon’s ntfs3 driver, as do several other users and developers, there are still some concerns about the proper integration of Paragon and its workflow in the kernel development community and agree with the standards of that community.
Ted ts’o—The primary responsibility for Linux ext3 / ext4 file systems and the e2fsprogs user space utilities that are used to manage them — seems to be the most critical. In addition to the slightly higher number of failed automated tests it found in the Paragon code, it points to other issues such as the complete system deadlocks which appears if ntfs3 is emphasized too much. (This is a problem we’ve heard over the years from people who have also purchased ntfs3 from Paragon.)
Ts’o also raises questions about maintenance and communication, saying “I’d feel better if * someone * at Paragon Software answered Darrick [Wong] and my inquiries about their quality assurance, and / or I made a commitment that they would at least * try * to fix issues that trivially came up during about 5 minutes of testing with fstests. “
Fellow developer Darrick Wong added that he wants to make sure Paragon is invested in maintenance in the future, so that ntfs3 doesn’t “become one of Linux’s messed-up filesystem drivers, such as
The way to follow
Despite Ts’o and Wong’s skepticism, overall we expect Paragon’s ntfs3 inclusion to happen eventually. The company has worked for a year now to take its code from the 27,000 lines of code released. on the wall in a set of Linux-ready patches, and while lead developer Komarov may not have always responded as quickly or as deeply as Ts’o and Wong prefer, he continues to respond.
For his part, Torvalds seems determined to find an efficient, modern, and maintainable replacement for the old (2001 era) ntfs implementation rarely used in the kernel now. As long as Paragon is still willing to keep playing, chances are he will eventually, maybe even in time for the 5.15 kernel.