iiepci

driver linux

espacios de memoria

El driver mapea los espacios de direcciones utilizados por el hardware de la tarjeta dentro del sistema de archivos reservados para dispositivos (/dev). De esta manera se puede acceder a los espacios de direcciones del PCI como si fueran archivos.

El driver es ejecutado en lo que se llama espacio de kernel, mientras que las aplicaciones corren en el espacio de usuario.

Esta existencia de diferentes espacios de ejecución implica que la transferencia de datos entre las aplicaciones de usuario y el hardware deba ser un proceso de dos pasos.

Primero los datos deben transferirse del espacio de usuario al espacio de kernel, previa reserva de espacio suficiente de memoria de kernel por parte del módulo. Luego que los datos fueron almacenados en este buffer temporal en espacio de kernel, pueden entonces ser transferidos al hardware por parte del código del módulo, que se ejecuta en espacio de kernel.