Linux device drivers (LDDs) are low-level software that handle hardware controllers and hide their peculiarities from users. They present a uniform view of devices. Each physical device like keyboards or disks has a hardware controller that is managed by a device driver. Device drivers control and status registers to initialize and diagnose devices. The code for managing hardware controllers is kept in the Linux kernel rather than applications. Device drivers provide the layer between applications and hardware devices.