How Windows NTFS eventually became Linux • The Register
Opinion Love it or hate it, Linux users in a Windows world have to contend with Microsoft’s New Technology File System (NTFS). It’s always been a pain in the rump. Even after Microsoft finally ditched its anti-Linux rhetoric and released its patents to the open source community and expressly opened up its exFAT patents, we still couldn’t get into NTFS.
Things have changed. Starting with Linux kernel 5.15, NTFS is finally fully supported on Linux. This trip has not been easy.
Microsoft introduced NTFS, a proprietary journaling file system – naturally – in Windows NT 3.1 in 1993. From there, it replaced the 1977 File Allocation Table (FAT) file system on Windows.
Now, just because something is proprietary doesn’t mean Linux and open source developers can’t reverse engineer it or find a way to use it. Just see what the Samba team has done over the years with Server Message Block (SMB) and the folks at Wine, who have plenty of Windows apps to run on the * nix family of operating systems. NTFS, however, has proven to be much more difficult to transfer.
Oh, there were ways to work with NTFS drives from Linux, but it wasn’t pretty. There were two main open source Linux NTFS drivers: NTFS-3G and the captive NTFS driver.
NTFS-3G, which works with the User Space File System (FUSE), is slow, really, really slow. In Linux, it can also only read from NTFS systems. On other * nix systems, like macOS, you can write too, but it’s, in a nutshell, ugly. You can try doing things like resizing an NTFS partition, but as the Arch Linux program notes state, “Please make sure you have a backup before trying if your data is important.” Hmmm… let’s not do it and let’s say we did.
The captive NTFS driver could read and write to NTFS. To accomplish this trick, however, he used the original Windows ntfs.sys driver. Using a proprietary driver in open source software was always inconvenient, especially at the time. In the end, the project did not last long. The code itself is still there, but the project itself is long dead.
While the open source community was working on these projects, the Paragon company was taking a different approach. Its Microsoft NTFS for Linux by Paragon Software used the proprietary Paragon File System Link, a cross-platform file system driver for reading and writing from NTFS drives. The name of the program says it all. Paragon produced its software in partnership with Microsoft.
The result was a fast, efficient, and, yes, proprietary Linux NTFS system. But, while Paragon has worked well with this company for years, Microsoft was no longer the proprietary powerhouse it had been under Bill Gates and Steve Ballmer. Today’s Microsoft has realized they are on the wrong side of history with open source.
What was Paragon doing with a pro-open-source Microsoft? Well, at first the business quickly entered the first three stages of grieving: denial and isolation, anger and bargaining. In May 2020, he published an article titled The Hidden Cost of “Free” exFAT, where you can see the three steps exposed.
By September 2020, Paragon had taken the final step: acceptance. The company “provided the GPL read-write NTFS kernel driver to the Linux community, for timely inclusion in the main kernel.
It was wonderful news… other than this little thing. The NTFS3 code was by no means ready to be added to the kernel. That’s the problem with proprietary code – and that’s why I’m cynical that Microsoft can just open source, say, all Windows 7 – it’s often poorly written. Unlike open source, where everyone can see your work, proprietary software can hide their sins from onlookers.
First, the code, at 27,000 lines, was way too big. Linux kernel developer Nikolay Borisov wrote: “So how exactly do you expect someone to examine this monstrosity?
Good question. The answer: you can’t.
Plus, like Linus Torvalds said, it would be nice if Paragon, you know, “actually submitted it”.
Would it be too much to ask “Paragon [to] just make a git pull request for it “?
Paragon, unsurprisingly, didn’t know how to handle Linux kernel email and the Git-driven workflow. Mea culpa, Paragon agreed that they “will maintain this implementation”, but that “we will need several days to prepare a suitable pull request before we send it to you”.
Torvalds was happy to hear this, but he berated the developers at Paragon, “The other thing I want when there are big new parts like this is to ask you to make sure everything is signed correctly, and that there is There is no internal confusion about GPLv2 inside Paragon, and that all legal entities, etc. hubbub six months later. “
Over a year later, they had no fight against the GPL. Thank God for the little miracles. But, after a long and messy process, NTFS3, and therefore NTFS, is finally in the candidate version of the Linux 5.15 kernel. If all goes well, you can expect to see this core arrive in time for Halloween. Feel free to play a joke on Microsoft Halloween docs if you like, but with Microsoft’s unspoken blessing, NTFS will finally be fully and efficiently running Linux.
Who would have dreamed of this – just five years ago after Microsoft claimed it loved Linux? We are living in interesting times. ®