¿Por qué escribir un driver?

Existen muchas razones para querer escribir un driver. Para dar soporte a nuevo hardware Para mantener un producto propio.

Se está creando hardware a un ritmo muy rápido, y los programadores de drivers requieren estar programándolos.

Recomendaciones

I. Proveer mecanismos y no políticas

La idea es que un driver permita acceder a los dispositivos de hardware, sin imponer restricciones arbitrarias a los que usan el driver. En UNIX esto es una regla de diseño, que se conoce como separación de mecanismos y políticas.
Para no escribir políticas en el driver, se puede hacer una aplicación de usuario que se encargue de configurar el dispositivo, y/o una librería para acceder a él. La idea es que el driver cambie muy poco.

II. Uso de módulos

Los módulos tienen la ventaja de permitir adicionar y remover funcionalidades del núcleo.

III. Módulo para un driver de carácter Este módulo:

– Usa un mayor número dinámico.
– Recibe parámetros cuando es insertado, y en un parámetro se puede especificar el mayor número.
– Usa memoria dinámica.
– Funciona llseek (implementa llamadas al sistema)
– Soporta llamadas ioctl (llamada a la función de control de resultados)
– Tiene un programa en el espacio del usuario para su configuración (ioctl).

Fuente: Apuntes de la materia Sistemas Operativos Multiusuario de la FCA – UNAM