The evolution of Unix facilities and architecture (2017)
minnie.tuhs.org
minnie.tuhs.org
Not sure if that's true, i know many people who have TrueNAS, but no Linux installation on a Desktop/Server.
Also some PS3/4/5 owners and Netflix users, often people don't know they use FreeBSD or parts of it, but they know when they installed Linux.
It's also funny that Linus tech tips probably use more FreeBSD's (TrueNas and OPNsense) then Linux's ;)
Plus they also ship devices with Netflix code on them.
You talk bs.
>Plus they also ship devices with Netflix code on them.
Are you talking about open-connect? They don't ship that to "End-users", and you can sell an appliances with GPL software and proprietary code on it..hello Android?? And please stop now, your arguments are like from a 12yo, and i know for a fact that your much much older, also sometimes wiser, i don't know why that is not available for you today.
Android is actually a good example, it is no accident that Google has been cleaning Android from GPL code, leaving only the kernel and since Android 8 only Project Treble drivers (out of kernel) are used.
Fuchsia is even better, only Apache and MIT licenses.
You try to be a troll...it's kind of childish.
>leaving only the kernel and since Android 8 only
Ah yeah "only" the kernel of linux...
>Fuchsia is even better, only Apache and MIT licenses.
And BSD but true....license wonders ;)
* They use Android (the article was about fs so its applicable)
* They use an embedded routeur powered by Linux
* Embedded stuff in their cars
Etc...
I suspect the relatively more aggressive write caching of Linux and Unix-likes, combined with their more complex filesystem data structures, leads to a design in which unexpected resets easily cause lots of filesystem corruption. Contrast that with FAT's simplicity, minimal (effectively none) write caching, and the tradition of cutting power as soon as you returned to a DOS prompt. Maybe that's actually the true "worse is better".
That spake, I wonder, are your bad experiences here with VMs, or with a raspberry pi?
Pis, especially the 2, had faulty hardware, and would report a successful write to an sd card before it was done. To "help" with speed.
This cause the sort of issues you are mentioning. And similarly, any situation where a write complete is a lie, can result in this behaviour too.
EG, a raid card with hard power off, no battery backed up cache, etc.
Because your experiences do not jive here, with ext4, and thousands upon thousands of servers and desktops I maintain.
Sadly USB sticks are handled the same way. The write notification and progress bar are long gone but you won't be able to eject that medium for several minutes.
Don't remember if it is the same on windows, since i use it rarely.
If you commit your database journal, you're told it's done and you start overwriting data, but the journal was never persisted... a loss of power will wreck your entire database.
Interesting, do you know where I can read more about that? Or is this something you found out yourself?
OTOH ext2 was rock solid.
This thread is wild. Are you saying you're still running Windows 98 and DOS machines (and for that matter Linux running a non-journaled ext3/4 device, something which no one has tried in decades)?!
Or is this literally a comment pulled from 1994? People really want to have an argument over the quality of a system in 2023 based on screaming we all did literally 30 years ago. Unbelievable.
Your experience does not match the vast majority of users. The only OS I lost data on was on Windows when a drive crashed hard. When the same happened years later on Linux, I lost exactly nothing.
I don't remember losing a lot of data in DOS/Win3.1 but I rarely used it because it crashed so much.
I did have a lot of keyboard and X11 lockups in the 1990's but after a year I got a dumb terminal for $20 so someone could still check email, read Usenet, etc. while the main display was in use. If the main keyboard or X11 server locked up I could use the terminal to sync the filesystem and reboot the machine cleanly. I remember doing that quite a bit when playing full screen games or anything with SVGAlib
> hands and it was up to you to fix it.
I can't remember how many of my early Linux systems I couldn't recover after a power outage (or crash) because / was corrupt
Had one app that crashed inexplicably every year at midnight on Halloween. Or at least the two years I put up with it. Had to leave a party to rebuild a server from scratch when one failure turned into lots of failures.
Not missing those days!
Hilarious, but, I suppose, effective. Perks of controlling the entire vertical...
I don't know if any drive ever did that. But certainly the drives actual people actually had would not. Power hiccups, and whatever is being written becomes garbage (and maybe a few sectors after it, too), and the heads flop loose.
Maybe a top-quality drive would turn off current to the write head if power sagged, so that the controller going crazy would not have lasting consequences. But certainly cheap drives never had anything that might have cost an extra penny.
Is that what it means to have a "hybrid" drive? Prius and Seagate had a kid?
It turns out that they are often almost completely false, so relying on those promises is a bad idea.
Now maybe simplicity everywhere is actually beneficial for mean robustness, but this will not be true for all particular cases.
That doesn't sound right. DRAM can keep its content for a few seconds without power - it's what make Cold boot attacks [1] possible. Also, DRAM has its own buck voltage regulators, usually with hefty inductors, capable of delivering power long after +5V and +12V started to drop.
So worse is not better, then! More like worse needed greater efforts to make decent.
Imagine all that great tooling effort, applied to create excelent tooling for the other so-good and well engineered filesystem, the FFS mentioned in the article.
Perhaps that's the reason why a market succeeds under schumpeter but a planned economy (ie inside a large company) often fails
The fact is, Unix (and then Linux) was strictly better at the things people wanted to do, full stop.
It's important that people realize here that the software we're talking about is not "Linux" as it exists in the tree today, or even any time over the last 20 years. It's Linux of the mid-90's, when the Zeitgeist of the system was a mad rush to reach feature parity with commercial unix on commodity PC hardware that failed all the time anyway[1].
No one wants to hold up ext2 as a paragon of software quality. But in practice in the mid-90's, it worked just as well as its competitors on the hardware where it was deployed, and quite frankly was much faster. It won for some pretty obvious reasons, and was compatibly replaced over the years with evolved versions that have all the features anyone wanted.
[1] Notably here: at that point it was routine to find IDE drives with large multi-track buffers. Almost none of this hardware did any of the write ordering magic[2] internally, nor did the protocol provide a way to distinguish "on disk" from "in drive RAM". The problem wasn't solvable in the regime where the software was being deployed.
[2] Which IMHO was oversold by the BSD people even at the time. Contrary to the way it's presented, the Berkeley Fast File System was absolutely not reliable in the face of power loss in the way that modern journaled filesystems are. It had to fsck on boot and deal with metadata corruption too, it was just much better about it.
Sometimes designing a system is the best approach. Sometimes iterating on a "worse is better" technology is the right approach. There is no single answer.
I think we need to be more rational about the real reasons Linux is/was so successful. Yes, sometimes it was about "worse is better" but certainly not the majority of the time. My guess is -- the reason Linux was so successful can be summarized much more easily as: free as in beer, unpretentious (does not require adopting some high UNIX religion), appealing licensing (I don't love the GPL/licensing religion but lots of people do!), and it was very, very lucky.
I'm saying epoll is an example of a technology which has not been able to surpass its Solaris or Windows equivalents.
Really the epoll nonsense is a perfect microcosm of exactly this kind of argument. For 30 years the BSD folks have been making fundamentally aesthetic arguments into a market that demands practical solutions. And... losing, kinda.
FWIW: I think the btrfs argument is rather stronger on a technical level. The problem there is that people stopped caring about local storage filesystems about 10-15 years ago. Local devices are a solved problem, and all the innovation in storage technology is happening in the cloud today, in front of software layers that are only vaguely understood as "filesystems" in the Unix sense.
What is good enough? Well I think you may forget another metric: developer experience and ease of building a correct product. Say you're building a web framework or server, how long is that going to take do that correctly with epoll compared to the alternatives?
This is still making too much of the subject.
Every major server framework was epoll-capable within a few months of the feature landing. Again, epoll won. It's fine. It's more than fine, it's actually pretty great. It's not hard to use, at all (at least relative to other technologies in the same space). It's just not as subjectively pretty as kqueues.
epoll didn't win? Linux won. Which was one point of my post (that you're nitpicking). Linux wins for reasons which mostly have nothing to do with design philosophy ("worse is better"), or technical superiority.
And... there really are none. For all the yelling, in fact epoll works great. It still works great. Claiming something is "technically superior" to a product that clearly works great in the market is a red flag that you're probably not arguing about technology.
[1] Which are MANY! The whole cloud runs on epoll!
I get it -- you don't like the way I phrased my point. More power to you. But you keep shadowboxing a straw man.
My point was: It doesn't matter if kqueue is clearly superior technically or aesthetically or otherwise, Linux (not epoll) wins for reasons that have nothing to do with that.
In order to actually make your point re: aesthetics, you have to make a much stronger case, which is that epoll actually is at least the technical equal of kqueue, not merely your feeling that apps would have naturally migrated, etc. Instead of -- people chose Linux (again not epoll) because of ... inertia, herd mentality, knowledge base, app availability, etc.
Good luck.
It is, though. Period, full stop. There are no event handling problems solvable with kqueue that cannot be implemented in epoll with code of equal or higher performance and equivalent complexity. There's not one you can point to in practice. Not one. So... doesn't the burden of proof go the other way?
Again, I repeat: you're still trying to have an aesthetic argument (in this form: that Linux won for reasons it "doesn't deserve" or something), but you're using the language of unambiguous technical determinism. And, as BSD has discovered over three decades of this nonsense, that doesn't get you anything but an echo chamber.
> It is, though. Period, full stop.
Yeah I didn't ask for you not to explain yourself.
> you're still trying to have an aesthetic argument (in this form: that Linux won for reasons it "doesn't deserve" or something)
No I am not. I don't care either way whether Linux deserved it or not. I am only saying, at the time it mattered, technical merit wasn't the reason Linux beat all the other Unixes, because obviously it wasn't. This truth is at least interesting to consider. Now, reread my initial comment, and ask whether your nitpicking matters one iota?
Just because you think my affection for kqueue is an aesthetic rather than technical choice (because broken semantics aren't technical, okay whatever) doesn't matter to the point of the comment at all.
You bike shedded my comment. I agreed with your nitpicky point, but said there may be other concerns, and then its 5 comments about how I'm still wrong about something-I-know-no-what? I guess my aesthetic sense? JFC. You've never made an affirmative argument! It's all sniping from the sidelines.
Apples and oranges. No one is required to use btrfs, it is one of many options for filesystems. In my opinion, btrfs is dangerously close to a failed filesystem design for a variety of reasons, but no one needs to use it. That is a good thing - some designs succeed and some not so much, and the successful ones survive and prosper, no need to change operating systems or anything like that.
I always think there were two reasons, but one of them didn't matter. The first reason, that didn't matter, is that Linux was free. That didn't matter because BSD was also free. The second reason, and the main reason, is that it had the force of popularity, or verve, behind it by a fanatical group known colloquially as the Penquinistas. By and large I believe they were young developers that often crashed their laptops, and they liked Linux because it booted faster. I honestly believe Linux taking over the datacenter in 2012ish was entirely arbitrary. Booting faster is fundamentally a silly metric in the datacenter. But the takeaway is the change to Linux was driven by developers, not systems administrators, who for the most part were caught with their pants down and complained that Linux wasn't ready (to success in 2006 with IBM, which rolled back their global Linux deployment).
Wholeheartedly agree with this, maybe not all your particulars, but yeah agree.
"Ultimately, the legal drama did not undercut programmers’ ability to use or redistribute BSD. However, it did stunt adoption of the operating system by creating doubts about BSD’s legal future. As a result, it arguably forged an opening that allowed Linux to gain ground despite being developed primarily by an undergraduate in his Helsinki apartment, rather than a team of professional computer scientists at a major American university."
I've always heard that this lawsuit was significant, ruining the momentum that BSD had at the time, momentum that ended up shifting to linux.
[0] https://www.channelfutures.com/open-source/open-source-histo...
Linux had a heyday with this that matched the growing computer and technology market of the time. The state of the art just happened to be moving fast enough to justify this approach.
Submitters: "Please submit the original source. If a post reports on something found on another site, submit the latter." - https://news.ycombinator.com/newsguidelines.html
It's fine to post archive links in the comments! but not at the top level, unless you've searched and there's really no alternative.
The fact that block journaling happened to paper over a design flaw in PC hardware, was a complete luckball.
When your RCE program has "accelerated graphics", all bets are off.
If you deal with many small files on Windows, you will observe much better performances in WSL2/ext4 than windows with NTFS. Even though the ext4 filesystem is stored as a file inside a NTFS partition.
If you use NodeJS for example, it’s a very obvious speed difference.
Thanks for the link to the book!
https://github.com/microsoft/WSL/issues/873#issuecomment-425...
(I remember Raymond Chen writing there was a special metadata caching layer in the NT FAT driver because otherwise it would be unbearably slow. Linux has a general-purpose dentry cache playing a similar role—does modern Windows have anything similar for NTFS?)
On win Nt it will happilly make your system unbootable after a power failure.
I don't use them. Theye can give you a boost on slower media, but a power cut can be fatal after untarring/cp -r/git cloning.
Maybe you should have read the OpenBSD manpages.