2. ESTRUCTURA DEL SISTEMA DE ARCHIVOS DE LINUX
2.2Archivos: Tipos
La base del sistema de archivos de
Linux, es obviamente el archivo, que no es otra cosa que la estructura empleada por el sistema operativo para almacenar información en un dispositivo físico como un disco duro, un disquete, un CD-ROM o un DVD. Como es natural un archivo puede contener cualquier tipo de información, desde una imagen en formato PNG o JPEG a un texto o una página WEB en formato HTML, … El sistema de archivos es la estructura que permite que
Linux maneje los archivos que contiene.
Todos los archivos de
Linux tienen un nombre, el cual debe cumplir unas ciertas reglas:
- Un nombre de archivo puede tener entre 1 y 255 caracteres.
- Se puede utilizar cualquier carácter excepto la barra inclinada / y no es recomendable emplear los caracteres con significado especial en Linux, que son los siguientes: = \ ^ ~ ' " ` * ; - ? [ ] ( ) ! & ~ < >. Para emplear ficheros con estos caracteres o espacios hay que introducir el nombre del fichero entre comillas.
- Se pueden utilizar números exclusivamente si así se desea. Las letras mayúsculas y minúsculas se consideran diferentes, y por lo tanto no es lo mismo carta.txt que Carta.txt ó carta.Txt Como en Windows, se puede emplear un cierto criterio de "tipo" para marcar las distintas clases de ficheros empleando una serie de caracteres al final del nombre que indiquen el tipo de fichero del que se trata. Así, los ficheros de texto, HTML, las imágenes PNG o JPEG tienen extensiones .txt, .htm (o .html), .png y .jpg (o .jpeg) respectivamente. Pese a esto Linux sólo distingue tres tipos de archivos:
Archivos o ficheros ordinarios, son los mencionados anteriormente.
Directorios (o carpetas), es un archivo especial que agrupa otros ficheros de una forma
estructurada.
Archivos especiales, son la base sobre la que se asienta
Linux, puesto que representan los dispositivos conectados a un ordenador, como puede ser una impresora. De esta forma introducir información en ese archivo equivale a enviar información a la impresora. Para el usuario estos dispositivos tienen el mismo aspecto y uso que los archivos ordinarios.
2.2 Enlaces
Los enlaces son un tipo de archivo ordinario cuyo objetivo es crear un nuevo nombre para un archivo determinado. Una vez creado el enlace simbólico éste permite acceder al fichero que enlaza de igual modo que si se hubiera copiado el contenido del mismo a otro fichero, con la ventaja de que este realmente no se ha copiado. Los enlaces simbólicos son especialmente útiles cuando se quiere que un grupo de personas trabajen sobre un mismo fichero, puesto que permiten compartir el fichero pero centralizan las modificaciones.
Como ejemplo se puede suponer la existencia de un fichero llamado
balance.1999.txt, al que se crea un enlace simbólico
balance.txt. Cualquier acceso a
balance.txt es traducido por el sistema de forma que se accede al contenido de
balance.1999.txt.
2.3 El camino o Path
En cualquier sistema operativo moderno la estructura de archivos es jerárquica y depende de los directorios. En general la estructura del sistema de archivos se asemeja a una estructura de árbol, estando compuesto cada nudo por un directorio o carpeta, que contiene otros directorios o archivos. En
Windows cada unidad de disco se identifica como una carpeta básica que sirve de raíz a otras, y cuyo nombre es especial
a:, c:, d: etc. En los sistemas
Unix, y por lo tanto en
Linux, existe una única raíz llamada / de la que cuelgan todos los ficheros y directorios, y que es independiente de qué dispositivos estén conectados al ordenador. El camino o path de un fichero o directorio es la secuencia de directorios que se ha de recorrer para acceder a un determinado fichero separados por /. Supongamos la estructura de archivos de la Existen dos formas del path o camino:
- el camino absoluto que muestra toda la ruta a un fichero, /home/luis/Carta.txt.
- el path relativo a un determinado directorio, por ejemplo si no encontramos en el directorio /home, el path relativo al fichero Carta.txt es luis/Carta.txt Para complicar aun más las cosas, todos los directorios contienen dos directorios especiales:
- El directorio actual, representado por el punto .
- El directorio padre representado por dos puntos ..
Estando en el directorio
/home/pedro se puede acceder a
Carta.txt con
/home/luis/Carta.txt (path absoluto) o bien
../luis/Carta.txt (path relativo). En
luis como
./Carta.txt o simplemente
Carta.txt.
2.4 Estructura del sistema de archivos de Linux
El sistema de archivo de
Linux sigue todas las convenciones de
Unix, lo cual significa que tiene una estructura determinada, compatible y homogénea con el resto de los sistemas
Unix. Al contrario que en
Windows o
MS-DOS el sistema de archivos en cualquier sistema
Unix no está ligado de una forma directa con la estructura del hardware, esto es, no depende de si un determinado ordenador tiene 1, 2 o 7 discos duros para crear las unidades
c:\,
d:\ o
m:\. Todos el sistema de archivos de
Unix tiene un origen único la raíz o root representada por /. Bajo este directorio se encuentran todos los ficheros a los que puede acceder el sistema operativo. Estos
ficheros se organizan en distintos directorios cuya misión y nombre son estándar para todos los
sistema
Unix.
/ Raíz del sistema de archivos.
/dev Contiene ficheros del sistema representando los dispositivos que estén físicamente
instalados en el ordenador.
/etc Este directorio esta reservado para los ficheros de configuración del sistema. En este
directorio no debe aparecer ningún fichero binario (programas). Bajo este deben aparecer
otros dos subdirectorios:
/etc/X11 Ficheros de configuración de X
Window
/etc/skel Ficheros de configuración básica que son copiados al directorio del usuario
cuando se crea uno nuevo.
/lib Contiene las librerías necesarias para que se ejecuten los programas que residen en
/bin (no
las librerías de los programas de los usuarios).
/proc Contiene ficheros especiales que o bien reciben o envían información al
kernel del sistema
(Se recomienda no modificar el contenido de este directorio y sus ficheros).
/sbin Contiene programas que son únicamente accesibles al superusuario o
root.
/usr Este es uno de los directorios más importantes del sistema puesto que contiene los programas
de uso común para todos los usuarios. Su estructura suele ser similar a la siguiente:
/usr/X11R6 Contiene los programas para ejecutar X
Window.
/usr/bin Programas de uso general, lo que incluye el compilador de C/C++.
/usr/doc Documentación general del sistema.
/usr/etc Ficheros de configuración generales.
/usr/include Ficheros de cabecera de C/C++ (.h).
/usr/info Ficheros de información de GNU.
/usr/lib Librerías generales de los programas.
/usr/man Manuales accesibles con el comando
man (ver más adelante).
/usr/sbin Programas de administración del sistema.
/usr/src Código fuente de programas.
Existen además de los anteriores otros directorios que se suelen localizar en el directorio
/usr, como por ejemplo las carpetas de los programas que se instalen en el sistema.