Un controlador de dispositivo Linux es significativamente diferente de su homólogo de Windows. Controladores de Linux se crean solamente para proporcionar una interfaz para el hardware . No hacen ninguna hipótesis sobre cómo se utilizará el hardware. Además, por lo general no ofrecen ningún tipo de interfaces gráficas para el hardware. La mayoría de los controladores de hardware soportado Linux son parte del árbol de fuentes del núcleo Linux y son mantenidos por la comunidad de desarrollo de Linux. Función
función A del controlador de dispositivo es facilitar el acceso a una pieza de hardware. En Windows , esto se hace a través de la interfaz de aplicación binaria ( ABI ) se pide que Microsoft proporciona al desarrollador de controladores . El controlador de dispositivo para Windows se proporciona a continuación para el usuario como una aplicación binaria.
En Linux , no hay ABI o interfaz de programación de aplicaciones (API ) para los controladores de dispositivos. En cambio, el núcleo de Linux proporciona una interfaz de espacio de usuario para aplicaciones estables . Los controladores de dispositivos se crean como módulos del kernel de Linux que ocultan los detalles de cómo funciona el dispositivo. Estos módulos se ajustan a un conjunto de llamadas estandarizadas que son independientes de los propios controladores de dispositivos.
Características
Una de las principales características de los controladores de dispositivos de Linux es que son modular . Ellos pueden ser y son construidos por separado del resto del núcleo. Esto significa que cada módulo (o controlador ) puede utilizarse o eliminarse del núcleo en tiempo de ejecución en función de lo que es el hardware disponible.
Conductores también se construyen con la distinción entre el mecanismo y la política . Mecanismo es lo que se proporcionan capacidades , y la política es cómo las capacidades se van a utilizar . El controlador de dispositivo Linux es la política de libre . El conductor accede al hardware, pero no le dice al usuario cómo puede o debe ser utilizado.
Clases de dispositivo
El kernel Linux separa los dispositivos de hardware en tres principales tipos: dispositivos de caracteres , dispositivos de bloque, y las interfaces de red. Un dispositivo de caracteres se puede acceder como una secuencia de caracteres o bytes , de forma similar a un archivo . Estos dispositivos incluyen la consola de texto , el teclado y los puertos serie.
Dispositivo Un bloque es un dispositivo que sólo se puede acceder en bloques de datos ( por lo general un kilobyte u otra potencia de 2 ) y puede albergar un sistema de archivos , como una unidad de disco. Linux permite a las aplicaciones de lectura y escritura para bloquear dispositivos como un dispositivo de caracteres , por lo que se gestionan de una manera especial por el kernel.
Un dispositivo de red permite el intercambio de datos con otros ordenadores . Estos dispositivos son por lo general de hardware , sino que también pueden ser puramente de software . El núcleo tiene una forma diferente de comunicarse con los dispositivos de red que con los dispositivos de carácter o de bloque. En lugar de leer y escribir en el dispositivo, éste se encarga de la transmisión de paquetes .
Conductor Licencias
El kernel Linux está licenciado bajo la Licencia Pública General de GNU ( GPL ), que significa que es de código abierto y de libre acceso para cualquier persona para descargar, modificar y redistribuir el tiempo que el código redistribuido también está disponible bajo la licencia GPL. Sin embargo, esto no se aplica a los controladores de dispositivos de Linux.
Dado que el núcleo es modular , el controlador de dispositivo no se convierta en parte del kernel. En su lugar , se accede al núcleo a través de una interfaz bien definida . Si el controlador de dispositivo sólo utiliza esta interfaz de módulo, no tiene que ser licenciado bajo la GPL. Sin embargo, si el controlador de dispositivo utiliza realmente parte del código del kernel para que funcione , en lugar de la interfaz disponible , debe ser cubierto por la GPL.
Fusión con el Kernel
< br >
vez un controlador de dispositivo se acepta como " trabajo " por el equipo de desarrollo del núcleo Linux, que pasará a formar parte del código fuente del kernel Linux línea principal. Eso significa que se mantiene al día a través de los cambios posteriores del kernel , trabajará con todas las unidades centrales de procesamiento ( CPU) soportados por Linux, y será corregido y mejorado por la comunidad de desarrollo de Linux.
La fuente del kernel árbol tiene módulos para la mayor parte de el hardware soportado por Linux. Por eso , siempre y cuando usted está utilizando el hardware soportado por Linux , puede cargar el sistema operativo y tener su trabajo de hardware sin necesidad de instalar ningún controlador adicional.