The main purpose of device drivers is to provide abstraction by acting as a translator between a hardware device and the applications or operating systems that use it [REF].
For example, a high-level application for interacting with a serial port may simply have two functions for "send data" and "receive data".