Drivers
In short: A driver is a program that tells the operating system how to control a particular device (graphics card, printer, network card). Without a driver the system cannot use the device or only to a limited extent.
In more detail: Each piece of hardware speaks its own “language” (commands, registers). The operating system offers applications a uniform interface (for example “print this page”). The driver translates in between. It usually runs with high privileges in kernel mode, so driver bugs are especially dangerous.
In Depth
Kinds:
- Device drivers in the operating system: Windows
.sysfiles, Linux kernel modules (.ko), macOS kexts/DriverKit. - Firmware drivers (UEFI drivers): Run in the firmware before the operating system and make it possible, for example, to boot from an NVMe SSD or use network boot (PXE).
- Class drivers: General drivers for device types (USB storage, HID such as mouse and keyboard) that work without manufacturer software.
- Manufacturer drivers: More features and performance (NVIDIA, AMD, Intel).
- Virtual drivers: For software devices (VPN adapters, virtual drives).
Installing and maintaining drivers:
- Windows Update delivers many drivers automatically. For graphics cards the manufacturer driver is worthwhile.
- Device Manager (
devmgmt.msc): A device with a yellow warning sign means a missing or faulty driver. - Roll back an old driver (“Previous driver”) if an update causes problems.
- Install drivers only from a trustworthy source.
Security and stability:
- Drivers are signed. Windows in 64-bit mode loads only signed kernel drivers.
- Vulnerabilities in signed but faulty drivers are used for attacks (“bring your own vulnerable driver”). Microsoft maintains a blocklist.
- Driver errors lead to blue screens (for example
DRIVER_IRQL_NOT_LESS_OR_EQUAL). - Linux ships many drivers directly in the kernel, so a lot of hardware works immediately.
See also: Firmware, System architecture, Interfaces