A device driver that provides consistent interface for programs to connect to hardware peripherals. It enables communication between software and hardware devices through assembly