provide specific interfaces between the os running a computer and hardware devices.
a piece of software that tells the operating system how to communicate with a device e.g. keyboard.
is the name given to software that enables one or more hardware devices to communicate with the computer's operating system.