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

- 3840
- 771
- Sr. Eduardo Menchaca
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:

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:

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

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

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

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

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

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 /

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

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.
- « Las principales distribuciones de Linux para estudiantes en 2023
- Cómo obtener alertas por correo electrónico de inicio de sesión de Root y User SSH »