15

Linus Torvalds on Why ARM Won't Win the Server Space

 5 years ago
source link: https://www.tuicool.com/articles/hit/VJFnUjI
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Michael S ([email protected]) on February 21, 2019 12:53 am wrote:

>

> Linus is the ultimate unixoid. I paid attention that even

> less devoted unixoids are high on native development.

> For me, as one that drinks and breaths cross-development all his professional

> life, it sounds strange, but this mindset is not rare at all.

I can pretty much guarantee that as long as everybody does cross-development, the platform won't be all that stable.

Or successful.

Some people think that "the cloud" means that the instruction set doesn't matter. Develop at home, deploy in the cloud.

That's bullshit. If you develop on x86, then you're going to want to deploy on x86, because you'll be able to run what you test "at home" (and by "at home" I don't mean literally in your home, but in your work environment).

Which means that you'll happily pay a bit more for x86 cloud hosting, simply because it matches what you can test on your own local setup, and the errors you get will translate better.

This is true even if what you mostly do is something ostensibly cross-platform like just run perl scripts or whatever. Simply because you'll want to have as similar an environment as possible,

Which in turn means that cloud providers will end up making more money from their x86 side, which means that they'll prioritize it, and any ARM offerings will be secondary and probably relegated to the mindless dregs (maybe front-end, maybe just static html, that kind of stuff).

Guys, do you really not understand why x86 took over the server market ?

It wasn't just all price. It was literally this "develop at home" issue. Thousands of small companies ended up having random small internal workloads where it was easy to just get a random whitebox PC and run some silly small thing on it yourself. Then as the workload expanded, it became a "real server". And then once that thing expanded, suddenly it made a whole lot of sense to let somebody else manage the hardware and hosting, and the cloud took over.

Do you really not understand? This isn't rocket science. This isn't some made up story. This is literally what happened, and what killed all the RISC vendors, and made x86 be the undisputed king of the hill of servers, to the point where everybody else is just a rounding error. Something that sounded entirely fictional a couple of decades ago.

Without a development platform, ARM in the server space is never going to make it. Trying to sell a 64-bit "hyperscaling" model is idiotic, when you don't have customers and you don't have workloads because you never sold the small cheap box that got the whole market started in the first place.

The price advantage of ARM will never be there for ARM servers unless you get enough volume to make up for the absolutely huge advantage in server volume that Intel has right now. Being a smaller die with cheaper NRE doesn't matter one whit, when you can't make up for the development costs in volume. Look at every ARM server offering so far: they were not only slower, they were more expensive!

And the power advantage is still largely theoretical and doesn't show very much on a system level anyway, and is also entirely irrelevant if people end up willing to pay more for an x86 box simply because it's what they developed their load on.

Which leaves absolutely no real advantage to ARM.

This is basic economics.

And the only way that changes is if you end up saying "look, you can deploy more cheaply on an ARM box, and here's the development box you can do your work on ".

Actual hardware for developers is hugely important. I seriously claim that this is why the PC took over, and why everything else died.

So you can pooh-pooh it all you want, and say "just cross-build", but as long as you do that, you're going to be a tiny minority, and you don't see the big picture, and you're ignoring actual real history.

And btw, calling this an "unixoid" mindset is just showing what a total disconnect to reality you have, and how stupid your argument is. Unix lost. Yes, it lives on in the shape of Linux, but Unix lost not just to Linux, but to Windows. In fact, arguably it lost to windows first .

Why? Same exact reason, just on the software side. In both cases. Where did you find developers? You found them on Windows and on Linux, because that's what developers had access to. When those workloads grew up to be "real" workloads, they continued to be run on Windows and Linux, they weren't moved over to Unix platforms even if that would have been fairly easy in the Linux case. No, that was just unnecessary and pointless work. Just continue to deploy on the same platform.

Exact same issue on the software side as with the hardware. Cross-development is pointless and stupid when the alternative is to just develop and deploy on the same platform. Yes, you can do it, but you generally would like to avoid it if at all possible.

End result: cross-development is mainly done for platforms that are so weak as to make it pointless to develop on them. Nobody does native development in the embedded space. But whenever the target is powerful enough to support native development, there's a huge pressure to do it that way, because the cross-development model is so relatively painful.

The corollary to the above is that yes, cross-development is also done when the target environment is too expensive to do native development on. That was the case for the big iron and traditional big Unix boxes. But that seriously erodes support for the expensive platform, and makes the cheap development platform much more able and likely to grow up into that space.

It's why x86 won. Do you really think the world has changed radically?

Linus


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK