Cómo crear archivos de dispositivo en Linux usando el comando mknod

Cómo crear archivos de dispositivo en Linux usando el comando mknod

En Linux, Todo es un archivo, incluso dispositivos físicos como unidades de disco, ROM CD/DVD y disquetes se representan utilizando archivos. Sin embargo, estos archivos no son archivos de datos regulares. En su lugar, estos archivos especiales se llaman archivos del dispositivo y pueden generar o recibir los datos.

Por lo general, todos los archivos especiales están presentes bajo el /desarrollo directorio. Algunos de los ejemplos comunes de archivos especiales son /dev/nulo, /dev/cero, /dev/Full, y /dev/sr0.

Los archivos especiales pueden ser del tipo de personaje o bloqueo. Como su nombre indica, los archivos de personaje procesan un carácter en una vez en la que, a medida que los archivos de bloque, procesan varios caracteres a la vez.

En esta guía avanzada, discutiremos cómo crear un archivo de dispositivo utilizando el mknod dominio. Después de seguir esta guía, los usuarios de Linux podrán trabajar con diferentes tipos de archivos de dispositivo con confianza.

Tabla de contenido

1
  • sintaxis del comando mknod
  • 1. Crear tubería sin nombre en Linux
  • 2. Crear una tubería con nombre en Linux
  • 3. Crear un archivo de dispositivo de caracteres en Linux
  • 4. Crear un archivo de dispositivo de bloque en Linux
  • 5. Crear un archivo de dispositivo con permisos

sintaxis del comando mknod

La sintaxis del mknod El comando es ligeramente diferente a los otros comandos de Linux. La principal diferencia es que necesitamos especificar los números principales y menores mientras creamos un personaje y bloquean los archivos del dispositivo:

$ mknod [opciones] [mayor] [menor] .. 

En la sintaxis anterior, los soportes cuadrados ([]) representar los argumentos opcionales mientras que los soportes angulares () representar los argumentos obligatorios.

En Linux, el número principal se utiliza para especificar el controlador del dispositivo que debe usarse. Este número se asigna al registrar un controlador de dispositivo.

De manera similar, el número menor se usa para especificar el dispositivo real. Podemos encontrar los números mayores y menores reservados en la documentación del kernel de Linux.

1. Crear tubería sin nombre en Linux

En Linux, usamos tuberías para habilitar la comunicación entre procesos. En la carcasa, la tubería se representa utilizando la línea vertical (|). Lee la salida del proceso anterior y lo envía como la entrada al siguiente proceso.

Entendamos esto con un ejemplo simple:

$ Echo "Tecmint.com "| wc -c 

En este ejemplo, estamos utilizando la tubería para leer la salida del comando echo y enviarla como la entrada al comando wc para procesamiento adicional.

Aquí, hemos usado la línea vertical (|) Para crear una tubería. Sin embargo, esto crea una tubería sin nombre y su alcance se limita solo al comando actual. En el siguiente ejemplo, veremos cómo crear una tubería con nombre.

2. Crear una tubería con nombre en Linux

Podemos usar el mknod Comandar para crear una tubería con nombre. La tubería nombrada reside en el sistema de archivos al igual que cualquier otro archivo regular. Sin embargo, su objetivo principal es permitir la comunicación entre procesos entre procesos no relacionados.

Primero, especifiquemos el tipo de dispositivo como pag Para crear una tubería con nombre:

$ mknod /tmp /named-pipe P $ ls -l /tmp /named-tuipe 

Ahora, intentemos leer el archivo:

$ Cat /TMP /Named-Pipe 

Aquí, podemos ver que el comando del gato está esperando infinitamente:

Lea el archivo de tubería con nombre

A continuación, abramos otro terminal y escribamos algunos datos al /TMP/Pipe con nombre archivo:

$ Echo "Tecmint.com "> /tmp /nombre de pipe 

Finalmente, dirígete al primer terminal para ver el resultado:

Ver archivo de tubería con nombre

