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. read / write send and receive buffers to and from the device ioctl send commands and a data buffer to the device proc examine driver characteristics and even perform full communications poll / select get notification when the device can provide or process data or has an exception misc a number of misc system calls to seek and get signals on io completion. 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.