Why is it that the hardware interfaces of disk drives 30 years ago were simple and clear and they currently require enormously elaborate drivers? Imagine if one could provide a command consisting of
(read/write, diskaddress, buffer_address, count, notification_address)
so that the disk drive controller wrote a completion code in the notification_address when done. Would that be hard? Why is it that virtualization hardware on modern processors devotes tens of millions of transistors to functionality that is not useful in any sensible virtual machine kernel but makes interrupt emulation into a nightmarish mish mash. Why are obvious bottlenecks in multi-core performance, like snooping caches made more an more elaborate and non-deterministic in operation when it’s been known for 30 years that they don’t scale at all? Why is it that the painfully obvious design flaws of USB can never be corrected even as it becomes more and more unavoidable?
Eventually, we’ll reach a breaking point where someone builds a Corolla or a Tesla and the manufacturers of power guzzling, unreliable, legacy hardware have to scramble to catch up.