You are on page 1of 4

Actividad 20: Archivos especiales de dispositivos. Tipos y creacin.

Archivos de dispositivos -----------------------los archivos de dispositivos son un mecanismo de comunicacin entre los elementos que forman parte del computador ("hardware perifrico) y el sistema operativo. No son ficheros en sentido estricto, pero aparecen como ficheros desde el punto de vista de los programas. Es posible leer de ellos, escribir en ellos, etctera. Cuando se accede a uno de estos ficheros, el ncleo reconoce la peticin de entrada salida y la pasa a un controlador (driver) que realiza alguna operacin, como leer datos del puerto serie o enviar datos al dispositivo nulo. Los archivos de dispositivos suponen una va de comunicacin con los recursos del sistema, sin obligar a los programas a conocer cada detalle de funcionamiento de un aparato en concreto. En microLINUX los controladores se alojan en el mismo ncleo. Los ficheros de dispositivos aparecen en "/dev". Para cada dispositivo debe haber una entrada en "/dev". Por ejemplo, "/dev/ttyS0" corresponde al primer puerto serie, conocido como COM1 en MS-DOS. Pueden existir falsos dispositivos en "/dev" que no corresponden realmente a ningn elemento real. Por ejemplo "/del/null" acta como un sumidero de octetos. Cualquier solicitud de escritura sobre "/dev/null" tendr como consecuencia que los datos sean ignorados y no se genere ninguna seal de error. Al listar el contenido de "/dev" la pantalla presenta algo como esto: #ls -l /dev brw------- 1 root root 2, 0 Jun 2 11:00 fd0 ... crw-r----- 1 root root 4, 65 Jun 2 11:00 ttyS1 --------- ---------------- ------ -------------- ----^ ^ ^ ^ ^ ^ | | | | | | | | | | | +-- Nombre | | | | | | | | | +-- Fecha/hora de creacin | | | | | | | +-- N mayor y menor del dispositivo | | | | | +-- n de referencias al fichero y pertenencia a | | usuario y grupo | +-- Permisos del fichero | +-- tipo de dispositivo: b-> bloque (lee y escribe bloques de datos) y c-> carcter (lee y escribe bytes) Los permisos son importantes en los dispositivos porque ayudan a limitar y controlar quin puede usar un cierto dispositivo y cmo. Por lo general hay ciertos dispositivos a los que es costumbre restringir el acceso. Especialmente en lo tocante a unidades de disco y particiones. Hay que asegurarse de establecer los permisos adecuados para los

nuevos dispositivos creados. Es posible tener enlaces simblicos a ficheros de "/dev" para facilitar el acceso a ciertos dispositivos empleando ms de un nombre. Al borrar un fichero especial no se retira el mdulo controlador del ncleo. As mismo, por aadir un archivo especial de dispositivo a "/dev" no se carga el mdulo controlador del ncleo. Nmero mayor y menor de un dispositivo -------------------------------------Estos nmeros identifican al dispositivo ante el Sistema Operativo cuando se realiza una peticin de entrada / salida. El nmero mayor suele representar a un controlador del ncleo mientras que el menor especifica uno de los posibles dispositivos que maneja el controlador. Cuando se realiza una peticin de escritura o bien de lectura, el ncleo identifica el mdulo que debe atenderle mediante el nmero mayor y con el nmero menor se elige el dispositivo concreto al que va dirigida la peticin. Algunas veces el nmero menor se emplea para acceder a funciones concretas de un dispositivo. Aadir nuevos ficheros de dispositivos -------------------------------------Cuando en un sistema LINUX se actualiza el ncleo o se aaden nuevos controladores puede ser necesario incluir un nuevo archivo especial de dispositivo mediante el comando 'mknod': # mknod -m permisos nombre tipo n_mayor n_menor Donde: -m permisos: Es un argumento opcional (por defecto rw) que establece los permisos del nuevo archivo. nombre: Es el nombre completo del fichero especial a crear, como "/dev/cdrom". tipo : Es 'c' para un dispositivo de caracteres o 'b' para uno por bloques. mayor: Es el nmero mayor del dispositivo. menor: Es el nmero menor de dispositivo. Para conocer los parmetros adecuados de los dispositivos a instalar, es conveniente saber los valores que admite el kernel. En la mayora de distribuciones de LINUX la informacin se guarda en "/usr/src/linux/Documentation/devices.txt". Este fichero slo existe si fueron instalados los "fuentes" del kernel. Un ejemplo de dispositivos accesibles en microLINUX son los relacionados con las unidades de almacenamiento masivo: Nombre de dispositivo Tipo Mayor Menor ---------------------------------------------------- ------ ----- ----Unidades Enteras

/dev/hda /dev/hdb /dev/hdc /dev/hdd

(hda: (hdb: (hdc: (hdd:

Hard Hard Hard Hard

Disc Disc Disc Disc

A) B) C) D)

maestro esclavo maestro esclavo

IDE0 IDE0 IDE1 IDE1

(o (o (o (o

CD-ROM) CD-ROM) CD-ROM) CD-ROM)

Bloque Bloque Bloque Bloque

3 3 22 22

0 6 0 64

Y cada una de sus particiones /dev/hda1 /dev/hda2 /dev/hda3 /dev/hda4 /dev/hdb1 /dev/hdb2 /dev/hdb3 /dev/hdb4 /dev/hdc1 /dev/hdc2 /dev/hdc3 /dev/hdc4 /dev/hdd1 /dev/hdd2 /dev/hdd3 /dev/hdd4 Particin1 Particin2 Particin3 Particin4 Particin1 Particin2 Particin3 Particin4 Particin1 Particin2 Particin3 Particin4 Particin1 Particin2 Particin3 Particin4 primaria primaria primaria primaria primaria primaria primaria primaria primaria primaria primaria primaria primaria primaria primaria primaria de de de de de de de de de de de de de de de de la la la la la la la la la la la la la la la la unidad unidad unidad unidad unidad unidad unidad unidad unidad unidad unidad unidad unidad unidad unidad unidad hda hda hda hda hdb hdb hdb hdb hdc hdc hdc hdc hdd hdd hdd hdd Bloque Bloque Bloque Bloque Bloque Bloque Bloque Bloque Bloque Bloque Bloque Bloque Bloque Bloque Bloque Bloque 3 3 3 3 3 3 3 3 22 22 22 22 22 22 22 22 1 2 3 4 65 66 67 68 1 2 3 4 65 66 67 68

Si el usuario de microLINUX desea crea un fichero de dispositivo que "conecte" con el controlador del kernel, primero debe conocer cmo denomin al dispositivo cuando fue detectado durante el arranque. Por ejemplo con estas consultas: #dmesg #dmesg #dmesg #dmesg | | | | grep grep grep grep hda hdb hdc hdd

Si en la respuesta obtenida aparece algo como: hda: 6346368 sectors (3249 MB) w/256KiB Cache, CHS=787/128/63 hda: hda1 hda2 <--------------------------- Particiones reconocidas. Segn este mensaje el kernel reconoce 2 particiones primarias en el disco duro maestro de IDE0 (las lgicas son mostradas entre parntesis). Por lo tanto es posible crear los ficheros de dispositivos "/dev/hda1" y "/dev/hda2" para que microLINUX tenga capacidad de acceso a las particiones: #mknod /dev/hda1 b 3 1 #mknod /dev/hda2 b 3 2 Otra forma de obtener esta informacin es consultando el fichero "/proc/partitions" donde el kernel almacena una relacin de las particiones del sistema, su tamao y nmeros mayor y menor: #cat /proc/partitions major minor #blocks name 3 3 0 1 3173184 hda 253984 hda1

3 # _ T A R E A S -----------

2919168 hda2

1 Ver las caractersticas de los ficheros de dispositivos instalados en microLINUX con "ls -l /dev". 2 Localizar segn los procedimientos explicados en la actividad las particiones del disco duro que puede manejar el kernel. 3 Con los valores anteriores crear los ficheros de dispositivos asociados. <->

You might also like