Paragon has submitted code for a read-write NTFS driver in the Linux kernel, and told The Register that it also plans to provide its NTFS tools and utilities as open source.
The decision to offer the NTFS code for Linux emerged last month when the company submitted a 27,000 line patch to the kernel mailing list, raising complaints from code maintainers that it was too large to review.
The patch is now at version 4 and has been split into chunks as well as being cleaned up and bugs fixed.
“Though the decision about its acceptance is yet to be made, Paragon feels optimistic … it’s important to us that the Linux community can make use of NTFS included in the Linux kernel with confidence,” the company stated.
Linux currently has two NTFS drivers, a FUSE (Filesystem in Userspace) driver which is read/write, and a kernel driver which is read-only. It is this latter driver which Paragon intends to replace.
“The need for a new native implementation included with the kernel comes as the current NTFS driver remains practically unmaintained, lacks decent write support and has none of the other advanced features,” Paragon said. Its driver is not only read/write but supports additional features including journal replay, compressed and sparse files, and more.
Why has the company chosen to offer its code under the GPL (GNU General Public License) now, many years after first offering it commercially? It was because of Microsoft, Paragon told us. “Microsoft made the decision to allow the use of exFAT in the Linux kernel, and we felt encouraged to give Linux what it has been waiting for over 20 years – quality NTFS supports at the kernel level.”
The driver is one thing, but what about the tools and utilities included in its commercial version, like chkntfs for checking and fixing errors on NTFS partitions?
“We plan to publish the next releases on our GitHub, Paragon said.
We asked whether the company will still offer a commercial NTFS driver for Linux. “We will continue developing it due to its complexity, and offering it also as a proprietary technology because OEMs require us to do so,” the company said. “Note that OEMs (military, government, businesses etc) will never use GPL because rules require making public any modifications - OEMs will always look for proprietary solutions and we remain here to support them.”
Customers may want to amend the code to fine-tune the performance on a specific device, said Paragon. “[A] cell phone or action camera running Linux and accessing NTFS media has different performance, power, footprint and memory requirements compared to a server or desktop running Linux. This kind of fine tuning can make a huge difference.” Customers unwilling to publish the amendments they make have “an option to use Paragon’s proprietary code that comes under commercial license,” we were told.
Paragon also said that it can more easily assure the quality of its proprietary code. “Paragon’s Linux Kernel implementation of NTFS complies with Paragon’s internal test requirements, but we’re unable to provide instant testing of the code once it’s accepted to a Linux Kernel and changed further by the community.”
Since the company is promising to continue maintaining its Linux contribution, and any part of Linux may be "changed further by the community", we're not sure that this last remark makes complete sense; but what is clear is that customers who prefer the commercial licensing model of the existing offer can still have it, even if the company is succesful in getting its driver into the kernel.®