Explicación de “Todo es un archivo” y tipos de archivos en Linux

Explicación de “Todo es un archivo” y tipos de archivos en Linux

Si es nuevo en Linux o lo ha usado durante algunos meses, debe haber escuchado o leído declaraciones como “ En Linux, todo es un archivo. .

 Todo es un archivo y tipos de archivos en Linux  Todo es un archivo y tipos de archivos en Linux Todo es un archivo y tipos de archivos en Linux

Lea también: 5 comandos útiles para administrar tipos de archivos de Linux

Eso es cierto, aunque es solo un concepto de generalización, en Unix y sus derivados como Linux, todo se considera un archivo. Si algo no es un archivo, entonces debe estar ejecutándose como un proceso en el sistema.

Para entender esto, tome por ejemplo la cantidad de espacio en su directorio raíz (/) que siempre consumen diferentes tipos de archivos de Linux. Cuando crea un archivo o transfiere un archivo a su sistema, ocupa algo de espacio en el disco físico y se considera que está en un formato específico (tipo de archivo).

Y tampoco el sistema Linux diferenciar entre archivos y directorios, pero los directorios hacen un trabajo importante, que es almacenar otros archivos en grupos en una jerarquía para una fácil ubicación. Todos sus componentes de hardware están representados como archivos y el sistema se comunica con ellos usando estos archivos.

La idea es una descripción importante de una gran propiedad de Linux, donde los recursos de entrada/salida como sus documentos, directorios ( carpetas en Mac OS X y Windows), teclado, monitor, discos duros, medios extraíbles, impresoras, módems, terminales virtuales y también la comunicación entre procesos y en red son flujos de bytes definidos por el espacio del sistema de archivos.

freestar. config.enabled_slots.push

Una ventaja notable de que todo sea un archivo es que se puede usar el mismo conjunto de herramientas, utilidades y API de Linux en el recursos de entrada/salida.

Aunque todo en Linux es un archivo, hay ciertos archivos especiales que son más que un simple archivo, por ejemplo, sockets y canalizaciones con nombre.

¿Cuáles son las diferentes tipos de archivos en Linux?

En Linux hay básicamente tres tipos de archivos:

  1. Archivos ordinarios/regulares
  2. Archivos especiales
  3. Directorios

Archivos ordinarios/regulares

Estos son archivos de datos que contienen texto, datos o instrucciones del programa y son el tipo más común de archivos que puede esperar encontrar en un sistema Linux e incluyen:

  1. Archivos legibles
  2. Archivos binarios
  3. Archivos de imagen
  4. Archivos comprimidos, etc.

Archivos especiales

Los archivos especiales incluyen lo siguiente:

Archivos de bloque. Estos son archivos de dispositivo que brindan acceso en búfer a los componentes de hardware del sistema. Proporcionan un método de comunicación con los controladores de dispositivos a través del sistema de archivos.

Un aspecto importante sobre los archivos de bloque. es que pueden transferir un gran bloque de datos e información en un momento dado .

Listado de sockets de archivos de bloque en un directorio:

# ls-l/dev | grep “^ b” Salida de muestra brw-rw—-1 disco raíz 7, 0 18 de mayo 10:26 loop0 brw-rw—-1 disco raíz 7, 1 de mayo 18 10:26 loop1 brw-rw—1 disco raíz 7, 2 18 de mayo 10:26 loop2 brw-rw—-1 disco raíz 7, 3 18 de mayo 10:26 loop3 brw-rw—-1 disco raíz 7, 4 18 de mayo 10: 26 loop4 brw-rw—-1 disco raíz 7, 5 de mayo 18 10:26 loop5 brw-rw—-1 disco raíz 7, 6 de mayo 18 10:26 loop6 brw-rw—-1 disco raíz 7, 7 18 de mayo 10:26 loop7 brw-rw—-1 disco raíz 1, 0 18 de mayo 10:26 ram0 brw-rw—-1 disco raíz 1, 1 de mayo 18 10:26 ram1 brw-rw—-1 disco raíz 1, 10 de mayo 18 10:26 ram10 brw-rw—-1 disco raíz 1, 11 de mayo 18 10:26 ram11 brw-rw—-1 disco raíz 1, 12 de mayo 18 10:26 ram12 brw-rw—-1 disco raíz 1, 13 de mayo 18 10:26 ram13 brw-rw—-1 disco raíz 1, 14 de mayo 18 10:26 ram14 brw-rw—-1 disco raíz 1, 15 de mayo 18 10:26 ram15 brw-rw—-1 disco raíz 1, 2 de mayo 18 10: 26 ram2 brw-rw—-1 disco raíz 1, 3 de mayo 18 10:26 ram3 brw-rw—-1 disco raíz 1, 4 de mayo 18 10:26 ram4 brw-rw—-1 disco raíz 1, 5 18 de mayo 10:26 ram5 …

