Операционная система, в том числе её ядро, предоставляет виртуальные ресурсы (файлы на файловой системе, адресное пространство, TCP/IP-подключения и т.д.), выставляет их в виде API/ABI, а для реализации функций этих ресурсов пользуется в том числе драйверами устройств, помимо логики в самом ядре. Упрощённо говоря, драйвера работают как бы между ядром ОС и аппаратными интерфейсами. Драйвера реализуют различные программные интерфейсы, которые требует от них ядро.
Если говорить о драйвере в широком смысле, например о современных графических драйверах, то они как правило содержат много логики, исполняющейся в user space, а не только в ядре (см. например
UMDF). Например, драйвера видеокарт на Windows реализуют интерфейсы OpenGL и Vulkan в user-space, а в ядре работает лишь небольшой фрагмент кода драйвера.