Descripción general
mknod crea archivos con un propósito especial dentro del sistema de archivos. Estos archivos sirven como interfaces para dispositivos o canales de comunicación específicos, en lugar de almacenar datos reales. Los dispositivos de bloque representan dispositivos que transfieren datos en unidades de bloque, como los discos, mientras que los dispositivos de caracteres representan dispositivos que transfieren datos en unidades de caracteres, como terminales o puertos serie. Un FIFO es una tubería con nombre utilizada para intercambiar datos entre dos o más procesos.
Usos principales
- Crear archivos de dispositivo de bloque
- Crear archivos de dispositivo de carácter
- Crear FIFO (tuberías con nombre)
Opciones principales
El comando mknod utiliza opciones para especificar el tipo de archivo especial a crear y argumentos para especificar los números de dispositivo principal (Major) y secundario (Minor) en el caso de archivos de dispositivo.
Especificar el tipo de archivo
Especificar números de dispositivo (solo para dispositivos de bloque/carácter)
Comando generado:
Combina los comandos.
Descripción:
`mknod` Ejecutando el comando.
Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.
Ejemplos de uso
El comando mknod debe ejecutarse principalmente con privilegios de root. Los siguientes ejemplos muestran el uso común.
Crear un FIFO (tubería con nombre)
mknod my_pipe p
Crea un archivo FIFO que se utilizará para la comunicación entre procesos.
Crear un archivo de dispositivo de bloque (ejemplo: disco virtual)
sudo mknod /dev/myblockdev b 8 16
Crea un archivo de dispositivo de bloque con el número principal 8 (discos SCSI/SATA) y el número secundario 16. No funcionará si no está conectado a un dispositivo real.
Crear un archivo de dispositivo de carácter (ejemplo: terminal virtual)
sudo mknod /dev/mychardev c 4 64
Crea un archivo de dispositivo de carácter con el número principal 4 (terminales virtuales) y el número secundario 64. No funcionará si no está conectado a un dispositivo real.
Verificar el archivo especial creado
ls -l my_pipe /dev/myblockdev /dev/mychardev
Utilice el comando ls -l para verificar el tipo y los permisos del archivo especial creado. 'p' indica un FIFO, 'b' un dispositivo de bloque y 'c' un dispositivo de carácter.
Consejos y precauciones
El comando mknod maneja partes importantes del sistema, por lo que se debe usar con extrema precaución.
Permisos
- En la mayoría de los casos, mknod debe ejecutarse con privilegios de root (sudo). Los usuarios normales pueden crear archivos FIFO, pero los archivos de dispositivo requieren privilegios de root por la integridad del sistema.
Comprensión de los números de dispositivo
- Los números de dispositivo principal (Major) y secundario (Minor) son utilizados por el kernel del sistema para identificar un controlador de dispositivo específico y los dispositivos individuales que gestiona ese controlador. El uso de números incorrectos puede provocar un mal funcionamiento del sistema, por lo que debe verificar y utilizar los números correctos. Puede consultar los números de los dispositivos existentes a través de `/proc/devices` o el comando `ls -l /dev`.
Riesgo de corrupción del sistema de archivos
- La creación de archivos de dispositivo para dispositivos inexistentes o el uso de números que entren en conflicto con archivos de dispositivo existentes puede provocar inestabilidad del sistema o pérdida de datos. Debe utilizarse con precaución solo cuando sea absolutamente necesario.