Archivos de caracteres. también son archivos de dispositivo que proporcionan acceso en serie sin búfer a los componentes de hardware del sistema. Funcionan proporcionando una forma de comunicación con los dispositivos mediante la transferencia de datos de un carácter a la vez.

Listado de sockets de archivos de caracteres en un directorio:

# ls-l/dev | grep “^ c” Salida de muestra crw——-1 root root 10, 235 18 de mayo 15:54 autofs crw——-1 root root 10, 234 18 de mayo 15:54 btrfs-control crw——-1 raíz raíz 5, 1 de mayo 18 10:26 consola crw——-1 raíz raíz 10, 60 de mayo 18 10:26 cpu_dma_latency crw——-1 raíz raíz 10, 203 18 de mayo 15:54 cuse crw——-1 root root 10, 61 18 de mayo 10:26 ecryptfs crw-rw—-1 root video 29, 0 18 de mayo 10:26 fb0 crw-rw-rw-1 root root 1, 7 18 de mayo 10:26 full crw-rw-rw-1 root root 10, 229 18 de mayo 10:26 fusible crw——-1 root root 251, 0 18 de mayo 10:27 hidraw0 crw——-1 raíz raíz 10, 228 18 de mayo 10:26 hpet crw-r-r–1 raíz raíz 1, 11 de mayo 18 10:26 kmsg crw-rw—-+ 1 raíz raíz 10, 232 18 de mayo 10:26 kvm crw——-1 raíz raíz 10, 237 18 de mayo 10:26 control de bucle crw——-1 raíz raíz 10, 227 18 de mayo 10:26 mcelog crw——-1 root root 249, 0 18 de mayo 10:27 media0 crw——-1 root r oot 250, 0 18 de mayo 10:26 mei0 crw-r—–1 root kmem 1, 1 18 de mayo 10:26 mem crw——-1 root root 10, 57 18 de mayo 10:26 memory_bandwidth crw——-1 root root 10, 59 mayo 18 10:26 network_latency crw——-1 root root 10, 58 mayo 18 10:26 network_throughput crw-rw-rw-1 root root 1, 3 18 de mayo 10:26 null crw-r—–1 root kmem 1, 4 18 de mayo 10:26 port crw——-1 root root 108, 0 18 de mayo 10:26 ppp crw——-1 raíz raíz 10, 1 de mayo 18 10:26 psaux crw-rw-rw-1 raíz tty 5, 2 de mayo 18 17:40 ptmx crw-rw-rw-1 raíz raíz 1, 8 de mayo 18 10:26 aleatorio

Archivos de enlace simbólico. un enlace simbólico es una referencia a otro archivo en el sistema. Por lo tanto, los archivos de enlace simbólico son archivos que apuntan a otros archivos y pueden ser directorios o archivos normales.

Listado de sockets de enlace simbólico en un directorio:

# ls-l/dev/| grep “^ l” Salida de muestra lrwxrwxrwx 1 raíz raíz 3 18 de mayo 10:26 cdrom-> sr0 lrwxrwxrwx 1 raíz raíz 11 18 de mayo 15:54 núcleo->/proc/kcore lrwxrwxrwx 1 raíz raíz 13 18 de mayo 15:54 fd->/proc/self/fd lrwxrwxrwx 1 raíz raíz 4 18 de mayo 10:26 rtc-> rtc0 lrwxrwxrwx 1 raíz raíz 8 18 de mayo 10:26 shm->/run/shm lrwxrwxrwx 1 raíz raíz 15 18 de mayo 15:54 stderr->/proc/self/fd/2 lrwxrwxrwx 1 raíz raíz 15 18 de mayo 15:54 stdin->/proc/self/fd/0 lrwxrwxrwx 1 raíz raíz 15 18 de mayo 15:54 stdout->/proc/self/fd/1

Puede crear enlaces simbólicos utilizando la utilidad ln en Linux como en el ejemplo siguiente.

# touch file1.txt # ln-s file1.txt/home/tecmint/file1.txt [crear enlace simbólico] # ls-l/inicio/tecmint/| grep “^ l” [Lista de enlaces simbólicos]

En el ejemplo anterior, creé un archivo llamado file1.txt en el directorio /tmp. luego creé el enlace simbólico, /home/tecmint/file1.txt. para apuntar a /tmp/file1.txt.

Canalizaciones o canalizaciones con nombre. estos son archivos que permiten comunicación entre procesos conectando la salida de un proceso a la entrada de otro.

Una tubería con nombre es en realidad un archivo que utilizan dos procesos para comunicarse con cada uno y actúa como una tubería de Linux.

Listado de conectores de tuberías en un directorio:

