.. _diver_implement: Device Driver Implementation ============================== Device Independent Function Call ----------------------------------- .. figure:: device_indep_function.png :align: center System calls use a table to use and execute the correct driver code. Driver--Kernel Interface ---------------------------- * Drivers are distinct from the main part of the kernel. * The kernel makes calls to specific functions, drivers implement them. * Drivers use kernel functions for: - Device allocation - Resource (e.g., memory) allocation - Scheduling - etc. (varies from OS to OS) Reconfigurable Device Drivers ------------------------------ .. figure:: reconfig_driver.png :align: center Modern systems can be reconfigured with tables holding pointers to functions. This allows drivers to be added without recompiling the Operating System kernel.