7 ms·
With Apple Silicon being implemented on ARM architecture as well, we are seeing a major shift to ARM in general. I’d expect major OS makers to accelerate ports
by kweinber 6y ago
With Apple Silicon being implemented on ARM architecture as well, we are seeing a major shift to ARM in general. I’d expect major OS makers to accelerate ports to ARM.... Linux should follow suit..... as hardware makers start tailoring platforms, we don’t want Linux locked out of the house.
Edit: My concern was that Apple or MS would have divergent hardware and other support with firmware variations in their “custom” implementations. Kinda like the hardware driver issues Linux has had for years, but now burned into firmware.
- slezyr 6y agoHave you ever heard about Raspberry Pi?... Linux has been there entire time
- chrisseaton 6y agoLots of software works on ARM on Linux... but it doesn’t always work as well as on Intel. I think there’s quite a lot of work to be done to get various parts of a complete distribution working as well as we’d like for server and desktop usage, outside of the more limited embedded role it’s already widely deployed in.
- icegreentea2 6y agoWhat types of "doesn't work as well" are you thinking about? My understanding of where ARM "doesn't work as well" is something like these areas: * The underlying code is relying on x86 features or is x86 ASM. In that case ya... this is going to be a bit rough - but is a super minority, especially for use cases where you'd want to use ARM * The runtime or compiler hasn't been ported to ARM yet. For compilers, I don't think this is a problem - I think both clang and gcc are completely ready to go for armv7 and arm64. Go is good to go too. Runtimes is a bit more dodgy, but all the major (Java, C#, Python, Ruby, Perl, Javascript/Node) languages and runtimes are just fine. Maybe the only one out is rust, which doesn't have ARM as Tier 1 supported (but should just work) yet. * Hardware support. There may not be good open source drivers for various ARM specific hardware blobs. What else were you thinking of?
- chrisseaton 6y agoJava compilers with missing intrinsics is what surprises me in my case.
- MaxBarraclough 6y agoBy missing intrinsics do you mean you get an error if you try to use the intrinsic, or do you mean the compiler fails to map the intrinsic to the fastest instruction/instruction sequence?
- chrisseaton 6y agoI mean the compiler calls a runtime routine instead of being able to insert specialised code for it.
- aseipp 6y agoThere's a long tail of various issues to sort out and "language runtimes that have all the kinks ironed out" is definitely one of them. But I think that's just always going to be the case for any alternative trying to get up to speed with an incumbent player that has a decades-long head start. And most of it works fine today, anyway. Micro optimizations in HotSpot or whatever isn't what's holding people back from desktop ARM machines. (If any language could make a difference here, I'd actually argue it's JavaScript being optimized because it's vital to web browsing, but luckily that got sorted out years ago thanks to mobile handsets.) Plenty of things work very well and I'd think most people would rate those working as far more important than small compiler tweaks. NVMe, GPU support etc is vastly more important to me than compiler micro-optimizations, for instance, because those actually make day to day developer usage viable. No amount of compiler optimizations will make SD cards fast. And today, you can boot generic Linux images for whatever distro, using UEFI, on high-speed ARM systems, with fully working desktops -- including working FOSS GPU drivers, full web browsers (with working javascript JITs), and high speed storage. So I think it's shaping up pretty nicely.
- xioxox 6y agox86 has much stronger guarantees about memory ordering compared to ARM [1]. Maybe this comes under x86 features, but multithreaded software will not work if assumptions of memory ordering guarantees are made. [1] https://en.wikipedia.org/wiki/Memory_ordering https://en.wikipedia.org/wiki/Memory_ordering
- untog 6y agoIt's selling the Raspberry Pi short to describe it as a "limited embed". You can run a full desktop OS on it (I do) and everything works great.
- chrisseaton 6y agoFor example ARM compilers with fewer optimisations compared to Intel is something I’ve seen in practice.
- jcelerier 6y agowell, Intel employs people to implement those optimisations in GCC, Clang, etc...
- blitmap 6y agoMy naive understanding is ARM devices traditionally use a static, unchanging "device tree" specification to bring up hardware on boot. There's a project for implementing UEFI firmware for the Raspberry Pi - as one ARM device - so that you can take any unmodified (ARM-built) Linux that would boot off of EFI and it will Just Work (tm). I've been using it: https://github.com/pftf/RPi4 https://github.com/pftf/RPi4 https://rpi4-uefi.dev/ https://rpi4-uefi.dev/ Actually what I've been doing is using my wireless router (openwrt) to serve pxe images. So the rpi sits without an SD card. It's powered via Power over Ethernet (PoE), is advertised a pxe server, gets the initial uefi & ipxe binaries, then I can boot from an image off Github or one served locally. ipxe just adds another layer of indirection for expanded fun.
- bl4ckm0r3 6y agohttps://en.wikipedia.org/wiki/Category:ARM_Linux_distributions https://en.wikipedia.org/wiki/Category:ARM_Linux_distributio...
- frant-hartm 6y agoThere are several billions of of devices running ARM and Linux - most Android phones.
- fortran77 6y agoAnd many millions on Rasperry Pis.
- giancarlostoro 6y agoTheres been plenty of ARM support on Linux the issue if I am not mistaken is that ARM isnt a processor its a spec you license and manufacturers go from there so code between processors should be completely icompatible even within the same manufacturer. You see discussions about it on HN plenty of times. Theres plenty of ARM based devices out there though due to the rising popularity of SBCs. Then we have the Pinebook and similar devices.
- timthorn 6y agoThat's true in embedded and mobile, but not the case in the server space. The platform has been standardized so that the same Linux ISO will work on any mainstream Arm server. https://developer.arm.com/architectures/platform-design/server-systems https://developer.arm.com/architectures/platform-design/serv...
- my123 6y agoWindows on Arm machines ship with UEFI and ACPI by design, using the same specs as in Arm server land.* * minus quirks/some deviations from the spec because Qualcomm
- rev_d 6y agoI'm wondering if the solution to this involves shipping more software via something like the AUR (Arch User Repository) rather than in binary packages. It's not necessarily sane to maintain binaries for each and every device flavour, but as long as the code is reasonably portable & each manufacturer keeps their LLVM IR/JVM bytecode backends in order, that might be enough to overcome some of the pain. I've always found Arch distributions to be more usable on ARM systems than Debian distros simply because they user-friendly ways of building & installing from source. Building from intermediate representation might be the right mix of obfuscation, performance, friendliness, and portability for the consumer space.
- giancarlostoro 6y agoI think providing source based installations should be a secondary approach to distros that do provide prebuilt binaries. The benefit to prebuilt binaries is basically you only need to download it, not wait hours and hours for sources to build, plus no need to pull down every developer only dependency.
- gspr 6y agoName one mainstream Linux distro without ARM support!
- djxfade 6y agoHannah Montana Linux?
- nix23 6y agoThats true no ARM support!!
- _-david-_ 6y agoNot sure if it is mainstream but Arch. There is Arch Arm and Manjaro but neither are officially part of Arch.
- gspr 6y agoWow, I had no idea. Strange, no?
- kcb 6y agoName a platform that you can actually install it on.
- gspr 6y agohttps://wiki.debian.org/InstallingDebianOn/ https://wiki.debian.org/InstallingDebianOn/ Take your pick. Almost all the stuff listed under SBCs is ARM.
- foepys 6y agoWindows has been available for ARM since 2012, called Windows RT back then. macOS is actually the last of the popular operating systems to port to ARM, not the first.
- asutekku 6y agoAs usual with Apple's products, Apple is hardly ever the first one to do thing X. What they are is that they are usually the first ones to do the thing X so well that the public will adopt it. And that's what matters in the end, not who was first.
- moooo99 6y agoThe big differenc is, following Apple's announcement, that they want to avoid that the users even realize there is an Arm CPU inside. My dad had a Surface RT a few years ago (I cannot recall how long exactly). But you definitely did realize something was "different" with this thing. I think Apple has a better chance at achieving this broad acceptance than MS has because they have a lot more control over their ecosystem and hardware. People actually seem to use their frameworks for building apps, for App Store as well as direct downloads. Unlike Microsoft who still has not managed to convince developers to move to UWP apps. I actually don't hate using the Mac App store on my machine, but I haven't used the Microsoft Store ever since I first tried it. And for lots of more casual users, they probably actually won't realize that there is a difference between the architectures.
- my123 6y agoApple was the first to ship Arm 64-bit hardware back in 2013. For the Arm macs, they waited until everything was ready, with them being competitive across the whole range. Microsoft instead cornered the laptop/tablet with integrated modem for Windows on Arm (64-bit), which allowed them to ship much earlier.
- mixmastamyk 6y agoThat sounds like a major point, but given the existence of iOS and custom chips, they are not behind on ARM expertise. Rather on the forefront.
- josteink 6y ago> With Apple Silicon being implemented on ARM architecture as well, we are seeing a major shift to ARM in general. Predictable Apple-troll is predictable. Apple did not invent everything. ARM was a well-prepared platform for general purpose computing long before Apple showed interest.
- sbuk 6y agoApple actually worked on the Arm6 architecture along with Acorn in the late 80's/early 90's. In this instance, it's fair to say that they did invent this and argualbly showed interest in the platform before anyone else.
- avandvrnot 6y agoI’m probably missing sufficient context but this quote suggests a more involved route [0] DEC approached Apple wondering if they might be interested in a high-performance ARM, to which the Apple engineers replied "Phhht, yeah. You can’t do it, but, yeah, if you could we'd use it." [0] https://en.m.wikipedia.org/wiki/StrongARM https://en.m.wikipedia.org/wiki/StrongARM
- garblegarble 6y agoI assume they're referring to [0] which notes that ARM Holdings was co-founded by Acorn, Apple and VLSI. I don't think the comment in that StrongARM article is unreasonable given the state of technology at the time - as a bystander it seems like ARM competing with x86 in performance has only really become possible in the last few years. [0] https://en.wikipedia.org/wiki/Arm_Holdings#Founding https://en.wikipedia.org/wiki/Arm_Holdings#Founding
- timthorn 6y agoIf memory serves, the processor in the Newton was touted as being as powerful as a 486 (386 was the mainstream CPU at that point).
- 6y ago
- znpy 6y ago> Linux should follow suit Linux has been running on ARM for at least the last 15 years.
- krzyk 6y ago> major OS makers to accelerate ports to ARM.... Linux should follow suit Have you heard of Raspberry? Even before it was released there were almost all of Debian packages in ARM, so Raspberry had it easy, they just took something that already worked. And it was years ago. Right now the only OS ready for ARM is Linux.
- ogre_codes 6y agoDo not disagree with you on the first point, Linux was on ARM first and has done a spot on job—with the Pi leading the charge—supporting ARM. But from all reports from people with the dev kit, Mac OS is going to hit the ground running.