System calls use a table to use and execute the correct driver code.
Drivers are distinct from main part of kernel
Kernel makes calls on specific functions, drivers implement them
Drivers use kernel functions for:
- Device allocation
- Resource (e.g., memory) allocation
- Scheduling
- etc. (varies from OS to OS)
Modern systems can be reconfigured with tables holding pointers to functions. This allows drivers to be added without recompiling the Operating System kernel.