“If no driver can be found, Linux loads usbfs which lets user-space programs access the device. Mac OS does the same, with IOKit. Windows reports an error.”
For years Windows needed an INF file that listed every Android vendor and product ID before it would load winusb. Windows 8 added Microsoft OS Descriptors so the device could name its own driver. Android only adopted them in version 10, with a CTS test to force it. All that “install the driver” misery came down to one string descriptor at index 0xEE.
