jueves, 27 de octubre de 2016

2.2 Manejo del sistema de archivos, discos y otros dispositivos


Linux soporta una gran cantidad de tipos diferentes de sistemas de archivos. Para nuestros propósitos los más importantes son:

Minix

El más antiguo y supuestamente el más fiable, pero muy limitado en características (algunas marcas de tiempo se pierden, 30 caracteres de longitud máxima para los nombres de los archivos) y restringido en capacidad (como mucho 64 MB de tamaño por sistema de archivos).

Xia

Una versión modificada del sistema de archivos minix que eleva los límites de nombres de archivos y tamaño del sistema de archivos, pero por otro lado no introduce características nuevas. No es muy popular, pero se ha verificado que funciona muy bien.

ext3

El sistema de archivos ext3 posee todas las propiedades del sistema de archivos ext2. La diferencia es que se ha añadido una bitácora (journaling). Esto mejora el rendimiento y el tiempo de recuperación en el caso de una caída del sistema. Se ha vuelto más popular que el ext2.

ext2

El más sistema de archivos nativo Linux que posee la mayor cantidad de características. Está diseñado para ser compatible con diseños futuros, así que las nuevas versiones del código del sistema de archivos no necesitará rehacer los sistemas de archivos existentes.

ext

Una versión antigua de ext2 que no es compatible en el futuro. Casi nunca se utiliza en instalaciones nuevas, y la mayoría de la gente que lo utilizaba han migrado sus sistemas de archivos al tipo ext2.

reiserfs

Un sistema de archivos más robusto. Se utiliza una bitácora que provoca que la pérdida de datos sea menos frecuente. La bitácora es un mecanismo que lleva un registro por cada transacción que se va a realizar, o que ha sido realizada. Esto permite al sistema de archivos reconstruirse por sí sólo fácilmente tras un daño ocasionado, por ejemplo, por cierres del sistema inadecuados.

Adicionalmente, existe soporte para sistemas de archivos adicionales ajenos, para facilitar el intercambio de archivos con otros sistemas operativos. Estos sistemas de archivos ajenos funcionan exactamente como los propios, excepto que pueden carecer de características usuales UNIX , o tienen curiosas limitaciones, u otros inconvenientes.


msdos

Compatibilidad con el sistema de archivos FAT de MS-DOS (y OS/2 y Windows NT).

umsdos

Extiende el dispositivo de sistema de archivos msdos en Linux para obtener nombres de archivo largos, propietarios, permisos, enlaces, y archivos de dispositivo. Esto permite que un sistema de archivos msdos normal pueda utilizarse como si fuera de Linux, eliminando por tanto la necesidad de una partición independiente para Linux.

vfat

Esta es una extensión del sistema de archivos FAT conocida como FAT32. Soporta tamaños de discos mayores que FAT. La mayoría de discos con MS Windows son vfat.

iso9660

El sistema de archivos estándar del CD-ROM; la extensión popular Rock Ridge del estándar del CD-ROM que permite nombres de archivo más largos se soporta de forma automática.

nfs

Un sistema de archivos de red que permite compartir un sistema de archivos entre varios ordenadores para permitir fácil acceso a los archivos de todos ellos.

smbfs

Un sistema de archivos que permite compartir un sistema de archivos con un ordenador MS Windows. Es compatible con los protocolos para compartir archivos de Windows.

hpfs

El sistema de archivos de OS/2.

sysv

EL sistema de archivos de Xenix, Coherent y SystemV/386..

La elección del sistema de archivos a utilizar depende de la situación. Si la compatibilidad o alguna otra razón hacen necesario uno de los sistemas de archivos no nativos, entonces hay que utilizar ése. Si se puede elegir libremente, entonces lo más inteligente sería utilizar ext3, puesto que tiene todas las características de ext2, y es un sistema de archivos con bitácora.

Existe también el sistema de archivos proc, generalmente accesible desde el directorio /proc, que en realidad no es un sistema de archivos, aun cuando lo parece. El sistema de archivos proc facilita acceder a ciertas estructura de datos del núcleo, como la lista de procesos (de ahí el nombre). Hace que estas estructuras de datos parezcan un sistema de archivos, y que el sistema de archivos pueda ser manipulado con las herramientas de archivos habituales. Por ejemplo, para obtener una lista de todos los procesos se puede utilizar el comando

$ ls -l /proc
total 0
dr-xr-xr-x         4 root              root                 0 Jan 31 20:37 1
dr-xr-xr-x         4 liw               users              0 Jan 31 20:37 63
dr-xr-xr-x         4 liw               users              0 Jan 31 20:37 94
dr-xr-xr-x         4 liw               users              0 Jan 31 20:37 95
dr-xr-xr-x         4 root              users              0 Jan 31 20:37 98
dr-xr-xr-x         4 liw               users              0 Jan 31 20:37 99
-r--r--r--           1 root              root                 0 Jan 31 20:37 devices
-r--r--r--           1 root              root                 0 Jan 31 20:37 dma
-r--r--r--           1 root              root                 0 Jan 31 20:37 filesystems
-r--r--r--           1 root              root                 0 Jan 31 20:37 interrupts
-r--------           1 root              root                 8654848 Jan 31 20:37 kcore
-r--r--r--           1 root              root                 0 Jan 31 11:50 kmsg
-r--r--r--           1 root              root                 0 Jan 31 20:37 ksyms
-r--r--r--           1 root              root                 0 Jan 31 11:51 loadavg
-r--r--r--           1 root              root                 0 Jan 31 20:37 meminfo
-r--r--r--           1 root              root                 0 Jan 31 20:37 modules
dr-xr-xr-x         2 root              root                 0 Jan 31 20:37 net
dr-xr-xr-x         4 root              root                 0 Jan 31 20:37 self
-r--r--r--           1 root              root                 0 Jan 31 20:37 stat
-r--r--r--           1 root              root                 0 Jan 31 20:37 uptime
-r--r--r--           1 root              root                 0 Jan 31 20:37
version
$

(Puede haber no obstante algunos archivos adicionales que no correspondan con ningún proceso. El ejemplo anterior se ha recortado.)


Tenga en cuenta que aunque se llame sistema de archivos, ninguna parte del sistema de archivos proc toca el disco. Existe tan sólo en la imaginación del núcleo. Cuando alguien intenta echar un vistazo a alguna parte del sistema de archivos proc, el núcleo hace que parezca como si esa parte existiera en alguna parte, aunque no lo haga. Así, aunque exista un archivo /proc/kcore de muchos megabytes, no quita espacio del disco.

0 comentarios:

Publicar un comentario