I admit my ignorance
But if the FUSE driver is read and write, works more or less okay and has been tested and used for many years, why not have a version of that in the kernel instead?
The latest release candidate of the 5.14 Linux kernel is a hefty beast, Linus Torvald remarked yesterday, seemingly impatient over how long it is taking Paragon to send in its long-awaited and much-reviewed NTFS driver. It has been nearly a year since Paragon submitted code for a read-write NTFS driver in the Linux kernel. The …
A FUSE study showed storage is typically the performance bottleneck. Their conclusion was "Modern file systems are complex software that are difficult to develop and maintain, especially in kernel space. We argue that a lot of file system development can be moved to user space in the future (see Apple, QNX, etc). Contrary to popular belief, our experiments demonstrated that for over 40 workloads, the throughput of user-space file systems has an acceptable level (95% of the kernel driver)"
Google "Terra Incognita: On the Practicality of User-Space File Systems - USENIX" for details.
It's pity no performance comparison was done between the kernel and the FUSE driver.
Unfortunately, this dates from 2015 when NVME storage was just a glimmer in a few specialist eyes!
The killer is this from slide 9: "Extra memory copying" (with a side order of "Costly context switches"). Fairly commodity "Ice Lake" CPUs have a memory bandwidth of around 230GB/s, which is good, but a PCIe Gen4 x16 will move data at 32GB/s (nearly) and finding storage subsystems that will use most of that is fairly straightforward. But if you have to use twice the memory bandwidth because you're using FUSE your ~30GB/s storage "costs" you ~60GB/s in memory, which is a fair old chunk of available bandwidth that might want to use for, you know, doing stuff.
It's not impossible, of course. But the shift in relative performance between storage and main memory over the past few years makes some of the casual assumptions from back then more questionable.
This post has been deleted by its author
FUSE supports splice which eliminates the extra memory copy. I don't know if ntfs-3g uses it or not. If the performances are the same then it should. Otherwise adding this feature may have been much easier and faster than porting (reinventing?) the kernel driver which apparently took three years according to Paragon copyrights.
Nowadays there are several advanced technologies like DPDK, SR-IOV, netmap, io_ring, RDMA, etc which enable same or close to kernel level performance for user space apps used by Amazon, Apple, Blackberry, IBM, HPE, etc. The benefit is much faster development time, so more efforts can be spent on innovation.
All perfectly reasonable comments, but not entirely relevant to a comparison of two existing codebases (NTFS-3G over FUSE vs Paragon in kernel).
The Usenix paper cited seemed to think there were extra memory copies and context switches. Perhaps they were wrong? But assuming, in the absence of evidence, that the authors were NOT wrong, the existence of splice (etc) seems of less than total relevance!
As others have noted, NTFS is an extremely complex beast with, uh, "challenges" mapping it into the Linux space. Yes,*if* you were starting from scratch, there are plenty of technologies that could be used, but you'd need to fully understand NTFS, too. This is not trivial, so we're left with using what we've got.
Fortunately, in my world (at least) WSL2 seems to be reducing the need of Linux NTFS support somewhat.
Because the current driver (at least, the way it seems to be integrated into the Ubuntu variants) trashes any NTFS volume you browse to.
The old read-only driver just ignored NTFS permissions, so you could happily browse a mounted Windows system drive with impunity. The FUSE driver gives you the same experience, but it does it by replacing the owner of every file and directory you view with some internally-generated random generated UID. With the result that a mounted Windows system volume rapidly becomes unbootable. I'm amazed more noise isn't made about it.I know you can manually mount the volume read-only, but the default desktop auto-mounter mounts it read-write, with destructive results.
Microsoft has shown very little inclination to build drivers that know how to work with non-Microsoft filesystems. I suppose its a combination of 'not invented here' and 'still wedded to drive letters' plus their other idiosyncrasies (like using the escape character as a path separator and a lack of soft or hard links) which makes it difficult for them to design mountable filesystems.
Its really corporate petulance (IMHO) -- Cygwin cracked the problem of matching Linux to Windows decades ago.
The biggest mess I see with Windows filesystems is the fact that you have two namespaces: the "drive letter" space and then the "filesystem on drive" one.
It's pretty easily solved (e.g. by creating a new space, such as just a ":" with no letter, and then putting all the letters under that, so you'd have :\C\Windows\, or something like that, or modifying the share semantics so that \\localhost\C etc. is automatically and irrevocably shared to just the local host), but it requires MS thinking there's value to this, and, for whatever reason, they don't.
Well, let me introduce you to Windows Subsystem For Linux 2... aka WSL2.
It's basically a (very) lightweight VM that exports Linux filesystems to Windows. You get what appears to be a network share of the the Linux filesystems. It's not perfect, but it's improving release-by-release.
(Biggest issue I had when I dug into it was that it didn't support removable media very well, which is kinda understandable for situations where you have a USB drive with both NTFS and xfs filesystems on it... which side gets control of the physical USB target? But they seem to be moving towards solving those sorts of problems with e.g. GPUs, so I'm optimistic).
would welcome an NTFS Linux kernel driver that doesn't force me to take my external drives to a MS Windows machine to fix the errors left by attempting to write to them by a Linux driver that isn't fully compatible with the NTFS file system. I've had to do that on several such, and it gets annoying. (Admittedly it would be nice if the external USB drive suppliers sold them for ext4 as well as NTFS ... dreams are free, but that's not what the Dream Police say ... :) )
At The Linux Foundation's Open Source Summit in Austin, Texas on Tuesday, Linus Torvalds said he expects support for Rust code in the Linux kernel to be merged soon, possibly with the next release, 5.20.
At least since last December, when a patch added support for Rust as a second language for kernel code, the Linux community has been anticipating this transition, in the hope it leads to greater stability and security.
In a conversation with Dirk Hohndel, chief open source officer at Cardano, Torvalds said the patches to integrate Rust have not yet been merged because there's far more caution among Linux kernel maintainers than there was 30 years ago.
Interview In June, Purism began shipping a privacy-focused smartphone called Librem 5 USA that runs on a version of Linux called PureOS rather than Android or iOS. As the name suggests, it's made in America – all the electronics are assembled in its Carlsbad, California facility, using as many US-fabricated parts as possible.
While past privacy-focused phones, such as Silent Circle's Android-based Blackphone failed to win much market share, the political situation is different now than it was seven years ago.
Supply-chain provenance has become more important in recent years, thanks to concerns about the national security implications of foreign-made tech gear. The Librem 5 USA comes at a cost, starting at $1,999, though there are now US government agencies willing to pay that price for homegrown hardware they can trust – and evidently tech enthusiasts, too.
Microsoft is flagging up a security hole in its Service Fabric technology when using containerized Linux workloads, and urged customers to upgrade their clusters to the most recent release.
The flaw is tracked as CVE-2022-30137, an elevation-of-privilege vulnerability in Microsoft's Service Fabric. An attacker would need read/write access to the cluster as well as the ability to execute code within a Linux container granted access to the Service Fabric runtime in order to wreak havoc.
Through a compromised container, for instance, a miscreant could gain control of the resource's host Service Fabric node and potentially the entire cluster.
EndeavourOS is a rolling-release Linux distro based on Arch Linux. Although the project is relatively new, having started in 2019, it's the successor to an earlier Arch-based distro called Antergos, so it's not quite as immature as its youth might imply. It's a little more vanilla than Antergos was – for instance, it uses the Calamares cross-distro installer.
EndeavourOS hews more closely to its parent distro than, for example, Manjaro, which we looked at very recently. Unlike Manjaro, it doesn't have its own staging repositories or releases. It installs packages directly from the upstream Arch repositories, using the standard Arch package manager pacman
. It also bundles yay to easily fetch packages from the Arch User Repository, AUR. The yay
command takes the same switches as pacman
does, so if you wanted to install, say, Google Chrome, it's as simple as yay -s google-chrome
and a few seconds later, it's done.
Microsoft has made it official. Windows Subsystem for Linux 2 distributions are now supported on Windows Server 2022.
The technology emerged in preview form last month and represented somewhat of an about-face from the Windows giant, whose employees had previously complained that while the tech was handy for desktop users, sticking it on a server might mean it gets used for things for which it wasn't intended.
(And Windows Server absolutely had to have the bloated user interface of its desktop stablemate as well, right?)
China’s efforts to end its reliance on Microsoft Windows got a boost with the launch of the openKylin project.
The initiative aims to accelerate development of the country’s home-grown Kylin Linux distro by opening the project up to a broader community of developers, colleges, and universities to contribute code.
Launched in 2001, Kylin was based on a FreeBSD kernel and was intended for use in government and military offices, where Chinese authorities have repeatedly attempted to eliminate foreign operating systems.
Old-school editor fans, rejoice: some two and a half years after version 8.2, Vim 9 is here, and with a much faster scripting language.
Vim 9 has only a single big new feature: a new scripting language, Vim9script. The goal is to "drastically" improve the performance of Vim scripts, while also bringing the scripting language more into line with widely used languages such as JavaScript, TypeScript, and Java.
The existing scripting language, Vimscript, remains and will still work. Only scripts beginning with the line vim9script
will be handled differently. The syntax changes are relatively modest; the important differences are in things like local versus global variables and functions, and that functions defined with :def
will be compiled before they are run. This allows many errors to be caught in advance, but more significantly, compiled functions execute from 10× to 1000× faster.
Good news for especially determined fans of Ubuntu's formerly in-house desktop: there's a new version.
Unity 7.6 just appeared, although there is a more complete list of changes in the earlier announcement that it was in testing.
Analysis Toxic discussions on open-source GitHub projects tend to involve entitlement, subtle insults, and arrogance, according to an academic study. That contrasts with the toxic behavior – typically bad language, hate speech, and harassment – found on other corners of the web.
Whether that seems obvious or not, it's an interesting point to consider because, for one thing, it means technical and non-technical methods to detect and curb toxic behavior on one part of the internet may not therefore work well on GitHub, and if you're involved in communities on the code-hosting giant, you may find this research useful in combating trolls and unacceptable conduct.
It may also mean systems intended to automatically detect and report toxicity in open-source projects, or at least ones on GitHub, may need to be developed specifically for that task due to their unique nature.
Version 21.3 of Manjaro - codenamed "Ruah" - is here, with kernel 5.15, but don't let its beginner-friendly billing fool you: you will need a clue with this one.
Manjaro Linux is one of the more popular Arch Linux derivatives, and the new version 21.3 is the latest update to version 21, released in 2021. There are three official variants, with GNOME 42.2, KDE 5.24.5 or Xfce 4.16 desktops, plus community builds with Budgie, Cinnamon, MATE, a choice of tiling window managers (i3 or Sway), plus a Docker image.
The Reg took its latest look at Arch Linux a few months ago. Arch is one of the older rolling-release distros, and it's also famously rather minimal. The installation process isn't trivial: it's driven from the command line, and the user does a lot of the hard work, manually partitioning disks and so on.
Biting the hand that feeds IT © 1998–2022