this post was submitted on 08 Aug 2023
23 points (100.0% liked)
Technology
37719 readers
201 users here now
A nice place to discuss rumors, happenings, innovations, and challenges in the technology sphere. We also welcome discussions on the intersections of technology and society. If it’s technological news or discussion of technology, it probably belongs here.
Remember the overriding ethos on Beehaw: Be(e) Nice. Each user you encounter here is a person, and should be treated with kindness (even if they’re wrong, or use a Linux distro you don’t like). Personal attacks will not be tolerated.
Subcommunities on Beehaw:
This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Apple, Google, and Microsoft already do. I'm sure there are others.
I mean I was hoping that I could build a desktop PC like, say, you would with an AMD or Intel processor but with an ARM64 instead. I probably should have specified that. Sorry.
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.
@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.