Device-driver process (source code)

= Device-driver process

= Driver process
{synonym}

A <device-driver process> executes device-management logic as an operating-system <operating-system process>[process], communicating with clients through an <inter-process communication>[inter-process] interface. A <microkernel> can grant that <operating-system process>[process] access to selected <device register>[device registers], memory regions and <interrupt> notifications while keeping unrelated application <address space>[address spaces] separate. The <device driver> supplies hardware-specific operations; the <kernel (operating system)>[kernel] need only mediate the permitted resources and communication.

For a sensor, a client sends a request, the driver starts a conversion, an <interrupt> announces completion and the driver returns the measured result to that client. <concurrent computing>[Concurrent] requests need identifiers and an ordering rule so that replies cannot be exchanged accidentally. A driver in a separate <operating-system process>[process] can improve fault containment, but it still needs correct memory/<DMA> permissions and recovery behavior. The seL4 Microkit documents explicit protection domains, mapped memory regions, <interrupt> handling and communication channels as concrete mechanisms for such component boundaries.<Microkit User Manual by seL4 Project>[protection domains, memory regions, interrupts and channels]{ref}