6.5. Device Driver Implementation

6.5.1. Device Independent Function Call

../_images/device_indep_function.png

System calls use a table to use and execute the correct driver code.

6.5.2. 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)

6.5.3. Reconfigurable Device Drivers

../_images/reconfig_driver.png

Modern systems can be reconfigured with tables holding pointers to functions. This allows drivers to be added without recompiling the Operating System kernel.