this post was submitted on 20 Aug 2023
147 points (93.0% liked)

Linux

48008 readers
816 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

I've seen people talking about it and experienced it myself with a server, but why does Linux run so well on ARM (especially compared to Windows)?

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 67 points 1 year ago (14 children)

I mean… On Linux you’re going to be running a bunch of open source applications that have been compiled for ARM specifically. A huge problem with Windows on ARM is going to be running legacy x86 / x86_64 applications. You’re probably not contending with this problem at all on Linux, and I suspect if you were you would be similarly unimpressed (you can get Linux to transparently execute executables for different platforms using binfmt_misc and qemu but it’s slooooooow).

Honestly the better question might be why the Mac transition to Apple silicon has been so smooth. Part of this is that Apple cares a lot less about keeping legacy software working and companies will make native versions of their software ASAP. But Apple also has a good translation layer with Rosetta for this, and has custom silicon (which Microsoft does not) and I would not be surprised if part of this custom silicon involves extended instructions which make running x86 applications more feasible, but I don’t know the details and this is just speculation on my part.

[–] [email protected] 17 points 1 year ago (2 children)

Apple designed the silicon to have an "x86 mode" for the memory model ordering, as well as an undocumented mode that makes certain arm instructions set flags similarly to x86. There's a good write up of the reasons here: https://dougallj.wordpress.com/2022/11/09/why-is-rosetta-2-fast/

[–] [email protected] 13 points 1 year ago

Apple hit a sweet spot with this. x86_64 applications run at acceptable speed (making the transition easy for people who buy the hardware) while not being SO good that there's zero reason for developers to start porting their software.

[–] [email protected] 11 points 1 year ago (1 children)

Small correction: the flag setting modes aren't undocumented. They're standardized extensions. ARMv8.4 added FEAT_FlagM, and ARMv8.5 added FEAT_FlagM2.

https://developer.arm.com/downloads/-/exploration-tools/feature-names-for-a-profile

IIRC, the only nonstandard ARM extension used by Rosetta 2 in Apple's processors is TSO, and that's also implemented by other manufacturers. It's also not a hard requirement to run amd64 under ARM. You can emulate it very slowly or restrict the application to a single core.

Apologies for the tangent, but I needed to make sure nobody could defend Microsoft's prior failings by saying "but Apple has secret hardware sauce".

[–] [email protected] 3 points 1 year ago

So while not technically "secret sauce," it's certainly "special sauce." Good point.

load more comments (11 replies)