Aquí, podemos ver que el eco y gato Los comandos pueden comunicarse usando la tubería con nombre.

3. Crear un archivo de dispositivo de caracteres en Linux

De manera similar, podemos usar el tipo de dispositivo como C Para crear un dispositivo de personaje. Sin embargo, debemos tener que usar los números principales y menores mientras creamos un dispositivo de caracteres.

Usemos el comando ls para encontrar los números principales y menores del /dev/Full dispositivo:

$ ls -l /dev /full 
Encontrar el archivo mayor y número menor

En la salida anterior, el par de números separados por comas i.mi. 1, 7 representar los números mayores y menores respectivamente.

En Linux, el /dev/Full El dispositivo siempre devuelve el No queda espacio en el error del dispositivo. Para comprender esto, escribamos algunos datos en este dispositivo:

$ Echo "Tecmint.com "> /dev /full 
Escribir datos en el archivo del dispositivo

Ahora, usemos el mknod comandar crear un nuevo dispositivo que se comporte de la misma manera que /dev/Full dispositivo:

$ sudo mknod /tmp /dispositivo completo c 1 7 

A continuación, cambiemos los permisos del archivo:

$ sudo chmod 666 /tmp /dispositivo completo $ ls -l /tmp /de dispositivo completo 

Finalmente, escriba algunos datos en el dispositivo recién creado:

$ Echo "TecMint"> /TMP /Full-Device 
Crear un nuevo archivo de dispositivo

Es importante tener en cuenta que el dispositivo de carácter recién creado se comporta como el /dev/Full dispositivo debido a los mismos números principales y menores.

4. Crear un archivo de dispositivo de bloque en Linux

Además de esto, podemos especificar el tipo de dispositivo como b Para crear un dispositivo de bloque. Para crear un dispositivo de bloque, debemos tener que usar los números principales y menores.

En Linux, /dev/sr0 representa el CD/DVD ROM dispositivo. Ahora, creemos un nuevo dispositivo de bloque que se comporte igual que /dev/sr0.

Primero, descubramos los números principales y menores del /dev/sr0:

$ ls -l /dev /sr0 
Verifique el archivo del dispositivo números mayores y menores

En la salida anterior, podemos ver que sus números principales y menores son 11 y 0 respectivamente.

Ahora, creemos un nuevo dispositivo de bloque con los mismos números principales y menores:

$ sudo Mknod /TMP /DVD-ROM B 11 0 $ LS -L /TMP /DVD-ROM 
Crear un nuevo dispositivo de bloque

A continuación, montemos la imagen ISO de la ROM CD/DVD al /MNT directorio y verifique que la operación de montaje tenga éxito:

$ sudo monte /tmp /dvd -rom /mnt /$ ls -1 /mnt / 
Monte el nuevo dispositivo de bloque

En este ejemplo, podemos ver que el /TMP/DVD-ROM El dispositivo de bloque puede acceder a la imagen ISO desde la ROM CD/DVD.

5. Crear un archivo de dispositivo con permisos

A veces, necesitamos modificar el permiso de acceso del archivo del dispositivo antes de usarlo. En tales casos, tenemos que usar el chmod dominio. Sin embargo, podemos lograr el mismo resultado utilizando el mknod comando en lugar de usar dos comandos separados.

Para entender esto, usemos el -metro opción para establecer permisos de acceso mientras crea una tubería con nombre:

$ sudo mknod -m 444 /tmp /pipe-with-permissions p 

Ahora, verifiquemos que los permisos se hayan establecido correctamente:

$ LS -L /TMP /Pipe-with-Permissions 
Crear archivo de dispositivo con permisos

En este ejemplo, usamos el -metro Opción con la tubería nombrada. Sin embargo, también podemos usarlo con los dispositivos de carácter y bloqueo.

¿Sabes de algún otro mejor ejemplo de mknod Comando en Linux? Háganos saber sus puntos de vista en los comentarios a continuación.