next up previous contents index
Next: Drivers implementados como módulos. Up: El kernel y sus Previous: Practicando con los módulos.   Índice General   Índice de Materias


Dispositivos

Todo los dispositivos instalados en una máquina pueden ser accedidos a través de un interfaz de ficheros bajo el directorio /dev/ . Allí podemos encontrar los dispositivos conectados a las controladoras IDE (hda, hdb, hdc y hdd), el dsp de la tarjeta de sonido, etc.

Los ficheros asociados a un dispositivo pueden ser de dos tipos, de caracter y de bloque . Si ejecutamos un ls -l /dev, la primera columna nos indica el tipo de dispositivo, ``c'' para dispositivos de caracter y ``b'' para dispositivos de bloque.

Los dispositivos de caracter son accedidos secuencialmente, un caracter cada vez. Algunos ejemplos de dispositivos de caracter son el ratón, el teclado, un terminal de texto, una cinta magnética, null, etc.

Los dispositivos de bloque se caracterizan por ser de acceso aleatorio, la unidad mínima de lectura-escritura no es un caracter, sino un bloque (1KB). Algunos ejemplos de dispositivos de caracter son los discos duros, los disquetes, los CDROMS, etc.

$ ls -l /dev
...
brw-rw----    1 root     disk       3,   0 jul  5  2000 hda
brw-rw----    1 root     disk       3,   1 jul  5  2000 hda1
brw-rw----    1 root     disk       3,   2 jul  5  2000 hda2
...
brw-rw----    1 root     disk       3,  64 jul  5  2000 hdb
...
crw-rw-rw-    1 root     root       1,   3 nov 16 04:09 null
...
crw-rw-rw-    1 root     root       1,   5 nov 16 04:09 zero
...

Las columnas 4 y 5 (separadas por una coma) de la salida del comando anterior nos informan del número mayor y el número menor del dispositivo.

Cuando accedemos a un dispositivo, hemos de utilizar su driver asociado, el número mayor, no es más que un identificador que nos informa de por qué driver es manejado cada dispositivo. Como un mismo driver puede manejar varios dispositivos, es necesario identificar estos con otro número, el número menor. Así, un determinado dispositivo está determinado unívocamente por su combinación ``número mayor-número menor''.

Cuando yo hago un cat mi_fich > /dev/null, el kernel ha de acceder al driver del disco duro donde esté almacenado mi_fich4.2, tendrá que usar el driver ``3'', para el dispositivo con número menor ``2''.

Para escribir en \dev\null el kernel usa el driver ``1'', considerando que hemos accedido al dispositivo con número menor ``3''.

Gracias a la existencia de los números menores, un mismo driver puede implementar diferentes operaciones dependiendo del número menor del dispositivo al que lo esté usando. Por ejemplo el driver de los dispositivos null y zero es el mismo, pero dependiendo de por cual de los dos le llames, se comportará de manera diferente.



Subsecciones
next up previous contents index
Next: Drivers implementados como módulos. Up: El kernel y sus Previous: Practicando con los módulos.   Índice General   Índice de Materias
Alberto Cortés 2001-03-26