EMZETT.
Login

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 .sys files, 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