From How Linux Works, by Brian Ward, I saw “SCSI Host Adapter”, “SATA Host Driver”, “Disk Driver (sd)”, “CD/DVD Driver (sr)”, “USB Host Driver”, and “USB Storage Driver”.
- What does “host” mean in the words?
- Why isn’t “guest” used?
- what differences are between when “host” appears before “driver” and when it doesn’t?
- what differences are between when “host” appears before “adapter” and when it doesn’t?
Thanks.
Note that at least in the case of SCSI, the correct term is Host Bus Adapter. And that’s exactly what it does: SCSI devices are pretty intelligent and independent, so the SCSI HBA does actually not “control” the devices in the same sense that, say, a floppy disk controller (if you still remember floppies 😉 ) or a USB Host Controller does. A SCSI HBA literally does just that: it adapts from the SCSI bus to the Host Bus (e.g. PCIe) and vice versa.
A host adapter can, well, host attached devices. A host adapter knows how to detect, power on, hand-shake, initialize, and make available a simpler device using a pluggable interface such as SCSI, SATA, or USB. Host adapters usually know how to handle multiple attached devices, and route information between them and the rest of the computer.
The non-host devices do not know all these complications. They expect that a host adapter will take care of that, and just implement the simpler device-specific logic. A SATA disk cannot connect to another SATA disk and interact with it. A USB flash drive cannot connect to a USB mouse in a meaningful way. These devices are not hosts. (Note that e.g. SCSI and FireWire devices can actually talk to each other in meaningful ways without a help from a host adapter. The host adapter just orchestrates their interaction with the computer.)
Usually you don’t call a USB mouse a ‘guest’, and a SATA disk, even less often. These devices can be seen as “permanently” attached, not traveling from one host to another. You could use a word like ‘controller’ instead of ‘host’, but it’s longer and does not convey the entire meaning. E.g. network controllers are usually peers and act similarly. A host and an attached device are not peers, they play entirely different roles in the connection.