La escritura del controlador de Linux

  
 

Trabajar requiere escribir un controlador de Linux para una de las tarjetas de red de nuestra compañía. Experimente un proceso desde cero y sienta la importancia de la comunicación técnica. Como una poderosa arma para desafiar el monopolio blando, Linux es cada vez más querido por todos. Realmente espero que ella pueda crecer rápidamente en China. Publique la documentación del programa y espero discutir la tecnología y las aplicaciones de Linux con usted para promover la popularización de Linux en China.

Sistema operativo Linux
Escritura de controladores de red 1. Descripción general de controladores de dispositivos del sistema Linux 1.1 Clasificación de controladores de dispositivos Linux 1.2 Escritura de conceptos básicos de los controladores II. La estructura del controlador de red 2.2 El método básico del controlador de red 2.3 La estructura de datos utilizada en el controlador de red 2.4 Compatibilidad con el sistema común III. Problemas que pueden surgir al escribir los controladores de red de Linux 3.1 Interrupción compartida 3.2 Procesamiento cuando el hardware se envía ocupado 3.3 Control de flujo 3.4 Depuración IV. Lecturas adicionales V. Varios


A. Descripción general del controlador del dispositivo del sistema Linux 1.1 Clasificación del controlador del dispositivo Linux Controladores del dispositivo Linux en Linux El código fuente del kernel representa una gran proporción, y la longitud del código fuente está aumentando, principalmente debido al aumento de los controladores. En la actualización en curso del kernel de Linux, la estructura del controlador es relativamente estable. En los cambios de 2.0.xx a 2.2.xx, el controlador se ha cambiado, pero desde el controlador 2.0.xx al puerto 2.2.xx, solo se requiere una pequeña cantidad de trabajo. Los dispositivos del sistema Linux se clasifican en tres tipos: dispositivos de caracteres (dispositivos char), dispositivos de bloque y dispositivos de red. Un dispositivo de caracteres es un dispositivo que no se almacena en caché cuando se accede. Los dispositivos de bloque se almacenan en la memoria caché para admitir lectura y escritura, y los dispositivos de bloque deben poder acceder al acceso aleatorio. Los dispositivos de caracteres no tienen este requisito. Los dispositivos de caracteres típicos incluyen ratones, teclados, puertos serie y similares. El dispositivo de bloque incluye principalmente un dispositivo de disquete de disco duro, un CD-ROM y similares. Se debe instalar un sistema de archivos en el dispositivo de bloque para que se instale en el sistema operativo. Los dispositivos de red hacen procesamiento especializado en Linux. El sistema de red de Linux se basa principalmente en el mecanismo de socket de BSD unix. Una estructura de datos especial (sk_buff) se define entre el sistema y el controlador para la transferencia de datos. El sistema admite el almacenamiento en caché del envío de datos y la recepción de datos, lo que proporciona un mecanismo de control de flujo y brinda soporte para múltiples protocolos.

1.2 Algunos conceptos básicos para escribir controladores Hay algunos conceptos generales sobre qué son los controladores de sistemas operativos. El soporte proporcionado por el sistema operativo al controlador también es aproximadamente el mismo. Aquí hay algunos requisitos básicos para los controladores de dispositivos de red. 1.2.1 Enviar y recibir Esta es la función más básica de un dispositivo de red. Lo que hace una tarjeta de red no es más que enviar y recibir. Entonces, el conductor le dice al sistema dónde está su función de envío, y el sistema llamará a su programa de envío cuando haya datos para enviar. Además, dado que el controlador manipula directamente el hardware, el hardware de la red recibe primero los datos, es decir, el controlador, que es responsable de procesar los datos originales y luego enviarlos al sistema. Aquí, el sistema operativo debe proporcionar dos mecanismos, uno es encontrar la función de envío del controlador y el otro es enviar los datos recibidos al sistema. 1.2.2 Interrupciones Las interrupciones tienen un lugar importante en la arquitectura moderna de computadoras. El sistema operativo debe proporcionar la capacidad para que el conductor responda a las interrupciones. Es común registrar un controlador de interrupciones en el sistema. El sistema operativo llama al controlador del controlador después de que se produce una interrupción de hardware. Linux admite el uso compartido de interrupciones, donde varios dispositivos comparten una interrupción. 1.2.3 Relojes Los relojes se utilizan en muchos lugares al implementar controladores. Por ejemplo, el procesamiento de tiempo de espera en algunos protocolos, el sondeo de hardware sin mecanismo de interrupción, etc. El sistema operativo debe proporcionar un mecanismo de temporización para el conductor. Es común recuperar la función de reloj registrada una vez transcurrido el tiempo predeterminado. En el controlador de red, si el hardware no tiene una función de interrupción, el temporizador puede proporcionar acceso al hardware de una manera de sondeo. O es un tiempo de espera de retransmisión requerido para implementar ciertos protocolos. 2. Controlador de dispositivo de red del sistema Linux 2.1 Estructura del controlador de red Todos los controladores de red de Linux siguen una interfaz común. El diseño se basa en un enfoque orientado a objetos. Un dispositivo es un objeto (estructura de dispositivo) que tiene sus propios datos y métodos en su interior. El primer parámetro del método de cada dispositivo se llama el objeto del dispositivo en sí. De esta manera, puede acceder a sus propios datos (similar a esta referencia del diseño del programa orientado a objetos). Los métodos más básicos de un dispositivo de red son la inicialización, el envío y la recepción. ------------------- ---------------------

Copyright © Conocimiento de Windows All Rights Reserved