(→¿Que es un archivo?) |
(→Tipos de Archivos: formateo....) |
||
| Línea 46: | Línea 46: | ||
Los archivos binarios también almacenan datos en bytes, pero a diferencia de los de texto, utilizan los 8 bits. | Los archivos binarios también almacenan datos en bytes, pero a diferencia de los de texto, utilizan los 8 bits. | ||
| − | + | ==Tipos de Archivos== | |
| − | La letra que precede a la descripción es el indicador, o sea identifica el tipo de archivo cuando hacemos un listado de ellos con el comando ls | + | La letra que precede a la descripción es el indicador, o sea identifica el tipo de archivo cuando hacemos un listado de ellos con el comando <code>ls</code> |
{| border="0" style="background:LightBlue;" cellpadding="2" cellspacing= "6" align="center" | {| border="0" style="background:LightBlue;" cellpadding="2" cellspacing= "6" align="center" | ||
| Línea 85: | Línea 85: | ||
7899188 -rw-r--r-- 1 root root 226 2006-05-22 16:25 udev.conf</pre> | 7899188 -rw-r--r-- 1 root root 226 2006-05-22 16:25 udev.conf</pre> | ||
| − | + | ===Los archivos sencillos=== | |
:Se emplean para almacenar información y datos en dispositivos de almacenamiento secundario, que por regla general es el disco duro. (obviamente, también pueden ser almacenado en cintas, memorias..etc). | :Se emplean para almacenar información y datos en dispositivos de almacenamiento secundario, que por regla general es el disco duro. (obviamente, también pueden ser almacenado en cintas, memorias..etc). | ||
:Un archivo sencillo puede contener desde un programa (Java, C++, C, Perl), como imágenes, textos, sonido, gráficos, etc. En Unix/Linux no existe diferencia a la hora de clasificar estos archivos por su contenido, para el núcleo, todos son iguales, sólo es un flujo de bytes. Otra cosa es el tratamiento que hacen de los mismos las aplicaciones. Estas sí se encargan de verificar la naturaleza de los archivos, a procesar y obrar en consecuencia al contenido de los mismos.Los nombres de los archivos pueden asignarse de manera arbitraria. El nombre asociado a un archivo sólo representa una función lógica, no de dependencia física. Sólo existen unas pequeñas restricciones: | :Un archivo sencillo puede contener desde un programa (Java, C++, C, Perl), como imágenes, textos, sonido, gráficos, etc. En Unix/Linux no existe diferencia a la hora de clasificar estos archivos por su contenido, para el núcleo, todos son iguales, sólo es un flujo de bytes. Otra cosa es el tratamiento que hacen de los mismos las aplicaciones. Estas sí se encargan de verificar la naturaleza de los archivos, a procesar y obrar en consecuencia al contenido de los mismos.Los nombres de los archivos pueden asignarse de manera arbitraria. El nombre asociado a un archivo sólo representa una función lógica, no de dependencia física. Sólo existen unas pequeñas restricciones: | ||
| Línea 96: | Línea 96: | ||
:Los archivos en Unix/Linux no necesitan extensión, al ser ser tratados en principio sin formato predeterminado, aunque puede hacerse como recurso referencial, con una o mas extensiones que indiquen la naturaleza del contenido. Por ej: los archivos pertenecientes al lenguaje C, suelen llevar la extensión .c. Los imágenes, .gif ; textos, .txt..etc. | :Los archivos en Unix/Linux no necesitan extensión, al ser ser tratados en principio sin formato predeterminado, aunque puede hacerse como recurso referencial, con una o mas extensiones que indiquen la naturaleza del contenido. Por ej: los archivos pertenecientes al lenguaje C, suelen llevar la extensión .c. Los imágenes, .gif ; textos, .txt..etc. | ||
| − | + | ===Los directorios=== | |
:son archivos que contienen a su vez otros archivos que a veces también pueden ser otros directorios comunmente llamados subdirectorios. En Unix/Linux, los directorios tienen una forma determinada | :son archivos que contienen a su vez otros archivos que a veces también pueden ser otros directorios comunmente llamados subdirectorios. En Unix/Linux, los directorios tienen una forma determinada | ||
| Línea 107: | Línea 107: | ||
:Ésta es la función principal de la lista de i-nodos. En todos los directorios aparecen dos ficheros ocultos representados por " . " y " .. " El primero " . " se refiere al directorio actual y el segundo " .. " al directorio padre, es decir al directorio al que cuelga en orden de jerarquía del Sistema de Ficheros. Obviamente el directorio / (root) principal, carece de este fichero oculto. | :Ésta es la función principal de la lista de i-nodos. En todos los directorios aparecen dos ficheros ocultos representados por " . " y " .. " El primero " . " se refiere al directorio actual y el segundo " .. " al directorio padre, es decir al directorio al que cuelga en orden de jerarquía del Sistema de Ficheros. Obviamente el directorio / (root) principal, carece de este fichero oculto. | ||
| − | + | ===Enlaces=== | |
:Es un fichero cuya función es permitir enlaces a elementos del sistema de archivos desde cualquier punto de la jerarquía del mismo.Un enlace no es mas que un nombre que apunta a un determinado recurso del sistema de ficheros, físico o lógico.Dependiendo de su función los clasificamos en, | :Es un fichero cuya función es permitir enlaces a elementos del sistema de archivos desde cualquier punto de la jerarquía del mismo.Un enlace no es mas que un nombre que apunta a un determinado recurso del sistema de ficheros, físico o lógico.Dependiendo de su función los clasificamos en, | ||
| Línea 124: | Línea 124: | ||
::En si mismo, se considera que el enlace propiamente dicho tiene todos los permisos activados.Los cantidad bytes ocupados por el enlace es igual a la longitud de la ruta que contiene, mas el carácter nulo del final. | ::En si mismo, se considera que el enlace propiamente dicho tiene todos los permisos activados.Los cantidad bytes ocupados por el enlace es igual a la longitud de la ruta que contiene, mas el carácter nulo del final. | ||
| − | + | ===Dispositivos de caracteres y bloques=== | |
:Son archivos especiales cuya principal función es la comunicación con un dispositivo de hardware. De acuerdo con la naturaleza del hardware, se denominan de caracteres, (consola, puertos de serie etc) o de bloques, (discos, memorias, ..etc).Estos archivos pueden entenderse como puntos de unión entre el núcleo y los controladores (drivers) de dispositivos como pueden ser /dev/tty0, /dev/null, /dev/hda | :Son archivos especiales cuya principal función es la comunicación con un dispositivo de hardware. De acuerdo con la naturaleza del hardware, se denominan de caracteres, (consola, puertos de serie etc) o de bloques, (discos, memorias, ..etc).Estos archivos pueden entenderse como puntos de unión entre el núcleo y los controladores (drivers) de dispositivos como pueden ser /dev/tty0, /dev/null, /dev/hda | ||
| − | + | ===Tuberías con nombre=== | |
:Archivos localizados para la comunicación entre procesos, son una via de intercambio de datos. Se gestionan mediante el método FIFO (First In-First Out), el primer byte introducido por el emisor será el primero en ser extraído por el receptor. Su comunicación es unidireccional.Este tipo de fichero es localizado mediante una ruta, como cualquier fichero normal. Puede ser borrado como cualquier archivo. | :Archivos localizados para la comunicación entre procesos, son una via de intercambio de datos. Se gestionan mediante el método FIFO (First In-First Out), el primer byte introducido por el emisor será el primero en ser extraído por el receptor. Su comunicación es unidireccional.Este tipo de fichero es localizado mediante una ruta, como cualquier fichero normal. Puede ser borrado como cualquier archivo. | ||
:Por supuesto puede verse con el comando ls.Otra de sus características es que pueden intercomunicar procesos de especies diferentes, es decir, pueden comunicar y sincronizar procesos de la misma máquina, sin necesidad de que lo hereden por medio de la llamada fork. | :Por supuesto puede verse con el comando ls.Otra de sus características es que pueden intercomunicar procesos de especies diferentes, es decir, pueden comunicar y sincronizar procesos de la misma máquina, sin necesidad de que lo hereden por medio de la llamada fork. | ||
| − | + | ===Socket=== | |
:son archivos para comunicación entre procesos locales. Se pueden ver como archivos, pero no pueden ser leídos y escritos salvo por los procesos directamente relacionados con la comunicación de la que son objeto. | :son archivos para comunicación entre procesos locales. Se pueden ver como archivos, pero no pueden ser leídos y escritos salvo por los procesos directamente relacionados con la comunicación de la que son objeto. | ||
Contenido |
Para conocer las propiedades de un Sistema de Archivos, comencemos por definir que es un archivo:
La función "vital" de un archivo es poder ser leído, y como tal debe de ser localizado lo mas fácilmente posible dentro de la unidad de soporte que lo contiene.
Esta unidad, que puede ser un disco duro, una cinta, un CD o cualquier unidad susceptible de almacenar información, necesita un Sistema de Ficheros, para organizar la información y tener acceso a ella de forma eficiente y rápida.
No entraremos aquí en los detalles de almacenamiento volátil, o sea en memoria de semiconductores como la memoria RAM, que mantiene la información mientras dure el flujo eléctrico. Dedicaremos un apartado para esta información.
Nos centraremos en el mas común, es decir el disco duro
La denominación archivo es equivalente a fichero.
Existen archivos especiales que representan a los dispositivos físicos, existen archivos directorios, para organizar otros archivos y los archivos simples, encargados de almacenar toda la información, incluso programas. El fácil hacerse a la idea de que existen infinidad de archivos simples.
Como definimos que toda la información que se escribe en el disco se considera un archivo, existen diferencias importantes en cuanto al contenido de los ficheros. Principalmente la que define a archivos de "texto" y los archivos binarios.
Los archivos de "texto" pueden contener documentos, memorandums, scripts, cartas, etc. y estarán escritos en código ASCII. (El código ASCII es el encargado de representar todos los caracteres del texto). Estos archivos podrán editarse y modificarse con un editor de texto tipo, vi, emacs, gedit, ..etc.
Los archivos binarios, por el contrario contienen datos no de texto, por ej: imágenes. No pueden verse con un editor. Estos archivos sólo tienen sentido para los programas que lo ejecutan. Por ej: Se escribe un programa en C, por lo tanto lo que se edita está en modo texto, pero, la máquina no puede entender este lenguaje, así que debe de traducirse a un lenguaje que la máquina pueda leer.
Es necesario un Compilador, o sea, un programa que convierta el modo texto a lenguaje máquina. El archivo resultante, (aquel que la máquina puede leer) se llama binario.
Mas técnicamente. Los archivos de cualquier índole se almacenan en la máquina en series de bits, o sea, en código binario ( valores 0 y 1 ó activado desactivado). Estos bits se agrupan en grupos de 8 para formar 1 byte. Así, el código ASCII contiene los datos para la representación de los caracteres. Por ej:
El código ASCII utiliza sólo 7 bits de los 8 del byte. El octavo, localizado en el extremo izquierdo siempre se configura en 0.
Los archivos binarios también almacenan datos en bytes, pero a diferencia de los de texto, utilizan los 8 bits.
La letra que precede a la descripción es el indicador, o sea identifica el tipo de archivo cuando hacemos un listado de ellos con el comando ls
| Identificador | Tipo de Archivo |
|---|---|
| _ | Archivos sencillos |
| d | Directorios |
| l | Vínculos simbólicos(flexible, blandos) |
| c | Dispositivos de caracteres |
| b | Dispositivos de bloques |
| p | Tuberías (pipe) con nombre (FIFO) |
| s | Socket (conector para comunicaciones (TCP/IP) |
A modo de ejemplo:
$ ls -ila udev total 20 7897186 drwxr-xr-x 3 root root 4096 2006-08-06 01:20 . 7897089 drwxr-xr-x 128 root root 8192 2007-04-21 03:04 .. 7899187 drwxr-xr-x 2 root root 4096 2006-11-28 22:30 rules.d 7899188 -rw-r--r-- 1 root root 226 2006-05-22 16:25 udev.conf
$ ls -ila vnc.conf 7897276 -rw-r--r-- 1 root root 4622 2006-02-20 13:05 vnc.conf
A Cuando se accede al archivo, la fecha del mismo no se modifica a Sólo se puede agregar contenido al archivo D Se aplica al Directorio, los cambios efectuados en él, se aplican sincrónicamente. d La herramienta dump para backup omitirá el archivo. E Muestra que un archivo comprimido, tiene un error de compresión I Se usa en directorios para indicar que estos están indexados con en árbol de hash. i El archivo queda sin modificarse j Los datos se escriben primero al journal del sistema ext3 antes de escribirse en el propio archivo s Cuando se borre el archivo, se llenará con ceros S Igual que D pero para archivos simples T Sirve para considerar a un directorio como si estuviera en el primer nivel de directorios. t Hace que el archivo no posea un fragmento al final combinado con otro archivo. u Cuando se elimina un archivo se guarda el contenido del mismo X El contenido crudo se un archivo comprimido se puede acceder directamente. Z El archivo está sucio
Esto se representa para su identificación con la convención
Se utiliza " a " de (all) para designar todos los usuarios.
Nota. Siempre que se liste un fichero, la asignación de permisos aparecerá en este orden ( u g o ).
r --> read (lectura) Si un usuario tiene otorgado este permiso podrá, - si se trata de un directorio, listar su contenido
- en el caso de un archivo simple, leer su contenido
w --> write (escritura) Este permiso activado permite modificar el archivo que lo posee,
en caso de ser un directorio,se podrán modificar y borrar ficheros contenidos en su interior
x --> eXecute (ejecución) Teniendo este permiso activado, podrá ejectuar los ficheros desde la línea de comandos.
En caso de ser un directorio, el usuario que lo posea
tendrá acceso a las funciones de lectura- escritura
$ ls -l pares.py -rw-r--r-- 1 gustavo gustavo 130 2007-02-17 00:53 pares.py
vemos que, de acuerdo con lo establecido anteriormente, este archivo tiene permiso de lectura-escritura (rw) para el propietario ( u ), sólo permiso de lectura (r) para el grupo ( g ) y sólo lectura (r) para el resto ( o ).
Nota: no confundir el primer guión que aparece en el listado, éste no pertenece a los bits asignados a los permisos sino al atributo del fichero que lo define como archivo simple.
u ---> 1 0 0 g ---> 0 0 0 o ---> 0 0 0
sólo está activado el bit correspondiente a lectura, por lo tanto este fichero tendría asignado solamente para este usuario el permiso de lectura. Ningún permiso para el resto de los usuarios
Si fuese,
u ---> 1 1 0 g ---> 1 0 0 o ---> 1 0 0
este fichero tendría activados los permisos de lectura escritura para el usuario, sólo lectura para el grupo y sólo lectura para otros.
| Binario | Octal |
|---|---|
| 000 | 0 |
| 001 | 1 |
| 010 | 2 |
| 011 | 3 |
| 100 | 4 |
| 101 | 5 |
| 110 | 6 |
| 111 | 7 |
| NEMOTECNICO | BINARIO | OCTAL | DESCRIPCION |
|---|---|---|---|
| _ _ _ | 000 | 0 | Todos los permisos desactivados |
| _ _ x | 001 | 1 | Permiso de ejecución activado |
| _ w _ | 010 | 2 | Permiso de escritura |
| _ w x | 011 | 3 | Permisos de escritura y ejecución |
| r _ _ | 100 | 4 | Permiso sólo de lectura |
| r _ x | 101 | 5 | Lectura y ejecución |
| r w _ | 110 | 6 | Lectura y escritura |
| r w x | 111 | 7 | Todos los permisos activados |
Estoy en ello, sigo después
En construcción. Seguirá con Permisos, atributos especiales, Descripción de los directorios asociados a root. Interioridades del sistema de archivos (Bloques lógicos, Volumenes lógicos, fragmentación interna y externa), Sistemas transacionales, Montaje y desmontaje. Configuración fstab, Umask, etc.