Hardware abstraction
A hardware abstraction is software that provides access to hardware in a way that hides details that might otherwise make using the hardware difficult. Typically, access is provided via a software interface that allows devices that share a level of similarity to be accessed via the same software actions even though the devices provide different hardware interfaces.