Author Topic: Why x86 devices are more open and have much longer support life cycle than ARM?  (Read 862 times)

0 Members and 1 Guest are viewing this topic.

Offline vucaxi

  • Newbie
  • Posts: 4
Hello.
For examples, we can easily install a lot of latest OSes on a 15 year old computer, such as Windows 10, Linux series, BSD series... But it's nearly impossible to find a phone or ARM tablet that is still being updated after 5 years from announce, and it's very hard to install another OS manually(except some rare examples). Why?
Thanks.
 

Offline dferyance

  • Regular Contributor
  • *
  • Posts: 130
It's pretty simple really; backwards compatibility is very expensive and they've been able to get away with it. I think some of it has been the move to the web and cloud and the view of disposable apps. I still use software that was written 15 / 20 years ago, but most people don't.

It is likely too that this is related to how the general public views computers. They see smartphones and tablets as being different from PCs. It seems odd to me that if you take a PC, put it in a laptop box, it is still a PC and it runs applications. But put it in a tablet or phone box and it is a "device" and it runs "apps". But that seems to be the general view.

Having read the old-new-thing blog for years I have a general appreciation for how much effort goes into backwards compatibility. It can be extremely difficult to do and is skipped in areas where most people don't care.
 

Offline retiredcaps

  • Super Contributor
  • ***
  • Posts: 3449
  • Country: ca
For phones and tablets, see xda

https://forum.xda-developers.com/

There are ROMs like lineageOS, resurrection rom, aosp, etc, etc.

When I buy used phones and tablets, I look for those that can run lineageOS and that are actively maintained.

For x86, I use lubuntu.
 
The following users thanked this post: NiHaoMike

Online Ampera

  • Super Contributor
  • ***
  • Posts: 2566
  • Country: us
    • Ampera's Forums
I also think it has to do with ARM having the classic, poorly defined hardware architecture issue. ARM is the ISA for the processor, but outside of that, it really doesn't have to mean a whole lot, especially when you're talking about things like firmwares and booting. x86 got so great because IBM established their PC, which while not intended to be an industry standard, eventually got cloned, upgraded, and pushed forward until you got to the point where basically any x86 computer was IBM PC compatible. However on ARM, you have UEFI, similar to how modern x86 machines do it, but then you have a massive plethora of different booting standards, and probably a lovely soup of memory mappings, hardware locations, not to mention driver chaos with proprietary firmwares ontop of that, and nobody talking to the mainline Linux people, all combined to make it a nightmare for anybody who wants to do something crazy with their computer like run their own OS on it.

This was similar to why PowerPC had a load of issues, with I believe two different official hardware architectures developed by AIM themselves, as well as legacy ones developed by IBM, and the proprietary Macintosh one developed by Apple. There was just no way to have your one system work the same on every machine like you can sort of do on an IBM PC compatible.

There's also power issues, ARM is low power, and also low performance compared to x86, so it's more suited for mobile devices which get designed more like appliances than real computers, to which a seamless and (secure lol) experience is paramount above a configurable, open, and well documented one. There's just not enough grunt on our current ARM CPUs to make people really get too bothered about agreeing on anything. ARM servers are a thing, and are becoming more of a thing, with Linux having LONG lead the way in the ARM world (there's hope for a brighter tomorrow), but big name Windows is also on the scene, with an x86->ARM emulator built right in (lolperformance).

This is actually something we've talked about a bunch in the EEVBlog IRC channel (which you all should totally join, irc.austnet.org #eevblog), about if ARM will ever make it to the same or similar position at x86, and if we will start to really move away from the IBM PC universe. I guess the tl;dr for the entire quagmire is take a look at the RISC uprising of the late 80's to just over 2000 to see where I believe the big issues are starting to repeat themselves.
Professional complainer-in-chief criticizing other people's code
Programmer and bumbling Unix fool
Op @ EEVBlog IRC: irc.austnet.irc #eevblog
 

Online magic

  • Super Contributor
  • ***
  • Posts: 2108
  • Country: pl
Only because IBM PC and its clones dominated the market of x86 machines at one point and (almost) all x86 hardware since than was and is a PC clone in order to take advantage of certain pre-existing binary only x86 OSes from a particular Redmond company and the mountains of software written for that platform.

