Logicamente, un
archivo es un conjunto de datos relacionados de alguna forma entre sı;
fısicamente,
para el sistema
Unix, un archivo no va a ser mas que un conjunto de bytes almacenados en un
disco
del sistema o
en cualquier otro medio de almacenamiento secundario.
En nuestra
maquina Linux vamos a encontrar tres tipos basicos de ficheros: ficheros planos,
direc-
torios, y
ficheros especiales. Un fichero plano es aquel que contiene informacion generada
durante
una sesion de
trabajo de cualquier usuario, ya sean programas, documentos, ejecutables. . . Un
di-
rectorio es una
especie de catalogo de archivos planos manipulado por el S.O. para presentar
una
estructura
arborescente del sistema de archivos. Para nosotros, un directorio va a ser un
fichero
especial que va
a contener archivos de todo tipo: planos, otros directorios (llamados
subdirectorios)
o ficheros
especiales. Siempre existiran dos archivos dentro de cualquier subdirectorio,
denominados
‘.’ y ‘..’, que
hacen referencia al propio directorio (‘.’) y a su directorio padre
(‘..’).
Los ficheros
especiales pueden ser de varios tipos; en primer lugar, encontramos los archivos
de
dispositivos.
Para Unix, cualquier parte del computador (disco, cinta, tarjeta de sonido,
impresora,
memoria. . . )
es un archivo especial. Existen dos tipos basicos de archivos de dispositivo:
orien-
tados a
caracter (que realizan sus operaciones de I/O caracter a caracter, como
impresoras o
ratones) y
orientados a bloque (realizan esas mismas operaciones en bloques de caracteres;
los
mas comunes son
los discos y las cintas).
Otro tipo de
archivo especial es el link o enlace, que no es mas que una copia de un
archivo
determinado en
otro lugar del almacenamiento, una especie de segundo nombre del archivo
refer-
enciado.
Podremos distinguir dos tipos de enlaces: los duros y los simbolicos; mientras
que los
primeros
realizan una segunda copia del archivo enlazado, los segundos son simplemente
apunta-
dores a ese
archivo.
Porultimo
existen dos tipos de archivos especiales que no vamos a tratar con detalle, ya
que
suelen ser solo
usados en programacion o por el propio sistema operativo: son los sockets y
los
pipes o FIFOs
(First In First Out). Los primeros son una especie de ‘agujeros negros’ que
reciben
y dan
informacion, mientras que los segundos son las denominadas ‘tuberıas’ del
sistema: los datos
que entran por
un extremo salen en el mismo orden por el extremo contrario.
Podremos
distinguir entre sı los diferentes archivos a partir de su primer bit de
descripcion (que
en realidad no
es un solo bit); los ficheros planos se denotaran por ‘-’, los directorios por
‘d’, los
dispositivos
orientados a caracter por ‘c’, los orientados a bloque por ‘b’, los pipes por
‘p’, y los
sockets por
‘s’. Veamos un ejemplo, al listar el contenido de un directorio con ls
-al:
rosita:i$ ls
-al
Estos
directorios son el actual y el padre:
drwxr-xr-x 15
toni users 2048 Nov 2 03:49 ./
drwxr-xr-x 5
root root 1024 Jun 9 02:45 ../
Directorios
normales: vemos la ”d” al principio de los permisos:
drwxr-xr-x 2
toni users 1024 Oct 26 15:18 .pgp/
drwxr-xr-x 2
toni users 1024 Oct 26 17:11 programacio/
Archivos
planos: al principio, tenemos ”-”:
-rw-r-xr-x 1
toni users 155 Nov 2 03:49 test
-rwxr-xr-x 1
toni users 349 Oct 3 05:14 server
Pipes: vemos su
indicador, ”p”:
prw-r-xr-x 1
toni users 155 Nov 2 03:49 .plan
prwxr-xr-x 1
toni users 369 Oct 3 12:12 pipetest
Archivos
especiales orientados a caracter o a bloque:
crw-r-xr-x 1
toni users 0 Nov 2 06:29 caractest
brwxr-xr-x 1
toni users 0 Oct 2 08:14 blocktest
Enlaces
simbolicos; su indicador es la ”l”: