Hacker News new | ask | show | jobs
by Sirened 1276 days ago
A favorite related to talk is Roscoe's keynote titled "It's Time for Operating Systems to Rediscover Hardware" [1] in which he discusses some of the outcomes/consequences of kernels (like Linux) largely sticking their heads in the sand on the issue of these massively heterogeneous SoCs.

[1] https://www.youtube.com/watch?v=36myc8wQhLo

1 comments

Did the talk offer any solutions to this? Its not like any of the secondary processors he could be talking about have any kind of open source support or even public specifications of their programmability or ISAs or similar.
One of the key points he makes is that this is now an entrenched problem. SoC designers looked to Linux and asked "hey, can you drive the power management stuff?" and got no real help and so instead just built it out of the purview of the AP clusters altogether. Hardware is essentially implementing an abstract interface that is convenient for Linux to use and hiding everything else that's too difficult to add.

The solution, and one that he specifically calls out, is that operating systems people need to work with hardware people to build better hardware and software together to build new computers. We got into this situation because everyone was just solving problems with the tools they readily had available to them. This is obviously easier said than done, but it does make now a very interesting time to work at one of those handful of large companies which produces their own custom SoCs and operating systems (I believe it's Apple, Google, and Microsoft) since you really have to take both operating systems and hardware forward simultaneously to solve the underlying issue.

As I understand, this is the promise of Oxide Computer company. While they're not making their own SoCs, they are attempting to design the hardware and software together. Co-founder Bryan Cantrill has gone on rants about the number of extra layers of computers in your servers.
What he says in the end is - you can just ask for the specs and often they give it to you.

What I understand - currently there is not even a model of an "operating system" as such that would even consider those secondary processors.

This is a big security issue, because the operating system security model relies on assumptions that can be (and are) broken by these devices in ways that the OS can't control.

The appropriate model would be exactly the one described in the original article above - explicitly treat the computer as a network of devices, and have the OS on the main CPU acknowledge that it is effectively sending a message to e.g. RAM over a shared network that also contains multiple other devices, potentially untrusted.

Linux already knows what firmware is and calls interfaces provided by firmware, so this isn't exactly a stretch for an OS model. The major issue is that all that firmware is proprietary and NDAs and patents block any OS or open source code from taking over the role of the proprietary firmware.
This problem isn't new.. I remember Creative Sound cards hogging the PCI bus longer than their allocated time slice, a sure way to destabilise the entire computer. IMHO there's no solution, the only thing you can do is to select carefully the HW providers you use and do lots of tests..
Well, there's MVS360 from awhile ago.
I think his main solution was for OS researchers to design their own hardware.