Linux provides an API which abstracts performing IO across all busses and devices, allowing device drivers to be written independently of bus type.