# ls-l | grep “^ p” Salida de muestra prw-rw-r–1 tecmint tecmint 0 18 de mayo 17:47 pipe1 prw-rw-r–1 tecmint tecmint 0 18 de mayo 17:47 pipe2 prw-rw-r–1 tecmint tecmint 0 18 de mayo 17:47 pipe3 prw-rw-r–1 tecmint tecmint 0 18 de mayo 17:47 pipe4 prw-rw-r–1 tecmint tecmint 0 18 de mayo 17:47 pipe5

Puede utilizar el mkfifo. para crear una tubería con nombre en Linux de la siguiente manera.

# mkfifo pipe1 # echo “Esto se llama pipe1″> pipe1

En el ejemplo anterior, creé una tubería con nombre llamada pipe1, luego le pasé algunos datos usando el comando echo, después de eso el shell se volvió no interactivo mientras procesaba la entrada.

Luego abrí otro shell y ejecuté el otro comando para imprimir lo que se pasó a pipe.

# while read line; do echo “Esto fue pasado-‘$ line'”; done Archivos de socket. estos son archivos que proporcionan un medio de comunicación entre procesos, pero pueden transferir datos e información entre procesos que se ejecutan en diferentes entornos.

Esto significa que los sockets proporcionan transferencia de datos e información entre procesos que se ejecutan en diferentes máquinas en una red.

Un ejemplo para mostrar el trabajo de los sockets sería un navegador web que se conecta a un servidor web.

# ls-l/dev/| grep “^ s” Salida de muestra srw-rw-rw-1 root root 0 18 de mayo 10:26 log

Este es un ejemplo de un socket creado en C. usando el sistema socket () llamar.

int socket_desc = socket (AF_INET, SOCK_STREAM, 0);

En lo anterior:

  1. AF_INET es la familia de direcciones (IPv4)
  2. SOCK_STREAM es el tipo (la conexión está orientada al protocolo TCP)
  3. 0 es el protocolo (Protocolo IP)

Para hacer referencia al archivo de socket, use el socket_desc, que es el mismo que el descriptor de archivo, y use las llamadas al sistema read () y write () para leer y escribir desde el socket respectivamente.

Directorios

Estos son archivos especiales que almacenan tanto archivos ordinarios como otros especiales y están organizados en el sistema de archivos de Linux en una jerarquía comenzando desde el directorio raíz (/).

Listado de sockets en un directorio:

# ls-l/| grep “^ d” Salida de muestra drwxr-xr-x 2 root root 4096 5 de mayo 15:49 bin drwxr-xr-x 4 root root 4096 5 de mayo 15:58 boot drwxr-xr-x 2 root root 4096 11 de abril de 2015 cdrom drwxr-xr-x 17 root root 4400 18 de mayo 10:27 dev drwxr-xr-x 168 root root 12288 18 de mayo 10:28 etc drwxr-xr-x 3 root root 4096 11 de abril de 2015 inicio drwxr-xr-x 25 root root 4096 5 de mayo 15:44 lib drwxr-xr-x 2 root root 4096 5 de mayo 15:44 lib64 drwx——2 root root 16384 11 de abril de 2015 perdido + encontrado drwxr-xr-x 3 root root 4096 de abril 10 2015 media drwxr-xr-x 3 root root 4096 23 de febrero 17:54 mnt drwxr-xr-x 16 root root 4096 30 de abril 16:01 opt dr-xr-xr-x 223 root root 0 18 de mayo 15:54 proc drwx——19 root root 4096 9 de abril 11:12 root drwxr-xr-x 27 root root 920 18 de mayo 10:54 ejecutar drwxr-xr-x 2 root root 12288 5 de mayo 15:57 sbin drwxr-xr-x 2 root root 4096 1 de diciembre de 2014 srv dr-xr-xr-x 13 root root 0 18 de mayo 15:54 sys drwxrwxrwt 13 root root 4096 18 de mayo 17:55 tmp drwxr-xr-x 11 root root 4096 31 de marzo 16:00 usr drwxr-xr-x 12 root root 4096 12 de noviembre de 2015 var

Puede crear un directorio usando el comando mkdir.

# mkdir-m 1666 tecmint .com # mkdir-m 1666 news.tecmint.com # mkdir-m 1775 linuxsay.com

Resumen

Ahora debería tener una comprensión clara de por qué todo en Linux es un archivo y los diferentes tipos de archivos que pueden salir en su sistema Linux.

Puede agregar más a esto leyendo más sobre los tipos de archivos individuales y se crean. Espero que esta guía le resulte útil y, si tiene alguna pregunta e información adicional que le gustaría compartir, deje un comentario y hablaremos más.

Leave a comment

Your email address will not be published. Required fields are marked *