News for hackers. Stuff that matters.
Re:Your CPU may have slowed down on Wednesday by gumby on Tuesday June 22, 2021 @09:26AM (#27591294)
There’s a lot of truth to the joke lurking in this comment. Apart from the covert channel issues, the “market” has spoken: speed of development (and simplification of development) has been preferred to raw performance. I definitely consider that a good thing, even when I look upon a lot of code with horror).

40 years ago writing code was a lot harder; improving that has allowed a lot more interesting things to be built (both bc people can work faster and at higher levels of abstraction and because development is more democratic, leading to a wider pool of people writing things). The cost has been high though; few people think about the hardware and even the term “bare iron” is used unironically to refer to a machine running a multi-tasking OS!

But I think this will swing back the other way. Not by removing the abstraction but by “melting” some of the abstraction implementation layers. Hard work on improving interpreters and compilers has always been one of the ways, but assembly-optimized hotspots and tighter integration in some of the stack elements will be increasingly worth doing because fixing that speeds up all the developers working at higher levels.

The downside is that you won’t be able to, say, easily customize that version of React you’re deploying. But nowadays you really want to stay away from that anyway, in 99.99% of cases.

Re:Your CPU may have slowed down on Wednesday by zelon88 on Tuesday June 22, 2021 @09:31AM (#27591373)
> by “melting” some of the abstraction implementation layers.

So bake those supply chain vulnerabilities right in there, nice and deep.

Re:Your CPU may have slowed down on Wednesday by gumby on Tuesday June 22, 2021 @09:54AM (#27591632)
Likely the opposite. A reduction of optionality reduces the opportunities for dependency injections.

When you load 50 (or for the tree, 500) independently developed modules the probability of failure (or vulnerability) is typically the sum, not product, of the failure probability of each component. The same reason why not everything is implemented as a fleet of microservices.

Few worry that the TCP implementation in your OS is a monolith, and one that is tightly integrated with the IP code. This will make increasing sense further up the stack, for good or ill.

There are trade offs both ways.

Re:Your CPU may have slowed down on Wednesday by bryondowd on Tuesday June 22, 2021 @03:32PM (#27596101)
Just couldn't resist nerding out about probabilities. Summing failure rates would potentially get you above 100% chance of failure. What you'd really want is the product of success rates. So, if you have a 1% failure rate on a module, and you have 50 modules, that'd be 0.99^50, which brings you to about 60% success rate, or 40% failure rate overall. For 500 modules that drops to less than 1% success rate.

But yeah, agree that the odds of failure are probably lower pulling in a handful of monoliths that are well exercised than hundreds of miscellanea of varying robustness.

Re:Your CPU may have slowed down on Wednesday by menzoic on Tuesday June 22, 2021 @10:32AM (#27592118)
why is a multi-tasking OS inconsistent with "bare iron"?
Re:Your CPU may have slowed down on Wednesday by bdamm on Tuesday June 22, 2021 @10:51AM (#27592388)
Because in an OS like Linux or Windows, the kernel is sharing out access to the machine by managing the hardware's lowest levels of controls, which applications do not have access to.

That's not even including the fact that processors are actually processor simulators these days.

Thus, "bare metal" is actually "resource division among managed processes on a simulated processor" which sure sounds a lot like a VM to me. Modern OSs are in fact a form of virtual machine, and we found it useful to have yet another.

Arguably docker type of simulation introduces yet another level so a react app in a docker shell in a VM cluster is really a interpreted application on a simulated operating system, on a resource sharing virtual machine, on a virtualized hardware environment, on a multitasking virtual machine, running on a simulated processor that's implemented on a _real processor_.

Re:Your CPU may have slowed down on Wednesday by gumby on Tuesday June 22, 2021 @02:14PM (#27595117)
The OS itself runs on the "bare iron" -- hardware without any software running on it. An OS initializes and manages the hardware and doesn't call on something else to do so.

If you write a program that is launched by an OS you are by definition not manipulating the hardware directly. Those POSIX calls go somewhere.

I write such code from time to time: a boot loader, a small OS, or apps that run with no OS at all.