There was never a single machine which became dominant on the ARM market and got so much software written for it that there was no way to compete but by cloning it bit by bit.

There are efforts nowadays to standardize ARM a bit at least to the extent that it (I mean, compatible SoCs and boards) can run Windows and Linux out of the box with little to no customization. But they are trying to do it not by standardizing the hardware itself but by bringing abstraction layers from the x86 PC world like ACPI and UEFI to ARM.
 

Offline tooki

  • Super Contributor
  • ***
  • Posts: 4987
  • Country: ch
With the caveat that I’m not a programmer (never mind at bare metal), so my understanding or retelling might not be 100% accurate, but a friend of mine who writes boot and kernel code for OpenBSD told me that one reason is that ARM lacks the ability to enumerate hardware on boot and load the necessary drivers on the fly. So every OS build for ARM must be tailored and compiled (statically linked) for the exact hardware configuration (other than storage and RAM sizes). Apparently you can’t just make a generic ARM build that’ll, say, dynamically load the right code for the GPU and network hardware in the device.

This explains why, for example, Apple must release a different build of a given iOS version for each supported device model. So even though my iPhone 6S and iPhone 6 and iPad Air 2 all run iOS 12.2, they can’t share an OS build.

Now, I assume it would be possible to graft this ability into the ARM architecture, but I guess there’s no incentive to do so, given that mobile device manufacturers want to keep their builds compact anyway so as to save storage.
 

Offline tooki

  • Super Contributor
  • ***
  • Posts: 4987
  • Country: ch
This was similar to why PowerPC had a load of issues, with I believe two different official hardware architectures developed by AIM themselves, as well as legacy ones developed by IBM, and the proprietary Macintosh one developed by Apple. There was just no way to have your one system work the same on every machine like you can sort of do on an IBM PC compatible.
Ehhhh, not really.

The first generation of Power Macs (the ones with NuBus architecture) were essentially legacy 68K designs with PPC chips shoehorned in. They really are weird systems, with true "old school" Mac ROM, which literally cannot bootstrap anything other than classic Mac OS. (Any alternative OS for them, like A/UX or Linux, boots by first booting the Mac system software and then jump-starting it into the new OS via a warm reboot.)

There was a proposed standard PPC system architecture (PReP), but none of the AIM alliance members was actually happy enough with it to ever use it. So they each did their own thing initially.

But the later Power Mac systems (PCI based) are very close to the AIM's second standard PPC system architecture, CHRP. Indeed, they actually influenced the CHRP standard. These already made the move to Open Firmware (but still retain the Mac Toolbox in ROM).

