GNU/Linux >> Tutoriales Linux >  >> Linux

Conceptos básicos de archivos Unix:Inode, Soft Vs Hard link, archivos de dispositivo, canalizaciones con nombre

Inodos

Cada archivo en un sistema operativo Linux/Unix tiene un inodo asociado con la excepción de Solaris ZFS, que no tiene inodos. Los inodos básicamente funcionan de manera muy similar a un apéndice de un libro. Cada Inode tendrá la siguiente información sobre el archivo.

1. propietario
2. permisos
3. tamaño
4. hora del último acceso
5. tiempo de creación
6. ID de grupo
7. Punteros a bloques de datos asociados con el contenido del archivo
Nota:Sin embargo, Inode no proporciona el nombre del archivo.

Tipos de archivos

Hay básicamente 5 tipos de archivos en cualquier sistema operativo Unix.

1. Regular
2. Directorio
3. Enlaces simbólicos (enlace duro y enlace blando)
4. Archivos de dispositivo (dispositivo especial de carácter y bloque especial)
5. Tuberías con nombre

El carácter en la primera columna del comando ls -l identifica el tipo de archivo.

# cd /
# ls -l bin
lrwxrwxrwx   1   root   root  9  Sep  19  15:41   bin -> ./usr/bin
-   Regular files
d   Directories
l   Symbolic links
b   Block-special device files
c   Character-special device files
p   Named pipes

Archivos y directorios

Los archivos regulares pueden almacenar diferentes tipos de datos y se pueden crear fácilmente usando el comando táctil o el editor vi. Los directorios mantienen la asociación entre archivos y/o directorios y números de inodo.

Enlaces blandos

Como se muestra en el diagrama, los enlaces blandos o los enlaces simbólicos simplemente apuntan a otro archivo. Solo contiene la ruta del archivo al que apunta

1. Método de creación

# touch file1
# ln -s file1 link1
# ls -l
-rw-r--r-- 1   root   root  0  Sep  19  14:41  link1
lrwxrwxrwx 1   root   root  5  Sep  19  15:41  link1 -> file1

2. El tamaño del enlace suave creado en el ejemplo anterior es el número de caracteres en el nombre de la ruta (archivo1), que es 5 (puede ser absoluto o relativo).
3. Si elimina el archivo original (archivo 1), el enlace flexible se vuelve inútil.
4. Los enlaces blandos pueden residir en diferentes sistemas de archivos.

Enlaces duros

Cada archivo usa al menos un enlace duro. Entonces, cuando crea un nuevo archivo, se crea una nueva entrada de directorio que se llama recuento de enlaces. Entonces, cuando crea un nuevo enlace duro a este archivo, el recuento de enlaces aumenta en 1.

1. método de creación

# touch file1
# ls -l
-rw-r--r-- 1  root  root  0  Sep  23  13:19  file1
# ln file1 file2
# ls -l
-rw-r--r--  2  root  root  0  Sep  23  13:19  file1
-rw-r--r--  2  root  root  0  Sep  23  13:19  file2
# ls -li
1282  -rw-r--r--  2  root  0  root  0  Sep  23  13:19  file1
1282  -rw-r--r--  2  root  0  root  0  Sep  23  13:19  file2
# find . -inum 1282
./file1
./file2

2. El recuento de enlaces aumenta en uno cada vez que crea un nuevo enlace fijo al archivo como se muestra arriba.
3. Incluso si elimina cualquiera de los archivos, no tiene ningún efecto en el otro archivo. Solo el recuento de enlaces disminuye
4. Los enlaces duros no pueden cruzar el sistema de archivos.

Archivos de dispositivo

En el sistema operativo UNIX, cualquier dispositivo físico tiene un archivo asociado llamado archivo de dispositivo . Es una interfaz que interactúa con los controladores de dispositivos. A diferencia de otros tipos de archivos, no contienen ningún dato en bloques de datos, sino que utilizan los inodos para almacenar el no mayor y menor para cualquier archivo de dispositivo.

# cd /dev/
# ls -l
crw-r-----  1  root  tty   4,  0  Sep  23  12:51  tty0
brw-rw----- 1  root  disk  8,  1  Sep  23  12:51  sda0

Número de dispositivo principal – Se requiere un controlador de dispositivo específico para acceder a un dispositivo
dispositivo menor no – unidad específica del tipo que controla el controlador del dispositivo.

Por ejemplo, si tiene 10 impresoras HP, el número principal será el controlador de dispositivos de impresora HP y el número menor será la instancia de la impresora (1,2 .. hasta 10).

Los archivos de dispositivo son de 2 tipos
1. Carácter especial
2. Bloque especial

Archivos de dispositivos especiales de personajes 1. El carácter "c" en la primera columna de la salida del comando ls -l identifica un archivo de dispositivo especial de caracteres
2. Se accede a los datos como flujo de datos (carácter por carácter, 1 byte a la vez)
3. Ejemplo:tty, serie, terminales virtuales

# ls -l
crw-r-----  1  root  tty   4,  0  Sep  23  12:51  tty0

Bloquear archivo de dispositivo especial 1. El carácter "b" en la primera columna de la salida del comando ls -l identifica un archivo de dispositivo especial de carácter
2. Se accede a los datos según el tamaño de bloque definido para ese dispositivo
3. Ejemplo:disco duro, CD/DVD

# ls -l
brw-rw-----  1  root  disk   8,  1  Sep  23  12:51  sda0

Conexiones con nombre

– Las canalizaciones con nombre son archivos especiales que se utilizan para las comunicaciones entre procesadores. A diferencia de las canalizaciones normales, puede leer y escribir en las canalizaciones con nombre. Por esta razón, también se denominan FIFO (file in file out).
– mknod() o mkfifio() son ejemplos comunes que utilizan conductos con nombre para acceder al conducto por su nombre.
– Como se muestra en el ejemplo a continuación, 2 procesos (gzip y cat) pueden acceder simultáneamente a la canalización con nombre para escribir y leer datos de ella.

# mkfifo test_pipe
# gzip -9 -c > test_pipe < out.gz
# cat file1 > test_pipe
# ls -l test_pipe
prw-rw-----  1  root  root  0  Sep  23  12:51  test_pipe


Linux
  1. Enlaces duros y enlaces blandos en Linux explicados

  2. Comprender los conceptos básicos de los inodos de UNIX/Linux con ejemplos

  3. RHEL 7 – RHCSA Notas:Cree enlaces duros y blandos.

  4. diferencia entre archivo de dispositivo y controlador de dispositivo

  5. ¿Por qué no puedo crear un vínculo físico desde un archivo de dispositivo que no sea el directorio /dev?

Cómo crear enlaces duros y blandos (enlace simbólico) en sistemas Linux

Explicación de Soft Link y Hard Link en Linux con ejemplos

El comando ln en Linux:crear enlaces blandos y duros

Comando Unix LS:15 ejemplos prácticos

¿Cómo puedes ver el enlace duro real por ls?

Unix/Linux recuperar/recuperar archivos borrados