|
> Much of a modern Linux desktop e.g. runs inside one of multiple not very well optimized JS engines A couple of years ago I saw a talk by Sophie Wilson, the designer of the ARM chip. She had been amused by someone saying there was an ARM inside every iPhone: she pointed out that there was 6-8 assymetric ARM cores in the CPU section of the SOC, some big and fast, some small and power-frugal, an ARM chip in the Bluetooth controller, another in the Wifi controller, several in the GSM/mobile controller, at least one in the memory controller, several in the flash memory controller... It wasn't "an ARM chip". It was half a dozen ARMs in early iPhones, and then maybe dozens in modern ones. More in anything with an SD card slot, as SD card typically contain an Arm or a few of them to manage the blocks of storage, and other ARMs in the interface are talking to those ARMs. Wheels within wheels: multiple very similar cores, running different OSes and RTOSes and chunks of embedded firmware, all cooperatively running user-facing OSes with a load of duplication, like a shell in one Javascript launching Firefox which contains a copy of a different version of the same Javascript engine, plus another in Thunderbird, plus another embedded in Slack and another copy embedded in VSCode. Insanity. Make a resource cheap and it is human nature to squander it. |