He aquí por qué:
* abstracción: Los controladores son programas de bajo nivel que interactúan directamente con el hardware. Los componentes de software, por otro lado, operan a un nivel más alto de abstracción. No necesitan saber los detalles de cómo se administra el hardware.
* Mediación del sistema operativo: El sistema operativo actúa como intermediario. Un componente de software hará solicitudes (por ejemplo, leer desde un archivo, mostrar algo en la pantalla, acceder a un recurso de red) a través de llamadas del sistema. Luego, el sistema operativo usa los controladores apropiados para cumplir con estas solicitudes a nivel de hardware. El componente desconoce los controladores específicos involucrados.
* Portabilidad: El acceso directo al controlador limitaría severamente la portabilidad de los componentes del software. Diferente hardware requiere diferentes controladores. Si un componente usó directamente controladores, necesitaría reescribir para cada plataforma de hardware.
* Seguridad: El acceso directo al conductor presenta riesgos de seguridad significativos. Un componente mal escrito podría manipular directamente el hardware de manera que comprometa la estabilidad o seguridad del sistema. El papel del sistema operativo es proporcionar un entorno seguro y controlado para que los componentes de software interactúen con hardware.
En resumen, si bien los controladores son cruciales para la interacción de hardware, los componentes de software generalmente interactúan con el hardware indirectamente a través del sistema operativo y sus servicios, no a través de llamadas directas de controladores.