The Linux Driver Model

This can best be described by examining a typical write system call. This is performed after an open call during which the kernel checks for user permissions on the device node and then creates an entry in the file descriptor table for future device access.

Following the open call the user process can then proceed to exchange data with the device using a number of methods.

The user process uses an index into the file descriptor table to define the major number which in turn refers to a particular device driver which uses a file operations table to satisfy a system service call for a given device operation.

In this example a user write call is shown.

A block of data in user space is to be transfered to the device driver in kernel space for eventual distribution to the device.