Post 9gSKRlg77ANfAzKOC8 by mdhughes@cybre.space
(DIR) More posts by mdhughes@cybre.space
(DIR) Post #9gSKRlQW39u6Oc1vsm by natecull@mastodon.social
2019-03-05T09:00:00Z
0 likes, 0 repeats
Perhaps part of the reason I feel very grumpy-old-man about OS and language architecture since the 1980s is that I expect that an OS (or language kernel's) one job is to *guarantee essential invariants* of a system. ie, to enforce things like: * no application, however much RAM or CPU time it tries to consume, can make the system unusable for other applications* no application can access RAM it doesn't ownThese two seem pretty basic 1960s tech! Yet somehow we seem to not have them in 2018.
(DIR) Post #9gSKRlg77ANfAzKOC8 by mdhughes@cybre.space
2019-03-05T09:01:45Z
0 likes, 0 repeats
@natecull Those didn't work in the '60s either, at least judging by CMS which I routinely hogged all CPU and RAM on until we were kicked off to go use HPUX, which I routinely hogged all CPU and RAM on.
(DIR) Post #9gSKlG04bQ7QihxO1A by natecull@mastodon.social
2019-03-05T09:05:15Z
0 likes, 0 repeats
@mdhughes And that's maybe the problem: we're still pretty much using the 1960s language/OS kernels where the whole thing ran on a sort of gentleman's agreement and the Unix command to set CPU priority levels is literally called 'nice' because, it wasn't a requirement to not bring an entire timesharing system to its knees.
(DIR) Post #9gSKr6HzcXXyL77oCu by natecull@mastodon.social
2019-03-05T09:03:21Z
0 likes, 0 repeats
And I get constantly shocked that everyone else who programs a computer ISN'T constantly shocked that we've lost these invariants - or even the ability to dream of ever getting them back.CAN we ever get a computer system where we can have these fairly basic requirements again? Is it sensible to ask for them?If we can't have them - after decades of saying we can and must - shouldn't we maybe rethink everything we think we know about how we build software?
(DIR) Post #9gSKr6XagY1X7UQGWG by mdhughes@cybre.space
2019-03-05T09:06:19Z
0 likes, 0 repeats
@natecull The right model to me is 1 program, 1 CPU, networked loosely. While I do a lot on my Mac, which has those problems (though far less than you seem to, since I use Safari, not Firefox; beachballs are rare and never more than 1-2 seconds), my iPad is a dedicated video screen, iPhone is a dedicated comm device and game console most of the time.
(DIR) Post #9gT6LdvFpiVJBUYSiu by HerraBRE@mastodon.xyz
2019-03-05T09:10:42Z
0 likes, 0 repeats
@natecull Regarding things like Spectre and Rowhammer... I don't think these justify rethinking how we compute.Although in theory there maybe isn't, in practice there often is a real difference between adversarial, hostile software and malfunctioning, buggy software.Dealing with those two things at different layers allows us to optimize things and unlock performance which would otherwise be unattainable.I don't think that's a bad trade-off to make.
(DIR) Post #9gT6LePO1gbggweWgq by natecull@mastodon.social
2019-03-05T09:12:52Z
0 likes, 0 repeats
@HerraBRE It feels like the quest for performance and the quest for reliability are at odds, yeah.
(DIR) Post #9gT6LejEpsUDgVwNdI by HerraBRE@mastodon.xyz
2019-03-05T09:14:48Z
0 likes, 1 repeats
@natecull They always are.Redundancy, fall-backs, compartmentalization, backups... these are all things often optimized away if you're maximizing performance per cost unit.Until you start thinking big enough and considering the cost of failure... and putting a $ sign on that effectively means accepting as much failure as you can justify.
(DIR) Post #9gTEz8z74s2mRuhqgy by ffff@letsalllovela.in
2019-03-05T19:35:16.974269Z
0 likes, 0 repeats
@natecull What did you use in the 1980s? If you look at the operating systems on micro computers people had... none of them had what you are talking about!Commodore/Z80/Apple/etc Basic: no multi tasking or memory protectionMS-DOS: no multi tasking or memory protectionAmigaOS: no memory protectionMacOS: no preemptive multitasking, no memory protectionWindows: no preemptive multitasking, no memory protectionMMU's were not even in most of the hardware! So memory protection, is just, not possible.... how can you say that this was standard? Also... we have these, in our, new operating systems, mostly.... you can try and crash it but it's hard now! This is a strange statement... we have virtual memory and preemptive multitasking...
(DIR) Post #9gTV8xi3S3r9dtQm36 by natecull@mastodon.social
2019-03-05T21:21:32Z
0 likes, 0 repeats
@ffff Yes, 1980s microcomputer CPUs didn't have memory protection. But they managed to do preemptive multitasking anyway.With vastly larger hardware resources, we somehow have normalised that it's okay to have preemptive multitasking that doesn't actually guarantee preemption.I think I'd be less grumpy if we admitted that actually all we have is just a very complicated form of cooperative multitasking?
(DIR) Post #9gTV8xvAfILeIZZFUe by natecull@mastodon.social
2019-03-05T21:23:48Z
0 likes, 0 repeats
@ffff I mean, you don't actually even NEED hardware memory manager support to guarantee a whole bunch of realtime and security invariants!You just need the discipline to say 'no applications can run machine code, everything has to be bytecode'.At least that's what I thought, until the utter security disaster that was the Java web plugin. I think the consensus was that that wasn't the bytecode's fault, though, but people keeping trying to engineer around it for performance?
(DIR) Post #9gTV8y7vtqYYw9XRNw by ffff@letsalllovela.in
2019-03-05T22:36:19.388091Z
0 likes, 0 repeats
@natecull It's just a commentary about how, it doesn't make sense to say that the 80s had that. Preemptive multitasking was figured out in the 90s and standard only by 2000 when Apple finally finished Mac OS X. Memory protection wasn't standard either for a while... I agree about making better software. But I think it's a strange claim saying that these things were standard in the 80s. Java web plugin is an idea lots of people wanted, but a bad implementation. The same thing was tried with Flash, JavaScript, Silverlight and now Web Assembly. So I wouldn't say that the idea of doing it is wrong. If you only allowed bytecode that actually would allow you to virtualize memory so its fair to say that adding that in would fix the problem. (but at what cost?) I'm only commenting on how operating systems in the 80s generally didn't have any memory protection and really probably couldn't afford it because of the speed penalty of bytecode like that. I don't know what you mean specifically about the preemptive multitasking guarantees. Are you saying Windows NT and Linux, other modern operating systems, don't guarantee preemption? I'm interested in knowing more about that.
(DIR) Post #9gTXD8lMUtTCzT681Y by natecull@mastodon.social
2019-03-05T22:49:39Z
0 likes, 0 repeats
@ffff >Preemptive multitasking was figured out in the 90s Amiga is a counterexample to that. *Windows* only figured out preemptive multitasking in the 90s. But Windows was very, very late.The UCSD p-system was a bytecode operating system, and was released in 1978. >Are you saying Windows NT and Linux, other modern operating systems, don't guarantee preemption?Yes! Everyday experience for me on Linux:* Firefox gets slow* takes minutes just to switch to terminal to kill Firefox
(DIR) Post #9gTXD8whoiXnYePBho by ffff@letsalllovela.in
2019-03-05T22:59:30.163727Z
0 likes, 0 repeats
@natecull Who did it first is different from "when did it become the standard", which is what we were talking about. Bytecode only operating system's existing doesn't mean that a bytecode only operating system was the right choice on something like a 286. If preemption was really broken, you wouldn't be able to kill Firefox at all. That's just poor scheduling, it's tanking the system sure but it's not breaking anything. That's very different from your claim about not having preemption guarantees. You're living in the world you asked for already... or else Firefox could never forfeit its timeslice and take the whole system down. The OS is doing everything you're asking for. You're just running bad software on it, and then blaming the OS, which is working fine and holding up.You could ask the OS to starve programs that don't behave like that, but it's not that simple... things could be better, though, sure
(DIR) Post #9gTXgVynG1DjOSO4HI by natecull@mastodon.social
2019-03-05T22:52:31Z
0 likes, 0 repeats
@ffff So the basic guarantee of a timesharing operating system has been violated:* a program is consuming resources and the system administrator is not able to access the control system to shut down that programWork on timesharing systems began in the 1960s. 'Preventing one program from smashing the entire system' was basically *the* requirement.We went to 'cloud' and 'hypervisors' basically because OSes can't guarantee stability at the process level, so we do it at the VM level. But why?
(DIR) Post #9gTXgWFoEkpcFELeng by ffff@letsalllovela.in
2019-03-05T23:04:49.203482Z
1 likes, 0 repeats
@natecull Windows has a partial solution to this- CTRL+ALT+DELETE is bound to bring up a settings menu that lets you bring up the task manager and shut the program down. But it's not as good as just bringing up a better program designed to help you kill bad programs faster, like suspending the system and running a task manager equivalent in fullscreen. This is a solution because CAD is a direct BIOS call so it can't be screwed by a clogged kernel. I don't think Linux does this but it's something that it could do.
(DIR) Post #9gTwnvPLbz858gRCuu by natecull@mastodon.social
2019-03-06T01:14:54Z
0 likes, 0 repeats
@ffff Um.You're arguing here that 'an application program being able to starve other programs, including the operating system, of resources means that the OS is doing its job of managing resources correctly'.That argument doesn't make sense to me.From my perspective, it's simple: The OS has a job to do, and it's not doing it.
(DIR) Post #9gTwnviUSoRS63OUkq by ffff@letsalllovela.in
2019-03-06T03:46:16.634403Z
0 likes, 0 repeats
@natecull But it is! You said that preemption garuntees were not being met. Clearly they ARE if you could still get to your terminal and close Firefox. We can talk about how well that situation is being handled.... but that's a different discussion than what your claim implied. If other programs are running then FF is being preempted correctly. Resource allocation and starving within those boundaries is different! Firefox is not exceeding it's timeslice! The kernel is giving it that much of a timeslice and it is using it! That's not true... it's not possible! The kernel decided that Firefox gets to have those time slices- not the other way around! The operating system decided that this is how it wants to allocate resources and that was how resources were allocated. If you think it can do a better job at deciding what resources to allocate, that's very different from saying it's not doing it's job enforcing the limits it sets!
(DIR) Post #9gU1zKmO7WpmmfTTtI by natecull@mastodon.social
2019-03-06T04:16:15Z
0 likes, 0 repeats
@ffff >You said that preemption garuntees were not being met. Clearly they ARE if you could still get to your terminal and close Firefox.It took a minute to do that, today, and I've seen situations (on both Linux and Windows) where it becomes literally *impossible* to shut down a rogue web browser process.To a user, details don''t matter. The experience is: an application has crashed, locking up an entire multitasking OS. If you say this is ok and by design, I say the design needs work.
(DIR) Post #9gU1zL1dCr1lXwbeeO by ffff@letsalllovela.in
2019-03-06T04:44:21.682420Z
0 likes, 0 repeats
@natecull It still followed the preemption guarantees. You just weren't patient enough...What the user thinks is off topic. You're throwing around technical claims that just aren't true! These aren't vague words to talk about how you feel about something vaguely related to them.... they mean something really specific! And it's not what you're talking about... You can talk about your experience as a user. But that's very different from the technical claims you were making! It's a different conversation...
(DIR) Post #9gU2Vx4jGywUp5bgCe by natecull@mastodon.social
2019-03-06T04:46:21Z
0 likes, 0 repeats
@ffff >You just weren't patient enough...So it's the user's problem that a multitasking OS cannot actually multitask?Not seeing how this is a coherent argument, sorry.
(DIR) Post #9gU2VxgezxHeijLyKG by ffff@letsalllovela.in
2019-03-06T04:50:15.566091Z
0 likes, 0 repeats
@natecull But it IS multitasking.... you're talking past me.... please,, consider the rest of my post, you have an interrupt timer, on your PC, it brings you to ring zero, and the scheduler runs... You can talk about what decision the scheduler makes but that's very different from saying that the preemption guarantee is gone! please... re read some of my posts ok? I'm having to repeat myself.... I dont know if you can , understand me or not...
(DIR) Post #9gU2y8KP1qW5pbNMg4 by natecull@mastodon.social
2019-03-06T04:50:52Z
0 likes, 0 repeats
@ffff What I'm trying to say is:*It doesn't matter* which component in a modern system is responsible for the system, as a whole, not operating in a way that meets standards defined for GUI systems over 50 years ago.https://www.nngroup.com/articles/response-times-3-important-limits/It matters that the system, as a whole, does not meet this standard.I'm talking about a minute to process mouse clicks in a system application that's not a faulting application.That's just wrong. It should not happen. I don't care why. It needs fixed.
(DIR) Post #9gU2y8bQ0a7ygNKxCS by ffff@letsalllovela.in
2019-03-06T04:55:21.631785Z
0 likes, 0 repeats
@natecull next time.... consider starting the conversation talking about that... instead of throwing around technical claims that just aren't true? consider... talking about that... instead of saying "preemption guarantees are not being followed!" You don't need to make technical claims that aren't true to make your point! You don't need to pretend... that the conversation is about what you want it to be about... instead of what you said it was about...
(DIR) Post #9gU38872gWDs3htRvk by natecull@mastodon.social
2019-03-06T04:55:30Z
0 likes, 0 repeats
@ffff Like, we've gotten to a situation - which I had in Windows Phone - where it was necessary *to do a complete battery pull reset* to regain control over my device, because the web browser had done something bad after seeing a page it didn't like.I don't care who thinks this is acceptable. I think this is not acceptable. The industrial processes which have created a situation where this is deemed acceptable, are not acceptable.
(DIR) Post #9gU388LDpnZ6lgWm24 by ffff@letsalllovela.in
2019-03-06T04:57:09.520415Z
0 likes, 0 repeats
@natecull this is bad but... it has very little to do with what you started the conversation about. you're changing the topic... to what you want it to be about.. not what you said it was about!
(DIR) Post #9gU3PcsLYu9iOKMXA0 by natecull@mastodon.social
2019-03-06T04:56:56Z
0 likes, 0 repeats
@ffff If you think this situation is 'a multitasking OS operating as intended', then I'm sorry but I think that is a very narrow view of what multitasking is.
(DIR) Post #9gU3Pd3gsjEIxVfaqG by ffff@letsalllovela.in
2019-03-06T05:00:18.688873Z
0 likes, 0 repeats
@natecull You said that time slice rules are not being followed! You said that, preemptive multitasking guarantees are not being held! You're trying to change the topic into a general conversation about latency when that has nothing to do with the claims you made! Please... I only said that time slice rules are being followed and preemption is being followed! I said... multiple times... how the scheduler decides what time slices to give... is a different conversation! Not this one...
(DIR) Post #9gU3f53p3KYu9L6E3E by ffff@letsalllovela.in
2019-03-06T05:03:06.997188Z
0 likes, 0 repeats
@natecullI only said... that preemption and time slice rules are working as the kernel decided. Because they are! You are, pretending that I am talking about something completely different... you are having a conversation with yourself!