3 ms·
> The problem is that they fail to recognize that there are potentially cases where even though it is a bad thing, it is still the least-bad option You are way
by wyldfire 8y ago
> The problem is that they fail to recognize that there are potentially cases where even though it is a bad thing, it is still the least-bad option
You are way oversimplifying the problem. Linux designers want a nice, stable OS with good performance. Introducing a new mode where signals can asynchronously interrupt a task means that you have to account for your kernel code to not only be safe when CPU interrupts occur, but now when user space signal handlers execute too. To be safe means that you'd need to sprinkle fences/barriers over lots of code. This flushes pipelines and unnecessarily forfeits performance. Performance aside, it's really hard to imagine the problems caused by asynchronous interrupts until they actually occur. As a designer, it's much simpler to just bar them for the critical region. Now, it's totally reasonable for us to discuss 'hey can we minimize these critical regions somehow, to make these problems less likely?'
If you did a `kill -9 1234` and then your computer suddenly hit an NMI, whose bug would that be? The kernel's! You'd say "hey, kernel, wtf, I was just trying to reap this process and then my computer rebooted." And you'd be right.
There's lots of design decisions made early on in linux that are likely baked in and hard to change without impacting user space.
For you to declare it "the least-bad option" you have to be able to evaluate it from the designer's perspective. From the user's perspective, I agree that it's clearly not ideal. But there's much more at stake here.
> idea among developers out there that the computer belongs to them and users are beneath them
You're introducing some motives that just aren't there. Linux is all about enabling people. Perhaps we can agree that the death of general purpose computing is nigh [1], but it's not linux's fault.
>> You're free to design your own operating system without this limitation
> Such an OSS response to criticism. This attitude is awful
I don't agree. But I will express regret that I didn't say instead "you're free to use another OS without this limitation" -- that's a more realistic option for a user.
For a user to casually say "you made the wrong design decision here" without acknowledging the existence of the tradeoff is unfair.
[1] https://boingboing.net/2012/08/23/civilwar.html https://boingboing.net/2012/08/23/civilwar.html
- AnIdiotOnTheNet 8y agoWhy does such a feature have to be safe? It's for an edge case where something is misbehaving badly, and your only alternative is a reboot. Why shouldn't the user be able to do this as long as they accept the risk? > Linux is all about enabling people Since we're talking about the kernel, I agree for the most part. Which makes it all the more annoying that "reboot" (and sometimes even that doesn't work and you have to smother the system with a pillow) is the only option in this circumstance. I can overwrite disks and memory at will, destroying who knows what data, but I can't kill a useless hung process because it might be unsafe? Admittedly I am ignorant of the details of the kernel implementation, but I have difficulty believing that there is nothing that can be done.
- ddingus 8y agoSay your kernel panics 10 minutes later, due to an unplanned state caused by ripping the process out of the table. What then? Stuck mount, or unplanned, immediate restart? See the dilemma? This way, you can keep working, save what may be super important, and then restart.
- CRConrad 8y agoIn reply to "AnIdiotOnTheNet"'s: >> idea among developers out there that the computer belongs to them and users are beneath them "wyldfire" wrote: > You're introducing some motives that just aren't there. Linux is all about enabling people. Yeah, that would be nice. But perhaps one would be more inclined to believe it were true, if you hadn't in your paragraph above that written: > For you to declare it "the least-bad option" you have to be able to evaluate it from the designer's perspective. Huh? No, isn't it the designer(s) of the operating system who should evaluate things from the perspective of the actual owner of the computer??? Especially if what they're doing is "all about enabling people"?