The last major change to the Power Mac boot architecture was the switch to "New World ROM", which retains Open Firmware but no longer has the Mac Toolbox in ROM (for classic Mac OS, it's simply loaded from disk). These systems are really close to CHRP. Indeed, Mac OS 8 actually had CHRP support, and the old steamer trunk of memories in my brain thinks I remember that, right before the Mac clone program was killed, the Mac was about to switch to using CHRP. (Some clone makers already had CHRP prototypes running.)

A Power Mac with Open Firmware (especially the New World ROM ones) is really very similar to an x86 PC with EFI. They use the same hardware interfaces (PCI/PCIx/PCIe, AGP, PCnnn series RAM, ATA/SATA, USB, etc.) and even support the same PCI cards, provided the card adds an Open Firmware ROM if you need bootability. (It's possible to have both an Open Firmware and BIOS ROM on the same card, as a handful did.)

It would have been trivial to make one PPC operating system run on another PPC system. It was pretty much just fiddling with the bootloaders. PPC Linux does this.


Incidentally, what I find especially cool is how Apple managed to make dual-architecture OS builds, where a single Mac OS X install on a disk can boot both PowerPC and Intel Macs. (This was supported in 10.4.11 and 10.5.x, the only Mac OS X versions that existed for both architectures.) So not only could this enumerate hardware on boot, it could do it for two completely different architectures, and once bootstrapped, dynamically load the correct binary code chunks from the executable files. Except in actuality, it was four different CPU architectures, since it had both 32- and 64-bit PPC and 32- and 64-bit Intel. This was incredibly handy for Mac technicians, since we could just install 10.5.x and our utilities onto a FireWire hard drive and use it to boot everything for servicing, be it a 32-bit PPC like a PowerBook G4, a 64-bit PPC like a Power Mac G5, a 32-bit Intel like the initial MacBook Pro, or a 64-bit Intel like the Mac Pro.
 
The following users thanked this post: newbrain, cpt.armadillo

Offline ogden

  • Super Contributor
  • ***
  • !
  • Posts: 3208
  • Country: lv
Operating system is far from integral part of consumer grade personal computer. It is separate product with own support. When you did buy computer with Windows 95 on it, now upgrade to Windows 10, you can't say that your **computer** still has support today just because you were able to (perhaps) upgrade it's operating system.

We shall compare hardware/firmware support instead. Firmware of the computer is BIOS. Consumer grade computer *hardware* rarely have longer support cycle than consumer phones/tablets. As far as I know from experience with some ASUS/Gigabyte/MSI motherboards, PC motherboard bios updates do not last for long years, their support life expectancy is similar or even shorter than support for phones/tablets.
 

Online David Hess

  • Super Contributor
  • ***
  • Posts: 11180
  • Country: us
  • DavidH
I also think it has to do with ARM having the classic, poorly defined hardware architecture issue. ARM is the ISA for the processor, but outside of that, it really doesn't have to mean a whole lot, especially when you're talking about things like firmwares and booting. x86 got so great because IBM established their PC, which while not intended to be an industry standard, eventually got cloned, upgraded, and pushed forward until you got to the point where basically any x86 computer was IBM PC compatible. However on ARM, you have UEFI, similar to how modern x86 machines do it, but then you have a massive plethora of different booting standards, and probably a lovely soup of memory mappings, hardware locations, not to mention driver chaos with proprietary firmwares ontop of that, and nobody talking to the mainline Linux people, all combined to make it a nightmare for anybody who wants to do something crazy with their computer like run their own OS on it.

Linus Torvalds has made the same observation.

There was never a single machine which became dominant on the ARM market and got so much software written for it that there was no way to compete but by cloning it bit by bit.

There are efforts nowadays to standardize ARM a bit at least to the extent that it (I mean, compatible SoCs and boards) can run Windows and Linux out of the box with little to no customization. But they are trying to do it not by standardizing the hardware itself but by bringing abstraction layers from the x86 PC world like ACPI and UEFI to ARM.

Having learned from what happened to IBM and later Apple, I suspect there is little enthusiasm for open standards but lots of enthusiasm for a closed and proprietary system with overwhelming intellectual property protection.  It is better to have all of nothing than a share of something larger.  And I am dubious that ARM would piss off their customers by developing one.

This was similar to why PowerPC had a load of issues, with I believe two different official hardware architectures developed by AIM themselves, as well as legacy ones developed by IBM, and the proprietary Macintosh one developed by Apple. There was just no way to have your one system work the same on every machine like you can sort of do on an IBM PC compatible.

The first generation of Power Macs (the ones with NuBus architecture) were essentially legacy 68K designs with PPC chips shoehorned in. They really are weird systems, with true "old school" Mac ROM, which literally cannot bootstrap anything other than classic Mac OS. (Any alternative OS for them, like A/UX or Linux, boots by first booting the Mac system software and then jump-starting it into the new OS via a warm reboot.)

There was a proposed standard PPC system architecture (PReP), but none of the AIM alliance members was actually happy enough with it to ever use it. So they each did their own thing initially.

But the later Power Mac systems (PCI based) are very close to the AIM's second standard PPC system architecture, CHRP. Indeed, they actually influenced the CHRP standard. These already made the move to Open Firmware (but still retain the Mac Toolbox in ROM).

The last major change to the Power Mac boot architecture was the switch to "New World ROM", which retains Open Firmware but no longer has the Mac Toolbox in ROM (for classic Mac OS, it's simply loaded from disk). These systems are really close to CHRP. Indeed, Mac OS 8 actually had CHRP support, and the old steamer trunk of memories in my brain thinks I remember that, right before the Mac clone program was killed, the Mac was about to switch to using CHRP. (Some clone makers already had CHRP prototypes running.)

I am fuzzy on the details but IBM says they will be releasing a completely open hardware and software PowerPC motherboard in the ATX format and I have seen the actual board.  And when I say open, I mean one of the features is complete documentation of all of the firmware with no secret management processors like Intel and AMD include.

Operating system is far from integral part of consumer grade personal computer.

It would be if Microsoft thought they could get away with it and it has not been for lack of trying.  Apple basically has gotten away with tying the OS and hardware together.
 

Offline amyk

  • Super Contributor
  • ***
  • Posts: 6808
The availability of documentation for PCs and (the early) x86 CPUs also helped boost the openness, it was alluded to in an earlier post but IBM published the schematics and BIOS source code of the PC, XT, and AT.

In contrast, ARM usually comes in the form of a SoC with either very little public or highly restricted (f**k you Broadcom...) docs and every single one is slightly different. I suppose one could put an ARM into a PC-ish system with PCI and the other stuff, like what has been done now with some of the ARM server chips, but that's not common.

That said, unfortunately some of the newer x86 SoCs are going in the same direction as ARM; look at Intel's failed attempts at the phone/tablet market, for example. They can't really run normal Windows, nor DOS, they're just an x86 brain in a foreign body. Not surprising they failed, since they had none of the advantages of x86 that people wanted. A smartphone or tablet that has full Windows compatibility including DOS would've been awesome, but instead they decided to strip out what makes x86 great, and instead create a useless bastard child. "Legacy-free" is the euphemism for "no backwards compatibility." :--
 

Online Ampera

  • Super Contributor
  • ***
  • Posts: 2566
  • Country: us
    • Ampera's Forums

The first generation of Power Macs (the ones with NuBus architecture) were essentially legacy 68K designs with PPC chips shoehorned in. They really are weird systems, with true "old school" Mac ROM, which literally cannot bootstrap anything other than classic Mac OS. (Any alternative OS for them, like A/UX or Linux, boots by first booting the Mac system software and then jump-starting it into the new OS via a warm reboot.)

There was a proposed standard PPC system architecture (PReP), but none of the AIM alliance members was actually happy enough with it to ever use it. So they each did their own thing initially.

But the later Power Mac systems (PCI based) are very close to the AIM's second standard PPC system architecture, CHRP. Indeed, they actually influenced the CHRP standard. These already made the move to Open Firmware (but still retain the Mac Toolbox in ROM).

The last major change to the Power Mac boot architecture was the switch to "New World ROM", which retains Open Firmware but no longer has the Mac Toolbox in ROM (for classic Mac OS, it's simply loaded from disk). These systems are really close to CHRP. Indeed, Mac OS 8 actually had CHRP support, and the old steamer trunk of memories in my brain thinks I remember that, right before the Mac clone program was killed, the Mac was about to switch to using CHRP. (Some clone makers already had CHRP prototypes running.)

A Power Mac with Open Firmware (especially the New World ROM ones) is really very similar to an x86 PC with EFI. They use the same hardware interfaces (PCI/PCIx/PCIe, AGP, PCnnn series RAM, ATA/SATA, USB, etc.) and even support the same PCI cards, provided the card adds an Open Firmware ROM if you need bootability. (It's possible to have both an Open Firmware and BIOS ROM on the same card, as a handful did.)

It would have been trivial to make one PPC operating system run on another PPC system. It was pretty much just fiddling with the bootloaders. PPC Linux does this.


It wasn't my intention to give a detailed perspective, the point is that there were a load of standard. Booting standards isn't everything there is to a hardware architecture, it's a lot about where things are on the memory map, if there are things like firmware functions built in, are there system standard methods for accessing things like storage in video. It also has considerations hardware wise on standards to use within there, like more PC related standards, or other buses,  proprietary things, among a load of other stuff.

This doesn't stop people from designing around it, but if the intent is to have this become a mainstream high performance standard, I'd argue it very much does not help matters. PowerPC wasn't a total failure. POWER in its own right still continues onto this day, and found its own niche in servers and highly parallelized computing where lotsa power per node is of concern, and software support isn't so much. PowerPC was use in macs in years, and found its way into every single mainstream 7th generation console in one way or another, and also had a presence in the 6th and 8th generations (thanks Nintendo for that). What's being discussed here is open standards, and support cycles, which very much have to do with what the chips are being used in, and are totally affected by competing standards and proprietary solutions. Even though POWER is still here, and PowerPC had its time in the sun, x86 remains in every desktop and almost every server to this day, just because of how many people started using that one standard, and didn't have a reason to switch.

ARM isn't /going/ anywhere, it's basically what happens when you start getting all mad scientist with the concept of a microcontroller, and is used profusely in appliances and appliance-like computers (tablets, phones, STBs, cars, etc.) It's just that when you need a computer like computer, the standard has been x86 for years and years, sealed when MIPS and Alpha bowed their last bows, and Apple gave up on PowerPC.
Professional complainer-in-chief criticizing other people's code
Programmer and bumbling Unix fool
Op @ EEVBlog IRC: irc.austnet.irc #eevblog
 

Offline tooki

  • Super Contributor
  • ***
  • Posts: 4987
  • Country: ch
It wasn't my intention to give a detailed perspective, the point is that there were a load of standard. Booting standards isn't everything there is to a hardware architecture, it's a lot about where things are on the memory map, if there are things like firmware functions built in, are there system standard methods for accessing things like storage in video.

Well that's the thing... Open Firmware handles all the stuff like hardware enumeration (and thus addressing) and the like, and the flavors of Open Firmware are more similar than they are different, as I understand it. It's not just about how it boots.

It also has considerations hardware wise on standards to use within there, like more PC related standards, or other buses,  proprietary things, among a load of other stuff.
What? (Not trying to be rude, but your whole reply is kinda hard to parse, so I'm not 100% sure that I understand every point you're trying to make.)

This doesn't stop people from designing around it, but if the intent is to have this become a mainstream high performance standard, I'd argue it very much does not help matters.
Well, Apple's priority has never been to create "mainstream high performance standards". Apple prioritizes getting the performance and functionality they want. Being "mainstream" is not as important, nor is adhering to standards where it's not advantageous. (Apple happily uses standards where they make sense -- which is in a LOT of places -- but not when it doesn't.)


I've tried to respond to the rest of your reply, but honestly I'm not sure what point(s) you're trying to make. You're kinda just repeating the obvious (or well-known) and/or things whose relevance isn't quite self-evident.

PowerPC wasn't a total failure. POWER in its own right still continues onto this day, and found its own niche in servers and highly parallelized computing where lotsa power per node is of concern, and software support isn't so much. PowerPC was use in macs in years, and found its way into every single mainstream 7th generation console in one way or another, and also had a presence in the 6th and 8th generations (thanks Nintendo for that).
I don't think anyone would call PPC a "failure". It's simply refocused away from the personal computing world.

What's being discussed here is open standards,
OK, how is this discussion not on-topic enough for you?!?

and support cycles, which very much have to do with what the chips are being used in, and are totally affected by competing standards and proprietary solutions.
We know what the discussion is about.

Even though POWER is still here, and PowerPC had its time in the sun, x86 remains in every desktop and almost every server to this day, just because of how many people started using that one standard, and didn't have a reason to switch.
You don't say...

ARM isn't /going/ anywhere, it's basically what happens when you start getting all mad scientist with the concept of a microcontroller, and is used profusely in appliances and appliance-like computers (tablets, phones, STBs, cars, etc.) It's just that when you need a computer like computer, the standard has been x86 for years and years, sealed when MIPS and Alpha bowed their last bows
Who ever said ARM would go anywhere? And why are you just restating the obvious about x86?

ARM isn't /going/ anywhere, it's basically what happens when you start getting all mad scientist with the concept of a microcontroller, and is used profusely in appliances and appliance-like computers (tablets, phones, STBs, cars, etc.) It's just that when you need a computer like computer, the standard has been x86 for years and years, sealed when MIPS and Alpha bowed their last bows, and Apple gave up on PowerPC.
Well, Apple didn't so much lose faith in PPC so much as they recognized that IBM had failed them (having seemingly thrown in the towel). Apple was reliant on IBM delivering faster, lower-power PPC chips, and they let Apple down. (IBM's server chips can be more or less as hot and inefficient as they want.)
 

Online Ampera

  • Super Contributor
  • ***
  • Posts: 2566
  • Country: us
    • Ampera's Forums

It also has considerations hardware wise on standards to use within there, like more PC related standards, or other buses,  proprietary things, among a load of other stuff.
What? (Not trying to be rude, but your whole reply is kinda hard to parse, so I'm not 100% sure that I understand every point you're trying to make.)

Idk I'm sort of confused as to where this went myself, I thought I was fairly clear in what I was going on about, but my general points were that my original post wasn't focused on the Macintosh and its boot methods, or PowerPC in general, just the point that there were multiple ones. What I said here is that the architecture has more to do than just booting and memory maps, it can define how things are laid out in hardware too, with what interfaces being defined as standard, among other things.

This doesn't stop people from designing around it, but if the intent is to have this become a mainstream high performance standard, I'd argue it very much does not help matters.
Well, Apple's priority has never been to create "mainstream high performance standards". Apple prioritizes getting the performance and functionality they want. Being "mainstream" is not as important, nor is adhering to standards where it's not advantageous. (Apple happily uses standards where they make sense -- which is in a LOT of places -- but not when it doesn't.)

Yes, but that was AIM's (supposed) goal, to take down the PC compatible platform with their own alternative. I am explaining why I do not think this came to pass, in an attempt to draw parallels between it and ARM.

PowerPC wasn't a total failure. POWER in its own right still continues onto this day, and found its own niche in servers and highly parallelized computing where lotsa power per node is of concern, and software support isn't so much. PowerPC was use in macs in years, and found its way into every single mainstream 7th generation console in one way or another, and also had a presence in the 6th and 8th generations (thanks Nintendo for that).

I don't think anyone would call PPC a "failure". It's simply refocused away from the personal computing world.

Considering the whole point of PowerPC was to develop a standard based around POWER intended to replace the IBM PC, and it did barely any of that, and instead found itself in the same sort of hardware specific multiple standard niche that ARM did, I'd say it's a failure from that perspective.

What's being discussed here is open standards,

OK, how is this discussion not on-topic enough for you?!?

Here is a mistake I admit, I meant open standards related to ARM, not in general. We were talking about PowerPC which I simply meant as an example to draw some comparisons to.

Who ever said ARM would go anywhere? And why are you just restating the obvious about x86?

Because, as the topic is about why ARM doesn't have the same open atmosphere and longer support cycles, and I was (again) using PowerPC as a point of reference. The comparison was between PowerPC and x86 to show that the situation, in my mind, isn't to different between ARM and x86, just with different names and some different devices to reflect the modern uses they have for them.

Well, Apple didn't so much lose faith in PPC so much as they recognized that IBM had failed them (having seemingly thrown in the towel). Apple was reliant on IBM delivering faster, lower-power PPC chips, and they let Apple down. (IBM's server chips can be more or less as hot and inefficient as they want.)

Not particularly what I was talking about, I meant loose faith as in, they decided it wasn't the right option for one reason or another, and left it for something else. The entirety of my reply to you, among adding things to the conversation and trying to be more detailed about what I said, was, funnily enough, to state that my original post wasn't about PowerPC, and that you were focusing a bit hard on what I believed was a simple take it or leave it comparison that I had personally made.
Professional complainer-in-chief criticizing other people's code
Programmer and bumbling Unix fool
Op @ EEVBlog IRC: irc.austnet.irc #eevblog
 

Offline tooki

  • Super Contributor
  • ***
  • Posts: 4987
  • Country: ch
Well, if you’re going to compare PPC-vs-x86 and ARM-vs-x86, then I think your argument fails completely, because in terms of openness of the architectures, x86 and PPC are comparable, and it’s ARM that’s more closed. PPC didn’t fail because of lacking openness, but because it ended up fizzling out in performance, right as Intel was doing really well.


Anyhow, I think perhaps I wasn’t clear in my original comment to you, that the focus wasn’t on how they boot, but that the PPC hardware world wasn’t quite as fragmented as you made it out to be. I think the comment ended up looking like a treatise in boot firmware simply because that’s where much of the difference ended up being, and I was actually trying to illustrate how similar the hardware actually was! (Most of the actual system architecture of PPC systems was dictated by the chipsets made by IBM and Motorola.)
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf