what is the difference between software interface and hardware interface?
Hardware interfaces are the plugs, sockets, cables and electrical signals traveling through them. Examples are USB, FireWire, Ethernet, ATA/IDE, SCSI and PCI. Software interfaces (programming interfaces) are the languages, codes and messages that programs use to communicate with each other and to the hardware.