[Info] Sistemas de Archivos en GNU/Linux

  • Iniciador del tema Iniciador del tema janod21
  • Fecha de inicio Fecha de inicio

janod21

Usuario Habitual nvl.3 ★
9 Ago 2007
5.911
256
132
en el baño del perro
Sistema de archivo de Linux


Archivos: 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.
4.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.
4.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
Figura 2.
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.
4.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
/
home
pedroluis
mnt
Carta.txt

Figura 2

/var Este directorio contiene información temporal de los programas (lo cual no implica que se
pueda borrar su contenido, de hecho, ¡no se debe hacer!)
4.5 Acceso a los diferentes sistemas de archivos
Como se ha visto anteriormente el sistema de archivos de Linux sólo tiene una raíz y su estructura
es independiente de los dispositivos de almacenamiento existentes. Esto implica que el
procedimiento a emplear para acceder a la información almacenada en los distintos sistemas de
almacenamiento de un ordenador no es tan sencilla como en Windows, y requiere un proceso
llamado “montado”, que se verá más adelante. Cuando se ha terminado de trabajar con un
determinado dispositivo hay que “desmontarlo” (¡No físicamente!).
Por ejemplo el proceso para leer un disquete sería el siguiente:
1. Introducir el disquete en la disquetera.
2. Montar el sistema de archivos del mismo.
3. Leer, grabar, y manipular el contenido del disquete.
4. Desmontar el sistema de archivos del disquete.
5. Extraer el disquete de la disquetera.
El proceso puede parecer complejo pero es el precio a pagar por la seguridad, puesto que de esta
forma se garantiza que no exista ninguna aplicación que esté usando el disquete cuando se extraiga.
(En el caso de los CD-ROM Linux impide su extracción hasta que se desmonta).
Para complicar más las cosas sólo el administrador o root tiene permiso para montar y desmontar un
sistema de archivos (por motivos de seguridad), aunque esto puede ser arreglado.
4.6 Permisos
Linux, al igual que todos los sistemas Unix, mantiene un sistema de permisos de acceso a los
ficheros muy estricto, a fin de controlar qué es lo que se puede hacer con ellos, y quien lo puede
hacer. Estos permisos se identifican con letras y son:
r permiso de lectura el fichero
w permiso de escritura en el fichero
x permiso de ejecución del fichero
s permiso para cambiar el propietario del fichero
Al contrario que en Windows o MS-DOS los programas ejecutables de Linux no están marcados
por una determinada extensión (.exe) sino por un atributo, el permiso de ejecución x. Si se elimina
este atributo a un programa, Linux no será capaz de ejecutarlo.

A su vez cada uno de estos permisos se aplica: al dueño del fichero (u), al grupo de usuarios al que
pertenece el dueño (g), ó al resto de usuarios (a). Así un fichero determinado puede tener permiso
para ser leído, escrito y ejecutado por su dueño, leído y ejecutado por el grupo al que pertenece y no
tener ningún tipo de acceso para los demás usuarios. Como se puede entender este tipo de
mecanismo es especialmente útil cuando se trabaja en grupo en un determinado proyecto.
 
Última edición por un moderador: