Hacker News new | ask | show | jobs
by loeg 642 days ago
The ISA isn't what makes x86 easier for operating systems to support than ARM SoCs. It's things like generic ACPICA instead of hardcoded devicetrees.
2 comments

To be clear, I wasn’t claiming anything about operating systems. Merely that adding many weird instructions was a strategy intel used to try to make the jobs of amd and centaur and suchlike harder.
Some ARM systems (mainly servers) do support ACPI; allowing for one image to run on multiple processors and devices.

However… ACPI is apparently a pretty awful thing to implement. When it doesn’t work, or mistakes are made (looking at my own 13th gen HP laptop right now - borked ACPI tables means unpatchable broken sleep on Linux), then it’s pure frustration.

Device trees on the other hand are much more binary. Either everything generally works or it doesn’t at all. It’s a valid approach.

Flawed implementations of open specs can be worked around with things like quirk tables. A spec held hostage by a non-cooperating vendor cannot. In the world of ARM SoCs, bad vendors won't even provide a device tree, just a binary image compiled from a patched kernel.
You can override broken ACPI tables. The keyword to search for is "dsdt". For example, if you have an HP Omen this repo has a fix:

https://github.com/j0hnwang/OMEN-Transcend-16-ACPI-fix

But yes, device trees are far nicer to work with.