I am addressing your comment and eru's question about drivers.
The hardware that would normally need drivers should present itself over a fixed, well documented protocol. Think virtio, or usb device classes but more comprehensive. This would also allow for said hardware to rigorously tested before it ever sees an OS. As it is now, because the hardware is shit and requires a driver, you can't really test the hardware in a way that an OS would expect because it requires the OS driver to even start to function. The job of the OS is now to repair broken hardware.
https://docs.oasis-open.org/virtio/virtio/v1.3/virtio-v1.3.h...
https://en.wikipedia.org/wiki/USB_communications_device_clas... (the only good thing to come out of usb)