Hacker News new | past | comments | ask | show | jobs | submit login

Well.... there are a few really nasty issues that come to mind, usually surrounding filesystems. Not too long ago, if you were using a certain version of systemd on certain laptops and did a rm -rf / (which as a new user is not hard to mistakenly do), not only would you lose your files, your hardware would become unusable as well.

(Systemd mounted an EFI partition read/write, and nuking / also nuked critical firmware information)

Some cursory googling reveals some other issues, but everything I can find is either very old (ex. https://lkml.org/lkml/2012/10/23/690) or reference utilities that an average user won't have (ex. https://www.spinics.net/lists/linux-bcache/msg05290.html)

That said, given that Microsoft charges money for this, goes out of their way to render themselves not liable when their code breaks your shit, and doesn't test a use case that's not exactly uncommon, it's still unforgivable and not comparable to Linux.




Linux usually breaks when the hardware lies about having written something to disk or flushed the disk (both are more common on consumer hardware than you think, especially cheap SSDs), though I don't think any FS would fare well if the hardware starts lying to it.

There is also this[0] short blog post on FS reliability on Linux where they analyze the source code for cases where error codes are dropped (code like "if(err) { /* ignore */ }" counting as handled error here) and there was some significant amount of problems across all FS in the kernel.

Though, I don't think the other OS' out there are much better, FS are hard. Getting them right is harder. Getting them right while being compatible with existing implementations is very harder.

0: https://danluu.com/filesystem-errors/


Fantastic link, thanks. Though I'd just point out that ntfs and apfs are as bad, if not worse, and that we're all in the same boat when it comes to filesystems.


Yeah, I think that didn't come quite across in my last paragraph.

It's all bad. On Linux we can see the bad.


Oh god, the EFI bug. I thought it was utterly absurd that some people on that mailing list defended that behavior and it really put me off Linux culture and the Linux community.


What should put you off is people two and a half years later still wrongly ascribing this to systemd. And this even though, as noted at https://news.ycombinator.com/item?id=11011399 , OpenRC had been doing the very same thing.

It wasn't a systemd thing. The people who relate the tale as if it were a systemd thing or something that the systemd people did are ill-informed. It was entirely a kernel thing. This was even stated outright at the time by the creator of that particular kernel mechanism.

To learn the real story, go and read https://news.ycombinator.com/item?id=11152880 where you will find Matthew Garrett xyrself participating in the discussion.


I actually remember reading exactly this discussion. So I was correct in my original assertion that Linux (as opposed to systemd) culture is batshit insane because of all the Linux/Unix people defending efivars/Lennart's decision to 'not workaround broken efi implemetations' that allowed rm rf / to break hardware.


That's more a "freedesktop.com/systemd" culture and community than anything, thankfully. Their philosophy seems to be that if the user has a problem with something, the user is wrong.


Even if that may be the case, systemd has now afflicted every relevant distro. That means their community and their philosophy affects everybody else. Not great.


Linux also destroy intel e1000 nics for a while. And up until ext3 it lied about synchronous writes. Linux has been far from safe for storing your data.


Bad drivers can also destroy CRT monitors, hard drivers, Flash memory, CD-ROM's in CD drives, overheat graphic card (I had this bug with official NVidia drivers on decade old notebook), CPU (I had it too with AMD CPU), or motherboard, battery can catch fire if overcharged, and so on.


If you are not experienced, you should not use root, because it's dangerous. Your experience confirms that. When you need to use root, plan for disaster.

You opened command terminal. You entered user mode using sudo. You entered command manually instead of using a user-friendly file manager, e.g. Midnight Commander. You disabled user-friendly interactive mode for rm. Literally, you said "system, delete everything and don't ask any questions". Yeah, sometimes sheet happens. I did that too once on production server with about a hundred of web-servers because I hit enter in the middle of the command. But I never blame system for my errors. Now I write tested scripts to make changes, use RPM to deliver updates, and use file manager to manage files manually. Learn from your mistakes. It's price for performance. For example, I needed to erase my partition recently. Using Linux, I erased it in less that minute.


While I understand your mindset of, "If you are not experienced, you should not use root, because it's dangerous. Your experience confirms that. When you need to use root, plan for disaster." for a network-based terminal at a workplace or public facility, I disagree for a home user's computer. When we error-proof a computer against an average user, we lose the ability to silently teach that user what NOT to do. We lose the ability to empower that user to control their own machine. If you type in "format ." or something like it, then yes, you should expect a great deal of trouble; especially if you didn't have good backups. That's a big part of my problem with Windows 10, Linux, OSX, Chrome, Firefox 52+, and basically most "modern" software. By demanding that the OS, the browser and even videogames must be able to be updated at random by the whim of some "upstream" group, and the user doesn't actually have the authority to decide what is or is not on their machine, or what data is or is not being sent to wherever, we lower the standard of the average user.

I'm not talking about accessibility, mind you. I'm talking about the silent education that takes the starting computer user and makes them into someone who is confident around computers in general. Someone who understands the appropriate niche for each type of computer (i.e. in roughly ascending order of generality; mobile cellular device, tablet/iPad, Chromebook/netbook, laptop, desktop, server), and recognizes both the minimum and maximum range they need. For example, I certainly can read ebooks on my laptop using Calibre. But the fact that iBooks can benefit from the built-in screen reader makes things so much smoother than trying to find an audiobook; and I can read along with it or turn off the audio if I want. I can use a Chromebook/netbook to connect to HDMI displays and make presentations smoothly, but if I want to use a Smartboard or a projector, I probably need a laptop for VGA support - and the fact that my current laser presenter uses PgUp & PgDn to switch slides (Chromebooks don't have those keys and Google Docs doesn't seem to support them from the Chromebook). The list goes on.

As you said, learn from your mistakes, it's the price for performance. But what many groups are trying to do is take away the capacity to make those mistakes.


Your Android phone and Chromebook runs Linux too, so you basically says that Linux is bad, but Linux is good.


rm -rf / is a completely software operation. It should completely wipe your system. It should not render your hardware inoperable. I don't expect or want it to wipe my BIOS or GPU firmware or NIC firmware or any other hardware component that happens to be attached at that time that has an EEPROM or otherwise reprogrammable microcontroller. That's insane.


"rm -rf / is a completely software operation. It should completely wipe your system."

To me saying it should completely wipe your system implies that people sometimes type it on purpose fully expecting it to do what it does. Is that actually true? If not, I think there's something askew with your worldview.


What do you expect it to do other than wiping your entire filesystem?




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: