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. propietario2. 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