• 0 Posts
  • 13 Comments
Joined 2 years ago
cake
Cake day: June 8th, 2023

help-circle

  • Computers have systems (BIOS, EFI, ACPI) that give the people who make the machine responsibility for providing a standard, publicly-defined way for the OS to enumerate the hardware, and to use the hardware in a basic way even if the OS has never heard of it. Linux can get a kernel panic on the screen even if it has no idea what your GPU is, because EFI understands it and Linux understands EFI. It is set up this way partly because there’s a real possibility of hardware being added or removed, partly because people routinely mix and match parts, and partly because IBM mistakenly designed a good system that was easy to work in and not one that kept them in business.

    Phones (and phone-derived systems like the Raspberry Pi and other single-board computers) don’t implement a standard. The hardware and its boot process assumes tight integration between the hardware and the software, usually to the point where the bootloader refuses to load anything not signed by the device manufacturer, unless it is satisfied that it has been given that manufacturer’s permission to be unlocked. (Computer secure boot implementations generally trust, for example, Microsoft, as well as the machine owner, who can load their own keys.)

    Instead of the CPU developers releasing example EFI implementations, they release forks of the Linux kernel that they maintain as long as that chip is the latest chip they sell, and then fork off the mainline kernel again for their next chip. And the device makers ship devices by starting with the chip maker’s kernel, customizing it for the device, giving it a “device tree” that tells it everything that is supposed to be in that particular device, and shipping it. For a few years they port patches from the current kernel onto this forked kernel, and then they stop. With no standard to develop software against, and no documentation for what’s in a device and how to use it like there is for the standard’s interfaces, the only practical way to run software on a device is to start with that patched kernel.

    Mainline Linux refuses to adopt and maintain the chip and device makers’ low-quality, chip-and-board-specific kernel changes (often because they break the kernel for other uses), so you can’t generally use a mainline Linux kernel instead. If you tried to tease out and improve the device-specific patches to the point where mainline Linux would take them, the device would be hopelessly outdated by the time you were done and you would have dozens of job offers to occupy your time as a highly skilled embedded Linux developer. The work is not practical given the tiny number of people who would benefit from it for a particular device, and how little it pays off compared to just buying a new device with a more up to date forked kernel available.

    “Maintaining” a device for LineageOS or other open software eventually collapses under the weight of mainline Linux’s changes and the necessary chip and device maker patches no longer being practically reconcileable.


  • I don’t think this is going to change the overall situation, it’s just a single point new system requirement, like the plausible GPU was for Vista.

    Now, if they start expiring the old TPMs every few years, and Windows 12 needs a TPM 4.0 or something, then this will change the overall situation. At least on the Windows side.





  • I think to test it you’d need to do some kind of comprehensive analysis, something like a big spreadsheet of a convincingly unbiased sampling of states (or states-at-points-in-time), evaluated for libertarianism-vs-authoritarianism. But you’d need to have a way to distinguish whether differences between states were caused by inherent per-state effects (or by more mechanistic runs-with-the-state traits, like “having a written constitution” or “being a monarchy”), or by “circumstances”. So you’d need a way to measure plausibly-causitive circumstances and then see how much of the variance they explained.

    It’d be a big project and hard to do in a controlled way across a large enough sample, but if you sent enough history grad students out to rate things like “worker organization” in 1925 Germany and “protections for human rights in constitutional law” in 1975 New Zealand on 5-point scales, you might be able to get a data set that could answer this question.