Archivos en UNIX: tipos, estructura, jerarquía

Archivos en UNIX: tipos, estructura, jerarquía

En los sistemas UNIX cualquier elemento se representa en forma de archivos. Todos los archivos están ordenados en una única estructura jerárquica en la que la base, denominada raíz, se escribe "/".

¿Cuáles son los tipos de archivos en UNIX?

Los sistemas UNIX definen diferentes tipos de archivos:

  • Los archivos físicos, que son los que se introducen en el disco duro. Este es un archivo en el sentido generalmente entendido de la palabra;
  • Los directorios son archivos (nodos) de la estructura jerárquica capaces de contener archivos u otros directorios. Un directorio contiene al menos un directorio principal (que se escribe ..), que se relaciona con el directorio del nivel superior, y un directorio actual (que se escribe .), es decir, el directorio en sí mismo;
  • Los enlaces son archivos especiales que permiten que varios nombres (enlaces) se asocien a un único e idéntico archivo. Este sistema hace posible que se puedan tener varias instancias de un mismo archivo en diversos lugares de la estructura jerárquica sin necesidad de copiarlos. Esto ayuda a asegurar la coherencia y ahorra espacio en el disco. Existen dos tipos de enlaces:
    • Enlaces simbólicos, que representan a los punteros virtuales (accesos directos) de los archivos reales. En el caso de que se elimine un enlace simbólico, no se elimina el archivo al que indica. Los enlaces simbólicos se crean utilizando comandos In -s de acuerdo con la siguiente sintaxis:
      ln -s name-of-real-file nombre-del-enlace-simbólico
    • Enlaces físicos (también denominados enlaces rígidos), representan un nombre alternativo para un archivo. Así, cuando un archivo tiene dos enlaces físicos, la eliminación de uno u otro de estos enlaces no implica la eliminación del archivo. Más específicamente, mientras haya quedado al menos un enlace físico, el archivo no se elimina. Por otro lado, cuando se eliminan todos los enlaces físicos de un mismo archivo, también se elimina dicho archivo. Sin embargo, debemos advertir que sólo es posible crear enlaces físicos dentro de un único e idéntico sistema de archivos. Los enlaces físicos se crean utilizando comandos In (con la opción del comando n) de acuerdo a la siguiente sintaxis:
      ln nombre-del-archivo-real nombre-del-enlace-físico
  • Los archivos virtuales no existen realmente ya que sólo existen en la memoria. Estos archivos, ubicados especialmente en el directorio /proc, contienen información sobre el sistema (procesador, memoria, discos rígidos, procesos, etc.);
  • Los archivos de dispositivo, ubicados en el directorio /dev/, se relacionan con los dispositivos del sistema. En un primer momento, este concepto puede resultar desconcertante para un usuario nuevo.

¿Qué son los puntos de montaje?

Los archivos en un sistema UNIX están organizados en una única estructura jerárquica. Sin embargo, es posible tener varias particiones utilizando un mecanismo denominado montaje, el cual hace posible la conexión entre una partición y un directorio en la estructura jerárquica principal. Por eso, el hecho de montar una partición en el directorio /mnt/partition hace que todos los archivos en la partición sean accesibles para este directorio, que se denomina: "punto de montaje".

¿Cómo es la jerarquía de archivos en Unix?

Para asegurar compatibilidad y portabilidad, los sistemas UNIX cumplen con el estándar FHS (File Hierarchy Standard (Estándar de Jerarquía de Archivos)). La jerarquía básica en un sistema Unix es la siguiente:

/       La raíz, que contiene los directorios principales.
  /bin     Contiene los ejecutables necesarios para el sistema, utilizados por todos los usuarios.
  /boot     Contiene los archivos de carga para el kernel, incluyendo el cargador de la rutina de arranque.
  /dev     Contiene los puntos de entrada para los dispositivos.
  /etc     Contiene los archivos de configuración que se necesitan para la administración del sistema (archivos passwd, group, inittab, ld.so.conf, lilo.conf, etc.)
    /etc/X11   Contiene los archivos específicos para la configuración de X (contiene, por ejemplo: XF86Config)
  /home     Contiene los directorios personales del usuario. En lo que respecta a los directorios ubicados en /home, éstos pretenden alojar los archivos del usuario en el sistema. Se le aconseja dedicar una partición especial para el directorio de arranque (/boot) de manera que pueda limitar el daño en caso de saturación de espacio en el disco.
  /lib     Contiene bibliotecas estándares que se comparten con las diferentes aplicaciones del sistema.
  /mnt     Hace posible alojar los puntos de montaje de las particiones temporales (CD-ROM, disquete, etc.)
  /proa     Fusiona un conjunto de archivos virtuales y hace posible la obtención de información sobre el sistema o sobre los procesos que se están ejecutando.
  /root     Directorio personal de administración Root. El directorio de administración personal se encuentra aislado de los otros directorios personales ya que se encuentra ubicado en la partición de la raíz. Así, éste se puede cargar al inicio, antes del montaje de la partición /home.
  /sbin     Contiene los ejecutables esenciales del sistema (por ejemplo, el comando adduser).
  /tmp     Contiene archivos temporales.
  /usr     Jerarquía secundaria.
    /usr/X11R6   Este directorio se reserva para el sistema X versión 11 edición 6.
    /usr/X386   Utilizado anteriormente por X versión 5, es un enlace simbólico a /usr/X11R6.
    /usr/bin   Contiene la mayor parte de los archivos binarios y los comandos del usuario.
    /usr/include   Contiene los archivos de cabecera para los programas C y C++.
    /usr/lib   Contiene la mayoría de las bibliotecas compartidas del sistema.
    /usr/local   Contiene datos que pertenecen a los programas instalados en la máquina local por Root.
      /usr/local/bin Binarios para programas locales.
      /usr/local/include Archivos de cabecera locales para C y C++.
      /usr/local/lib Bibliotecas locales compartidas.
      /usr/local/sbin Binarios del sistema local.
      /usr/local/share Jerarquía independiente.
      /usr/local/src Archivos locales de fuente.
    /usr/sbin   Contiene los archivos binarios que no son fundamentales para el sistema y que están reservados para el administrador del sistema.
    /usr/share   Reservado para datos independientes de la arquitectura.
    /usr/src   Contiene archivos del código fuente.
  /var     Contiene datos editables, como por ejemplo, archivos de bases de datos, registros, archivos para un gestor de colas de impresión o incluso archivos para la espera del correo electrónico.

Enciclopedia