Hey! Does anybody have any information about if and when a company might offer ARM64 for general desktop use? I would like to build my own in the same way that I might build a desktop PC out of an Intel or AMD processor.
Hey! Does anybody have any information about if and when a company might offer ARM64 for general desktop use? I would like to build my own in the same way that I might build a desktop PC out of an Intel or AMD processor.
Not possible. At least, not yet. Two main reasons for this:
1. There is no standardized BIOS/UEFI equivalent in ARM, as a result, the boot process in every ARM system differs in general. The only “standardized” boot process you’d see would be for that particular type of system from a single vendor, eg the way most Android devices boot is generally the same - although even in Android, some manufacturers make their own changes, for instance Samsung introduces their KNOX into the picture, some devices use the A/B partition system but some dont, etc.
The lack of a standard boot/initialisation process, and the lack of a hardware auto-detect feature, means you can’t just mix and match components like you’d do in a PC - the bootloader wouldn’t know how to initialize those hardware bits, heck, it wouldn’t even know the hardware existed unless you manually defined it somewhere - this is done using something called a Device Tree, which, although is a standardized format, still needs to be manually created, and also, the bootloader used needs to support this in the first place (like UBoot, but not all ARM systems use this).
2. The other reason is lack of standardized hardware. In the x86 world, PCs have a rich ecosystem of standardized components, from motherboards to graphics cards, which have evolved over decades, and standards were developed organically over time - and agreed upon by other manufacturers. Sometimes these standards were made or guided by special interest groups / consortiums / other regulatory boards etc. ARM lacks this.
But it wasn’t always like this in the PC world, back in the early days of personal computing, you had different types of PCs and hardware that were basically incompatible with each other, similar to the ARM systems of today. It was mainly due to the popularity of IBM PC, that things began to change. Unlike many other computers of its time, the IBM PC had an open architecture. This meant that its specifications and designs were made publicly available, allowing third-party manufacturers to produce compatible components and peripherals. One of the key features of the IBM PC was the Industry Standard Architecture (ISA) bus (the precursor to the PCI bus), which allowed for the addition of third-party cards. This established a standard for expansion that was widely adopted and emulated.
As IBM PCs gained in popularity, other manufacturers started producing “IBM compatibles” or “PC clones.” These machines were designed to be hardware and software compatible with the IBM PC. Companies like Compaq successfully reverse-engineered the BIOS, allowing them to create systems that could run software designed for IBM PCs. Also, IBM’s choice of using Microsoft’s MS-DOS as the operating system was crucial. As DOS became the de facto OS for PCs, software developers focused their efforts on creating software for this platform. This drove further hardware standardization as manufacturers aimed to produce hardware compatible with MS-DOS and its applications. As the industry grew, this lead to the creation of more standards, some of them competing, some losing out due to lack of popularity etc. The result is the PC world that you see today.
ARM lacks all of this rich history. Where ARM is at right now is where PCs were at before the introduction of the IBM PC. We need to go thru all those motions again to be able to build your own PC. But I don’t see this happening any time soon, in fact it’s doubtful if it’ll ever happen, since the trend these days is for vendors to build closed, unrepairable, unserviceable systems - so that you get locked into their ecosystems, so that you’re forced to upgrade your entire device just to get say, more RAM or whatever. And unfortunately, even PC manufacturers are picking up on this trend, as we’re seeing with laptops.
So unless something changes drastically, like some big manufacturer stepping forward to create an open ARM PC and ecosystem, being able to build your own ARM PC will remain a pipe dream.
ARM UEFI exists, it’s just not very common like it is on PCs. Technically, every x86/x86_64 PC has its own custom bootloader that describes the peculiarities of the given hardware/motherboard, it’s just that the standard has been that every x86 machine ever made (barring a few Android Atom tablets) comes with a BIOS/UEFI bootloader built in that standardizes the boot process.
On ARM, it is possible to UEFI boot (and some ARM bootloaders provide varying degrees of UEFI boot support - Tow Boot on the PinePhones uses UEFI for instance, there is one available for RPi 4 as well). However, since ARM devices are mostly phones and tablets running Android or single board computers (often provided with no software at all) they usually don’t come with a UEFI compatible bootloader. Hopefully this will change, or at very least second-stage UEFI capable bootloaders become more widely available to add UEFI capabilities to devices with Android bootloaders. U-Boot does have some UEFI capabilities and is commonly used for single board computers that don’t have a built in bootloader.
There is a standardised boot flow. The SBSA architecture specifies minimum specs, firmware interfaces and how platform initialisation works. You can buy Windows on Arm machines that follow this and boot any modern Arm distro on them. It’s currently a small selection but it’s growing.
I’m a computer scientist mainly but with a heavy focus/interest in computer architecture. My plan is to teach at a university at this point - but it seems to me like that would be a good place to create completely open standards technology from.^1Specifically because if the point isn’t to make money, there’s no reason to create walled gardens.
There’s certainly enough interest from people who want to be able to build their own systems. What would actually worry me isn’t the ability to make a new open standard or any of that. It’s that AMD64 is very hard to compete with in this space, because the processors are just faster, and there is so much x86 software that people who build PCs usually want access to.
AMD64’s performance is the result of years and years of optimizations and patenting new hardware techniques, followed by aggressively litigating people trying to compete. ARM performance is catching up but ARM prefers licensing their core IP over making their own systems, making it harder for them to break into the PC space even if they want to.
A new player would be in for a long, long time of unprofitable work just to compete with AMD64 - which most people are still happy with anyway.
^1 some others and I are actually working on some new ISA / open soft processors for it. However it is focused at an educational setting and unlikely to ever be used outside of embedded devices at most.
Sadly, I suspected as much. 😿
There’s always the Raspberry Pi though. You can even cluster them if you want,
@d3Xt3r @housepanther
One possible way forward would be to use the same standards of the PC, running an initialisation system like UEFI into an hypervisor, or a simple single-core x64 co-processor.
Of course, a lot more work would need to be done for that to be useful and reproducible across vendors, but at least you wouldn’t be perpetually 40+ years behind the curve.