There is some sort of a bitterness in the Linux community when people talk about ZFS or DTrace. But it's the consumer who is affected by it. For their sake, I hope they don't take the 'We have BtrFS/eBPF/X' path.
There is some sort of a bitterness in the Linux community when people talk about ZFS or DTrace. But it's the consumer who is affected by it. For their sake, I hope they don't take the 'We have BtrFS/eBPF/X' path.
Merging DTrace implicitly means they are fine with both the CDDL and Oracle's patents, and thus that ZFS wouldn't be an issue for them.
Also, NTFS already has snapshots via Volume Shadow Copy.
ZFS is great but it’s not going to be a viable replacement as it exists today.
NTFS's USN change journal (which is separate from the transaction journal) is also useful as a robust offline alternative to ReadDirectoryChangesW file monitoring. Toy example: https://gist.github.com/pervognsen/bcc610d6a5ae6cbc3b2b4f7aa....
Anyway, the problem I've always had when using non-standard file system metadata like alternate streams or sparse files is that they interoperate poorly in practice. There's lots of code and programs out there that wants to treat everything like a plain old file and hence won't preserve alternate streams or sparseness. From my recollections this is true even for several of Windows's built-in utilities. Same issue if you want to transfer files over a socket or pipe or a non-NTFS storage medium like a FAT-formatted USB drive or a NetApp filer or a source control system. As a result this kind of thing is only really useful when deployed in a bubble; I believe WSL uses alternate streams for Unix permission bits and other Unix-specific file properties. Even though those WSL guest files live in a directory tree on a normal NTFS volume, they strongly caution you against touching them directly outside of WSL, presumably for the aforementioned reasons.
Aside from features, NTFS has some performance issues compared to other modern file systems, notably with lots of smaller files.
- For permissions WSL uses EAs; for capabilities it uses ADS
- I'm not sure if it's really NTFS that is slow with lots of small files or the I/O subsystem in general... I got the impression it's the latter but not sure.
Microsoft strongly recommends developers utilize alternative means to achieve your application s needs. Many scenarios that TxF was developed for can be achieved through simpler and more readily available techniques. Furthermore, TxF may not be available in future versions of Microsoft Windows. For more information, and alternatives to TxF, please see Alternatives to using Transactional NTFS.
https://docs.microsoft.com/en-us/windows/desktop/fileio/abou...
The Sun Storage Appliance used ZFS snapshots for updates, and it worked quite well.
All of these except shrinkable volumes (somewhat) are already part of ZFS, also assuming that you replace "BitLocker integration" with more general "encryption integration"
ZFS and NFSv4 were both designed to be able to serve the entire subset of NTFS features over the network, to interop with Windows computers.
As for ADS: basically xattrs. They can be arbitrarily named and each xattr on ZFS can be up to 16EiB large (same as the primary bin for file content). (As an aside, they aren't fully usable on Linux since Linux itself imposes a 64KiB limit on an xattr's content -- but that's not a ZFS limitation)
Absolutely not! Reparse points are directories that are associated with drivers that extend the capability of the filesystem itself. They can be used to implement symlink-like behavior, but that's only a single use case that scratches the surface of their potential power.
See https://docs.microsoft.com/en-us/windows/desktop/fileio/repa... for more information.
It doesn't sound like it is really an inherent property of the file system, but just controlled by a driver. I don't see why they couldn't be made to work on any other file system, such as FAT or ZFS.
PS> $lockedFile="C:\Windows\System32\wshtcpip.dll"
PS> Get-Process | foreach{$processVar = $_;$_.Modules | foreach{if($_.FileName -eq $lockedFile){$processVar.Name + " PID:" + $processVar.id}}} PS C:\> gps |? {$_.Modules.FileName -match "wshtcpip\.dll"} | select name, idObviously.
The super annoying thing is when the OS doesn't try to tell you which process(es) keeps it open and doesn't even ship with built in tooling to let you find out on your own.
I think that is the point GP tries to make.
It lets you see which process locked a file, and optionally remove the lock.
Or, imagine every copy of Word you have running is using a different set of binaries.
No, thank you.
Yeah, it should come with the OS, but that's Windows for you.
I use it in Win 7; I think it works most of the time (not always).
It's available with new kernels (including 5.0) on github as well.
https://github.com/oracle/dtrace-utils
https://github.com/oracle/libdtrace-ctf
https://github.com/ezannoni/dtrace-linux-kernel
We are working on a Fedora version of the kernel patches.
We are also discussing with the BPF team (on netdev) how to provide DTrace functionality integrated with the Linux Kernel.
I think that filesystems like ZFS and Btrfs are simply one step ahead than anything else, not only in features but also in tooling and UX. Send/receive, CoW snapshots, checksumming are all tremendous features that I think would fit fantastically into the Windows workflow, if Microsoft really managed to integrate them well. For instance, I think a ZFS-based Windows update would be able to do away with transactions and rely instead on datasets to snapshot the system, apply an update and rollback everything if something broke, exposing to power users the tools to clearly understand and rollback their systems themselves by hand.
Obviously all of this can be achieved by rewriting everything from scratch as in house, specific platforms, but I just feel that continuing to replicate in NTFS/ReFS features other open and widely supported filesystems have had for almost a decade is just not the best way forward, and it's not really better for anyone.
Does anyone actually use this on Windows these days? I'm guessing the reason so few filesystems support it now is because the gains aren't worth it for the types of files that take up most of the space on filesystems these days, such as video files. You can't compress x264 video with a general-purpose compression algorithm. Storage space is plentiful and cheap, and (general-purpose) compression yields little gains, and the stuff we're storing now is already compressed (images, video, audio, etc.).
When you feel slow, it is the abstraction layers and plugable interfaces above it. - and they are API.
Replacing the core won't help the performance. They need to remove some abstraction and break some application.
Mind that DTrace was ported by Oracle (at least partially) to Oracle Linux first. They haven't done that for ZFS (instead they created bttrfs, before owning Sun)
To my eyes at least they are pretty much helpless to do anything about it because of the licences. Do you have any ideas as to how they could work around the licencing issues ?
Edit: I am talking about Linux not Windows.
The source of incompatibility with ZFS and DTrace on Linux (until recently) was from the GPL, not from the CDDL. Windows (and, indeed MacOS - which has shipped DTrace for years), have no such restriction - the CDDL allows inclusion in larger proprietary works.
I'm not a lawyer or anything close, but who would possibly have standing and motive to sue? There's, what, a dozen people at most who have copyright on those struct definitions? And API copyrightability is still unsettled?
Maybe the lawyers were too conservative, and the engineers who listened to them were applying the wrong model?
Someone tell me why I'm wrong.
DTrace has a linux port which is GPL licenced since last year. So they are not helpless and there is nothing to work around.
Personally, I'd rather see more resources poured into bcachefs[1].
[citation needed]
Simon Phipps, Sun's Chief Open Source Officer at the time, has stated this is not the case:
* https://en.wikipedia.org/wiki/Common_Development_and_Distrib...
The only person who has made this claim is Danese Cooper, and she has been directly contradicted by her boss at the time (Phipps).
(Improving bcachefs, or whatever, is independent of the CDDL question.)
Of course he did. There's nothing to gain from admitting it. It's the sort of statement akin to 'Facebook deeply values your privacy', as in of course they're going to say that.
On the other hand, submitting the license to the OSI, but not the FSF to be consulted on compatibility before using it suggests otherwise.
""" > > It would be a critical mistake to underestimate her knowledge on > the CDDL > issues.
Nonetheless she is wrong to characterise the opinion of the Solaris engineering team in the way she does. She is speaking this way because she lost an argument inside Sun, not because her view is representative of the views of Sun or its staff in the way she claims. She, along with many actual engineers, was an advocate of using GPL for OpenSolaris but the need to release rather than wait for one of {GPL v3, Mozilla license revision, encumbrance removal} meant that this was not possible. I am still furious with her for the statement she made at DebConf, which was spiteful and an obstacle to a united FOSS movement. """
* https://marc.info/?l=opensolaris-discuss&m=115740406507420
Cooper is, AFAICT, the only one that made the claim: was it ever corroborated by anyone else? Phipps and Cantrill dispute it: are/were there others?
Edit: it seems that not even GPLv3 (which they considered) is not compatible with GPLv2 (which Linux uses), so even if they did that it would be a problem. One main thing (IIRC) that was of concern was patent license grants.
From your own quote:
> She, along with many actual engineers
The CDDL-GPL drama seems to be one of an attitude of "fuck-ZFS because fuck-Sun/Oracle and their fucking CDDL license".
The validity of the claim that the design of CDDL was 'malicious' is the thing I am skeptical about.
It may have ended up incompatible because of technical-legal reasons, but was that the intent? Cooper says yes, Phipps/Cantrill say no.
There have been better, cleaner, leaner, FOSS operating systems out there for decades, why support, or even give mindshare to something like Windows?
Also: https://itvision.altervista.org/why.linux.is.not.ready.for.t...
Notice that a lot of this one is about NVIDIA. The solution is simple: don't use it. Desktop Linux works great on Intel and AMD, where the driver support is excellent. NVIDIA isn't the only GPU vendor out there.
Printers work much better in Linux than in Windows, and it's been this way for a very long time. The exception is cheap, crappy inkjets. Solution: don't use cheap, crappy inkjets. Inkjets are a scam.
Games are always on this list. I don't care about games.
Many of the other points in your list are completely obsolete.
For business use, most of these factors are a non-issue. Being able to play AAA games is not important for a business computer, nor for many (most?) home computers. I know gamers can't conceive of this, but not everyone plays recent AAA video games.
- spend more money
- I don't care about it
- something undefined is obsolete
- ignoring that most business runs on MS products and compatibility issues are a thing
This attitude is one reason that was not on the list. It's one that one should not forget though as it hits hard for those who are determined to make it work. They found themselves confronted by a self centered community of semi-gods who think the world should arrange around what they assume it is.
Nvidia isn't the cheapest option by far, so no, you should change this to "spend LESS money". If you're talking about printers (your post was poorly written and didn't refer to anything point-by-point), then yes, and also "spend more money to save money". Inkjet printers are a scam, full stop. They cost a LOT of money in consumables. You will save a lot of money by buying a laser printer instead. It's really that simple. And every laser printer works just fine in Linux. There is no good reason to buy a <$100 inkjet printer unless you really want to be ripped off.
>- I don't care about it
Yes, and lots of other people don't as well. If games are the only thing keeping you on Windows (and I've talked to a bunch of people for whom this is the case), then stop complaining about all the problems and spying in Windows: you're making a choice to enjoy a luxury, and put up with things you find abhorrent, just because of your addiction to games. I know this is news to a lot of younger techies, but not everyone cares about modern AAA games. I guess I shouldn't even bother writing this because apparently this concept is so utterly foreign to them, but it's true. There's large swathes of the computer-using population (which these days is most of the population) that don't buy or play video games, and haven't since they were kids. Amazing huh? So no, the fact that Linux can't play every single AAA game just isn't an issue to them.
>- something undefined is obsolete
I have no idea what you're referring to here, perhaps you could try being more descriptive.
>- ignoring that most business runs on MS products and compatibility issues are a thing
In my experience, all my work is in Linux, except for MS Office and Outlook, and companies are wasting a lot of money buying me a separate computer (or VMware licenses etc.) just so I can read email on Outlook.
That's not the point here. Usually people have problems with Linux and Nvidia because they already have Nvidia in their computer. So changing hardware for Linux to make it work properly involves spending more money. Same goes for peoples printers. And no it's not just about inkjet. This is about drivers and unforeseeable issues you face if you switch and I know what I'm talking about since I made my parents laptop switch over to Mint and been confronted with issues on their laser printer...
> Yes, and lots of other people don't as well. If games are the only thing keeping you on Windows then stop complaining about all the problems and spying in Windows
I'm not sure if you misread the thread here. The original argument was about someone complaining that people have "love for Microsoft". Nobody was complaining about anything you bring up there.
> you're making a choice to enjoy a luxury, and put up with things you find abhorrent, just because of your addiction to games.
So what you did here was to blow out a straw man to infinity. Who's talking about addictions? Not everybody who wants to play a game after work or from time to time is addicted. What is this generalizing overdramatization?
> I have no idea what you're referring to here, perhaps you could try being more descriptive.
I didn't know what you meant by obsolete. That's why I wrote that. If you don't know what's obsolete, it wouldn't be much of a surprise to me considering the way you crippled the other points above but it's still kinda weird.
> In my experience, all my work is in Linux, except for MS Office and Outlook
So I guess you just don't have much experience then. It's not just office and outlook. It's a endless amount of small programs in different regions of different businesses and hardware. There is a huge world out there beyond your narrow world view of addicted kids, inkjet printers and outlook. The fact that you still think you can impose this narrow worldview on strangers enforces the point I've made at the end of my previous comment. You know, the one you ignored. You might want to sit down and think about this point alone. It may give you a hint why people like you are not helpful to the whole migration away from Microsoft. You are rather another reason why it's happening slower for some or not at all for others.
Bye.
Ok, then suppose you decide you want to run MacOS. Do you think it's unreasonable to have to change your hardware for that? Then why do you think Linux should be able to magically run perfectly on all PC hardware out there?
>Nobody was complaining about anything you bring up there.
The Win10 spying is the #1 complaint I hear from people these days about why they're "really" going to switch to Linux this time.
>Not everybody who wants to play a game after work or from time to time is addicted.
Yet the anti-Linux people constantly bring up games as some huge reason that desktop Linux "just can't work" and is "completely impossible". No, not everyone plays games, but people like you just can't conceive of this, can you?
>So I guess you just don't have much experience then. It's not just office and outlook
I have decades of experience, unlike you apparently. In all my engineering jobs, the only thing Windows is used for is Office and Outlook, and maybe running a hypervisor.
I think it's unreasonable to change to Mac at all but that is a completely different topic regarding a walled garden. I don't think Linux has to run on all kinds of hardware. Actually my argument was that Windows does that and that's one reason why it's everywhere and it will stay so for quite some time. You should read the comment you've originally answered to again.
> The Win10 spying is the #1 complaint I hear from people these days about why they're "really" going to switch to Linux this time.
The narrow group you are talking about here are also not the topic here. As I said before: Windows is everywhere. In regards to your argument here: most people don't care or don't even know about this.
> Yet the anti-Linux people constantly bring up games as some huge reason that desktop Linux "just can't work" and is "completely impossible". No, not everyone plays games, but people like you just can't conceive of this, can you?
Look at you. Just one comment before they were all addicts now everybody questioning the actual usability, compatibility and all those other issues form my first comments link are "anti-Linux people" and of course everything is my fault now...which brings us back to the topic of attitude. You know, that issue that you keep ignoring.
> I have decades of experience, unlike you apparently. In all my engineering jobs, the only thing Windows is used for is Office and Outlook, and maybe running a hypervisor.
Just like above you've displayed you extremely narrow experience and or world view and you keep doing it. I work for a huge worldwide engineering and architecture company and we have all kinds of programs that have been written for and run on Windows. For example software that collects and manages logger data, ever heard of AutoCAD? Revit? I mean, seriously how could you in your DECADE OF EXPERIENCE never heard of that? Everything around Sharepoint. Everything the architects design for VR. Also client ports and client software is exclusively Windows in this field. Ever worked for any branch of the military or state entities? All this potentiality increases if you look at our subs and their subs.
So I guess your decades of experience are either in a very narrow field or you are ignorant or you just lied to me and hoped to get through with that. None of those options shad a good light on you and the Linux migration movement. As I have mentioned above: you are hurting it.
Same as with kqueue vs epoll and so on.