Anda di halaman 1dari 25

Sistemas de Archivos

Los sistemas de archivos o ficheros (en ingls:filesystem), estructuran la informacin guardada en una unidad de almacenamiento (normalmente un disco duro de una computadora), que luego ser representada ya sea textual o grficamente utilizando un gestor de archivos. La mayora de los sistemas operativos manejan su propio sistema de archivos. Lo habitual es utilizar dispositivos de almacenamiento de datos que permiten el acceso a los datos como una cadena de bloques de un mismo tamao, a veces llamados sectores, usualmente de 512 bytes de longitud (Tambin denominados clsters). El software del sistema de archivos es responsable de la organizacin de estos sectores en archivos y directorios y mantiene un registro de qu sectores pertenecen a qu archivos y cules no han sido utilizados. En la prctica, un sistema de archivos tambin puede ser utilizado para acceder a datos generados dinmicamente, como los recibidos a travs de una conexin de red (sin la intervencin de un dispositivo de almacenamiento). Los sistemas de archivos tradicionales proveen mtodos para crear, mover, renombrar y eliminar tanto archivos como directorios, pero carecen de mtodos para crear, por ejemplo, enlaces adicionales a un directorio o archivo (enlace duro en Unix) o renombrar enlaces padres (".." en Unix).

Manejo de sistemas de archivos


Una de las principales funciones de un Sistema Operativo es la administracin del almacenamiento de informacin, para lo cual es necesario contar con un Sistema de Archivos. Con este trmino se hace referencia, por un lado, a los mecanismos y estructuras que el sistema operativo utiliza para organizar la informacin en medios fsicos tales como discos y diskettes (aspecto fsico del sistema de archivos), y por otro a la visin que es ofrecida al usuario para permitir la manipulacin de la informacin almacenada (una abstraccin, o perspectiva lgica del sistema de archivos). Se ofrece a continuacin una descripcin sinttica de los aspectos lgicos del sistema de archivos de Linux. ARCHIVOS Y DIRECTORIOS

El sistema de archivos de Linux est organizado en archivos y directorios. Un archivo es una coleccin de datos que se almacena en un medio fsico y a la cual se le asigna un nombre. Los archivos, a su vez, estn agrupados en conjuntos llamados directorios. Un directorio puede tener subdirectorios, formndose as una estructura jerrquica con la forma de un rbol invertido. El directorio inicial de esa jerarqua se denomina directorio raz y se simboliza con una barra de divisin (/). El sistema de archivos de un sistema Linux tpico est formado por los siguientes directorios bajo el directorio raz:

/bin Contiene los programas ejecutables que son parte del sistema operativo Linux. Muchos comandos de Linux como cat, cp, ls, more y tar estn ubicados en este directorio. /boot Contienen el kernel (o ncleo) de Linux y otros archivos necesarios para el administrador de inicio LILO, que realiza la carga inicial del sistema operativo cuando la computadora se enciende. /dev Contienen todos los archivos de acceso a dispositivos. Linux trata cada dispositivo (terminales, discos, impresoras, etc.) como si fuera un archivo especial. /etc. Contiene archivos de configuracin del sistema y los programas de inicializacin.

/home Contiene los directorios HOME de los usuarios. El directorio HOME el directorio inicial en el que se encuentra posicionado un usuario al ingresar al sistema, por lo que tambin se conoce como directorio de logn o de conexin. /lib Contiene los archivos de biblioteca utilizados por las aplicaciones y utilidades del sistema, as tambin como las libreras pertenecientes a diferentes lenguajes de programacin. /lost+found Directorio para archivos recuperados por el proceso de reparacin del sistema de archivos, que se ejecuta luego de una cada del sistema y asegura su integridad luego de que el equipo haya sido apagado de manera inapropiada. /mnt Es un directorio vaco que se usa normalmente para montar dispositivos como disquetes y particiones temporales de disco. /proc Contiene archivos con informacin sobre el estado de ejecucin del sistema operativo y de los procesos. /root Es el directorio HOME para el usuario root (administrador del sistema). /sbin Contienen archivos ejecutables que son comandos que se usan normalmente para la administracin del sistema. /tmp Directorio temporal que puede usar cualquier usuario como directorio transitorio. /usr Contiene archivos de programa, de datos y de libreras asociados con las actividades de los usuarios. /var Contiene archivos temporales y de trabajo generados por programas del sistema. A diferencia de /tmp, los usuarios comunes no tienen permiso para utilizar los subdirectorios que contiene directamente, sino que deben hacerlo a travs de aplicaciones y utilidades del sistema. PERMISOS DE ARCHIVOS Y DIRECTORIOS En cualquier sistema multiusuario, es preciso que existan mtodos que impidan a un usuario no autorizado copiar, borrar, modificar algn archivo sobre el cual no tiene permiso. En Linux las medidas de proteccin se basan en que cada archivo tiene un propietario (usualmente, el que cre el archivo). Adems, los usuarios pertenecen a uno o mas grupos, los cuales son asignados por el Administrador dependiendo

de la tarea que realiza cada usuario; cuando un usuario crea un archivo, el mismo le pertenece tambin a alguno de los grupos del usuario que lo cre. As, un archivo en Linux le pertenece a un usuario y a un grupo, cada uno de los cuales tendr ciertos privilegios de acceso al archivo. Adicionalmente, es posible especificar que derechos tendrn los otros usuarios, es decir, aquellos que no son el propietario del archivo ni pertenecen al grupo dueo del archivo. En cada categora de permisos (usuario, grupo y otros) se distinguen tres tipos de accesos: lectura (Read), escritura (Write) y ejecucin (eXecute), cuyos significados varan segn se apliquen a un archivo o a un directorio. En el caso de los archivos, el permiso R (lectura) habilita a quin lo posea a ver el contenido del archivo, mientras que el permiso W (escritura) le permite cambiar su contenido. El permiso X (ejecucin) se aplica a los programas y habilita su ejecucin. Para los directorios, el permiso R permite listar el contenido del mismo (es decir, leer el directorio, mientras que el W permite borrar o crear nuevos archivos en su interior (es decir, modificar o escribir el directorio). El permiso X da permiso de paso, es decir, la posibilidad de transformar el directorio en cuestin en el directorio actual (ver comando cd). En los listados de directorio, los permisos se muestran como una cadena de 9 caracteres, en donde los primeros tres corresponden a los permisos del usuario, los siguientes tres a los del grupo y los ltimos, a los de los dems usuarios. La presencia de una letra (r, w o x) indica que el permiso est concedido, mientras que un guin (-) indica que ese permiso est denegado. Los permisos de un archivo o directorio pueden cambiarse desde el administrador de archivos KFM utilizando la ventana de propiedades o utilizando el comando chmod.

Jerarqua en sistemas de archivos


El Filesystem Hierarchy Standard (FHS, en espaol Estndar de jerarqua del sistema de archivos) es una norma que define los directorios principales y sus contenidos en el sistema operativo GNU/Linux y otros sistemas de la familia Unix.

Se dise originalmente en 1994 para estandarizar el sistema de archivos de las distribuciones de Linux, basndose en la tradicional organizacin de directorios de los sistemas Unix. En 1995 se ampli el mbito del estndar a cualquier Unix que se adhiriese voluntariamente. En linux existe un sistema de archivos que carga y contiene todos los directorios, redes, programas, particiones, dispositivos, etc. que el sistema sabe reconocer, o por lo menos, identificar. Este sistema de ficheros y directorios, tiene como base al carcter (/); ese mismo carcter sirve tambin para demarcar los directorios, como por ejemplo: /home/usuario/imagen.jpg. El directorio especificado por una ruta consistente slo por este carcter contiene toda la jerarqua de los directorios que constituyen todo el sistema. A este directorio suele llamrselo directorio raz. En linux, a los discos no se les asigna una letra como en Windows (p.e. C:), sino que se les asigna un directorio de la jerarqua del directorio raz (/), como por ejemplo: /media/floppy. Es prctica comn en el sistema de ficheros de linux, utilizar varias sub-jerarquas de directorios, segn las diferentes funciones y estilos de utilizacin de los archivos. Estos directorios pueden clasificarse en:

Estticos: Contiene archivos que no cambian sin la intervencin del administrador (root), sin embargo, pueden ser ledos por cualquier otro usuario. (/bin, /sbin, /opt, /boot, /usr/bin) Dinmicos: Contiene archivos que son cambiantes, y pueden leerse y escribirse (algunos solo por su respectivo usuario y el root). Contienen configuraciones, documentos, etc. Para estos directorios, es recomendable una copia de seguridad con frecuencia, o mejor an, deberan ser montados en una particin aparte en el mismo disco, como por ejemplo, montar el directorio /home en otra particin del mismo disco, independiente de la particin principal del sistema; de esta forma, puede repararse el sistema sin afectar o borrar los documentos de los usuarios. (/var/mail, /var/spool, /var/run, /var/lock, /home) Compartidos: Contiene archivos que se pueden encontrar en un ordenador y utilizarse en otro, o incluso compartirse entre usuarios. Restringidos: Contiene ficheros que no se pueden compartir, solo son modificables por el administrador. (/etc, /boot, /var/run, /var/lock) Tipos de archivos Los sistemas Linux definen diferentes tipos de archivos:

Los archivos fsicos, que son los que se introducen en el disco duro. Este es un archivo en el sentido generalmente entendido de la palabra; Los directorios son archivos (nodos) de la estructura jerrquica capaces de contener archivos u otros directorios. Un directorio contiene al menos un directorio principal (que se escribe ..), que se relaciona con el directorio del nivel superior, y un directorio actual (que se escribe .), es decir, el directorio en s mismo; Los enlaces son archivos especiales que permiten que varios nombres (enlaces) se asocien a un nico e idntico archivo. Este sistema hace posible que se puedan tener varias instancias de un mismo archivo en diversos lugares de la estructura jerrquica sin necesidad de copiarlos. Esto ayuda a asegurar la coherencia y ahorra espacio en el disco. Existen dos tipos de enlaces: Enlaces simblicos, que representan a los punteros virtuales (accesos directos) de los archivos reales. En el caso de que se elimine un enlace simblico, no se elimina el archivo al que indica. Los enlaces simblicos se crean utilizando comandos In -s de acuerdo con la siguiente sintaxis: ln -s name-of-real-file nombre-del-enlace-simblico Enlaces fsicos (tambin denominados enlaces rgidos o duros), representan un nombre alternativo para un archivo. As, cuando un archivo tiene dos enlaces fsicos, la eliminacin de uno u otro de estos enlaces no implica la eliminacin del archivo. Ms especficamente, mientras haya quedado al menos un enlace fsico, el archivo no se elimina. Por otro lado, cuando se eliminan todos los enlaces fsicos de un mismo archivo, tambin se elimina dicho archivo. Sin embargo, debemos advertir que slo es posible crear enlaces fsicos dentro de un nico e idntico sistema de archivos. Los enlaces fsicos se crean utilizando comandos In (con la opcin del comando n) de acuerdo a la siguiente sintaxis: ln nombre-del-archivo-real nombre-del-enlace-fsico Los archivos virtuales no existen realmente ya que slo existen en la memoria. Estos archivos, ubicados especialmente en el directorio /proc, contienen informacin sobre el sistema (procesador, memoria, discos rgidos, procesos, etc.); Los archivos de dispositivo, ubicados en el directorio /dev/, se relacionan con los dispositivos del sistema. En un primer momento, este concepto puede resultar desconcertante para un usuario nuevo.

El concepto de los puntos de montaje Los archivos en un sistema GNU/Linux estn organizados en una nica estructura jerrquica. Sin embargo, es posible tener varias particiones utilizando un mecanismo denominado montaje, el cual hace posible la conexin entre una particin y un directorio en la estructura jerrquica principal. Por eso, el hecho de montar una particin en el directorio /mnt/partition hace que todos los archivos en la particin sean accesibles para este directorio, que se denomina: punto de montaje. Jerarqua de archivos en Linux Para asegurar compatibilidad y portabilidad, los sistemas GNU/Linux cumplen con el estndar FHS (File Hierarchy Standard (Estndar de Jerarqua de Archivos)). La jerarqua bsica en un sistema Linux es la siguiente: Directorio / Descripcin Simple

Jerarqua primaria, la raz o root, y directorio raz del sistema de


jerarqua completo.

/bin/

Comandos y programas binarios esenciales necesarios para que estn disponibles para una sesin de usuario nico, o para todos los usuarios (multiusuario), por ejemplo, cat, ls, cp, rm, mk, etc.). Archivos cargadores de arranque (por ejemplo, el initrd). A menudo en una particin separada. los ncleos,

/boot/

/dev/

Contiene los Dispositivos esenciales (por ejemplo, /dev/null), incluso los que no se les ha asignado (montado) un directorio. Contiene tambin dispositivos que no sirven de almacenamiento (p.e. terminales de sonido y vdeo, micrfonos, impresoras, etc). Contiene archivos de configuracin del sistema especficos del Host de todo el sistema. El nombre proviene de etctera). Archivos de configuracin para los programas alojados dentro del directorio /opt. Archivos de configuracin para el X Window System, versin 11.

/etc/

/etc/opt/

/etc/X11/

/etc/sgml/ /etc/xml/
/home/

Archivos de configuracin para SGML. Archivos de configuracin para XML. Contiene los directorios de los usuarios, home de los usuarios, excepto delsuperusuario administrador (root); contiene archivos guardados, ajustes personales, etc. Ofrece. A menudo en una particin separada.Si existe ms de un usuario de uncomputador/ordenador o servidor, por ejemplo los usuarios usuario1 y usuario2, estos poseeran los directorios /home/usuario1 y /home/usuario2, respectivamente. Contiene todas las bibliotecas (mal traducidas como libreras) esenciales compartidas de los programas alojados, es decir, para los binarios en /bin/ y /sbin/. Contiene tambin las bibliotecas para el ncleo. Contiene los puntos de montaje de los medio removibles de almacenamiento, tales como lectores de CD-ROM (aparecido en la versin 2.3 de FHS), Pendrives (memoria USB), e incluso sirve para montar otras particiones del mismo disco duro, por ejemplo alguna particin desde otro sistema operativo. Sistema de archivos montados temporalmente. Es una directorio semejante a/media, pero es usada mayormente por los usuarios. Sirve para montar discos duros y particiones de forma temporal en el sistema. Contiene Paquetes de programas opcionales de aplicaciones estticas, es decir, que pueden ser compartidas por los usuarios. Estas aplicaciones, utilizan el directorio de usuario para guardas sus configuraciones, y de esta forma, cada usuario puede tener una configuracin diferente, de la misma aplicacin. Contiene principalmente archivos de texto, sistema de archivos virtuales que documentan al ncleo y el estado de los procesos como archivos de texto (por ejemplo, uptime, network).

/lib/

/media/

/mnt/

/opt/

/proc/

/root/ /sbin/

Directorio raz del usuario root. Sistema de binarios esencial, comandos y programas exclusivos del superusuario(root), por ejemplo, init, route, ifup). Lugar especfico de datos, los cuales son servidos por el sistema. Archivos temporales (vase tambin /var/tmp).

/srv/ /tmp/ /usr/

jerarqua secundaria de los datos de usuario; contiene la mayora


de las utilidades y aplicaciones multiusuario. En otras palabras, contiene los archivos compartidos desolo lectura. Este directorio puede incluso se compartido con otras computadoras.

/usr/bin/

Comandos binarios no esenciales (no necesarios en el modo de usuario nico); para todos los usuarios. Archivos de cabecera (Header files o Include files), es decir, archivos de inclusin estndar bibliotecas compartidas de los binarios en /usr/bin/ y /usr/sbin/. Sistema de binarios no esencial (por ejemplo demonios para varios servicios de red. Arquitectura independiende, compartida de datos. En otras palabras, contiene los datos compartidos que no dependen de la arquitectura del sistema. Esto puede incluir imgenes, sonidos, etc., para la disponibilidad en el sistema. Cdigos fuente, por ejemplo, el cdigo fuente (es decir, programas y bibliotecas sincompilar) del ncleo con sus archivos de cabecera, (Header files o Include files). Sistema X Window System, Versin 11, Release 6.

/usr/include/

/usr/lib/ /usr/sbin/

/usr/share/

/usr/src/

/usr/X11R6/ /usr/local/

Jerarqua terciaria para los datos locales, especficos a este host.


Usualmente tiene subdirectorios, por ejemplo bin/, lib/, share/, de datos compartidos de slo lectura especficos

del ordenador o servidor que los comparte. /var/ Archivos variables, tales como logs, archivos spool, bases de datos, archivos de e-mail temporales, y archivos temporales en general. Cache de las aplicaciones. Se depositan datos e informacin, referentes a las cadas o errores del sistema operativo. Datos variables de los juegos del sistema. Este directorio no es imprescindible. Archivos Lock. Archivos que hacen el seguimiento de los recursos que se utilizan actualmente. Archivos de registro, Log. Varios registros, logs. Buzn correos o mensajes de los usuarios. Posee los datos variables de /opt. Informacin acerca del funcionamiento del sistema desde el ltimo arranque. Por ejemplo, los usuarios actualmente registrados o logueados, que han ingresado; y losdemonios que estn corriendo. Bobinas o carretes (Spool), de tareas a la espera de ser procesados (por ejemplo, colas de impresin y correo no ledo). Ubicacin de los correos de usuario desaprobados. Archivos temporales que, a diferencia de /tmp, no se borran entre sesiones o reinicios del sistema.

/var/cache/ /var/crash/

/var/games/

/var/lock/

/var/log/ /var/mail/ /var/opt/ /var/run/

/var/spool/

/var/spool/mail/ /var/tmp/

Sistemas de archivos virtuales (VFS)


Un sistema de archivos virtual (abreviado como VFS, del ingls Virtual File System), tambin denominado conmutador de sistema de archivos virtual, es una capa de abstraccin encima de un sistema de archivos ms concreto. El propsito de un VFS es permitir que las aplicaciones cliente tengan acceso a diversos tipos de sistemas de archivos concretos de una manera uniforme. Puede ser utilizada para tender un puente sobre las diferencias en los sistemas de archivos de Windows, de Mac OS y Unix, de modo que las aplicaciones pudieran tener acceso a archivos en los sistemas de archivos locales de esos tipos sin tener que saber a qu tipo de sistema de archivos estn teniendo acceso. Un VFS especifica un interfaz (o un contrato) entre el kernel y un sistema de archivos en concreto. Por lo tanto, es fcil agregar nuevos sistemas de archivos al kernel simplemente satisfaciendo el contrato. Los trminos del contrato pueden volverse incompatibles de una versin a otra, lo que requerira que sistemas de archivos concretos fuesen recompilados, y posiblemente modificados antes de la

recompilacin, para permitirles trabajar con un nuevo lanzamiento del sistema operativo; o el proveedor del sistema operativo pueda realizar solamente cambios retrocompatibles al contrato, de modo que un sistema de archivos concreto construido para un lanzamiento dado del sistema operativo trabaje con las versiones futuras del mismo sistema operativo.

VFS permite a Linux soportar muchos, incluso muy diferentes, sistemas de ficheros y cada uno presentando un interfaz software comn al VFS. Todos los detalles del sistema de ficheros de Linux son traducidos mediante software de forma que todo el sistema de ficheros parece idntico al resto del kernel de Linux y a los programas que se ejecutan en el sistema. La capa del sistema de Ficheros Virtual de Linux permite al usuario montar de forma transparente diferentes sistemas de ficheros al mismo tiempo. El VFS de Linux mantiene una antememoria (cache) con informacin de cada sistema de ficheros montado y en uso, siempre se debe tener mucho cuidado al actualizar correctamente el sistema de ficheros ya que los datos contenidos en las antememorias se modifican cuando se crean, escriben y borran ficheros y directorios.

La antememoria o cach ms importantes es el Buffer Cache, que est integrado entre cada sistema de ficheros y su dispositivo de bloque. Tal y como se accede a los bloques se ponen en el Buffer Cache y se almacenan en varias colas dependiendo de sus estados. El Buffer Cache no slo mantiene buffers de datos, tambin ayuda a administrar el interfaz asncrono con los controladores de dispositivos de bloque. Como ventajas podemos citar la estructura de datos en memoria con los bloques ms frecuentemente utilizados y las lecturas adelantadas. Linux implementa el denominado Virtual File System Cache, (VFS Cach) para acelerar substancialmente el sistema de ficheros. El argumento "filename" es utilizado por el VFS para buscar en una estructura denominada Directory Entry Cach (dentry cach o dcache), donde se almacenan referencias a los directorios utilizados Una entrada del dcach contiene un puntero a un inodo y solo residen en memoria, mientras que los inodos tienen existencia en el disco fsico. El VFS implementa un buffer cach que controla los accesos a disco, realizando operaciones de lectura en avance (look-ahead) Existe cach de directorios, de inodos y de bloques de disco.

Registro y montaje de un sistema de ficheros En todo momento, el usuario puede consultar el fichero /proc/filesystems para obtener la lista de sistemas de ficheros registrados, y que el VFS comprende. La operacin de registro es aquella por la que se informa al VFS de que se ha instalado un nuevo manejador de sistemas de ficheros. Esta operacin se realiza

bien en el arranque del ncleo, o bien en la carga de un mdulo. Evidentemente existe la operacin inversa al registro, para decir que un sistema de ficheros ya no es reconocido por el VFS. las llamadas a las funciones son: extern int register_filesystem(struct file_system_type *); extern int unregister_filesystem(struct file_system_type *); A nivel de cdigo, los diversos sistemas de ficheros se agrupan como una lista encadenada de estructuras que definen cada sistema de ficheros. La figura 3 ilustra esta lista:

Figura 3: Organizacin de la lista de sistemas de ficheros El lector podr observar que la estructura de un descriptor de sistemas de ficheros es simple. No se requiere ms que

El nombre del sistema de ficheros Un indicador de si accede o no a dispositivos fsicos -entradas del /dev- ( por ejemplo, el /proc filesystem no requiere de dispositivos especiales ) Un mtodo que permita la lectura del superbloque ( el concepto de superbloque en un VFS lo definiremos ms adelante )

Un registro sin ms nos vale de poco: la esencia de los sistemas de ficheros es que se pueden montar dentro del rbol de directorios. La operacin de montaje se puede definir como la creacin de una terna dispositivo - sistema de ficheros punto de anclaje. La figura 4 despliega las estructuras que intervienen en la operacin de "mount". Bsicamente son:

una lista encadenada de puntos de montaje, accesible desde el fichero /proc/mounts Un descriptor del superbloque Un puntero al descriptor del sistema de ficheros asociado Un puntero al inodo sobre el que se monta el dispositivo

Figura 4: estructura de una entrada en la tabla de montajes

El super-bloque. Estructura y operaciones En todo momento hemos estado hablando del concepto de superbloque . Es hora ya de definirlo y explicar sus funciones Por superbloque entendemos la estructura de datos que define el contenido de un sistema de ficheros. El listado 1 muestra la definicin de un VFS superblock. En l se incluye informacin sobre:

Tamao del bloque de datos Punteros a estructuras de manejadores Punteros al inodo raz de dicho sistema de ficheros Punteros al registro del sistema de ficheros Informacin especifica dependiente del sistema de ficheros: lista de bloques libres, modos de acceso, etc

struct super_block { struct list_head s_list; kdev_t unsigned long unsigned char

/* Keep this first */ s_dev; s_blocksize; s_blocksize_bits;

unsigned char unsigned char unsigned char struct file_system_type struct super_operations struct dquot_operations unsigned long unsigned long unsigned long struct dentry struct wait_queue

s_lock; s_rd_only; s_dirt; *s_type; *s_op; *dq_op; s_flags; s_magic; s_time; *s_root; *s_wait;

struct inode *s_ibasket; short int s_ibasket_count; short int s_ibasket_max; struct list_head s_dirty; /* dirty inodes */ union { struct struct struct struct struct struct struct struct struct struct struct struct struct struct struct void } u; }; Listado 1: Estructura del VFS superblock La operacin de mount crea en el VFS una nueva estructura tipo superbloque. El VFS llama a la rutina read_super() definida en la descripcin del sistema de ficheros y le pasa como parmetro el VFS superblock recien creado. read_super() completa los datos de esta estructura, especialmente los referidos a los punteros a las operaciones a realizar con dicho sistema de ficheros ( campo *s_op de la estructura ) y retorna de nuevo el superbloque con los datos completos. En lo minix_sb_info minix_sb; ext2_sb_info ext2_sb; hpfs_sb_info hpfs_sb; ntfs_sb_info ntfs_sb; msdos_sb_info msdos_sb; isofs_sb_info isofs_sb; nfs_sb_info nfs_sb; sysv_sb_info sysv_sb; affs_sb_info affs_sb; ufs_sb_info ufs_sb; romfs_sb_info romfs_sb; smb_sb_info smbfs_sb; hfs_sb_info hfs_sb; adfs_sb_info adfs_sb; qnx4_sb_info qnx4_sb; *generic_sbp;

sucesivo, el VFS cada vez que requiera de alguna operacin con este sistema de ficheros recien montado, no tiene sino que seguir los enlaces...

Sistemas de archivos basados en Journal


Journaling File System (JFS) es un sistema de archivos de 64-bit con respaldo de transacciones creado por IBM. Est disponible bajo la licencia GNU GPL. Existen versiones para AIX, eComStation, OS/2, sistemas operativos Linux y HP-UX Fue diseado con la idea de conseguir "servidores de alto rendimiento y servidores de archivos de altas prestaciones, asociados a e-business". Segn se lee en la documentacin y el cdigo fuente, va a pasar un tiempo antes de que la adaptacin a Linux este finalizada e incluida en la distribucin estndar del kernel. JFS utiliza un mtodo interesante para organizar los bloques vacos, estructurndolos en un rbol y usa una tcnica especial para agrupar bloques lgicos vacos. JFS fue desarrollado para AIX. La primera versin para Linux fue distribuida en el verano de 2000. La versin 1.0.0 sali a la luz en el ao 2001. JFS est diseado para cumplir las exigencias del entorno de un servidor de alto rendimiento en el que slo cuenta el funcionamiento. Al ser un sistema de ficheros de 64 bits, JFS soporta ficheros grandes y particiones LFS (del ingls Large File Support), lo cual es una ventaja ms para los entornos de servidor. Caractersticas Eficiente respaldo de transacciones (Journaling). JFS, al igual que ReiserFS, sigue el principio de metadata only. En vez de una completa comprobacin slo se tienen en cuenta las modificaciones en los metadatos provocadas por las actividades del sistema. Esto ahorra una gran cantidad de tiempo en la fase de recuperacin del sistema tras una cada. Las actividades simultneas que requieren ms entradas de protocolo se pueden unir en un grupo, en el que la prdida de rendimiento del sistema de ficheros se reduce en gran medida mediante mltiples procesos de escritura. Eficiente administracin de directorios. JFS abarca diversas estructuras de directorios. En pequeos directorios se permite el almacenamiento directo del contenido del directorio en Inode. En directorios ms grandes se utiliza B-trees, que facilitan considerablemente la administracin del directorio.

Mejor utilizacin de la memoria mediante adjudicacin dinmica de Inodes. Con ext2 debe dar por anticipado el grosor del Inode (la memoria ocupada por la informacin de administracin). Con ello se limita la cantidad mxima de ficheros o directorios de su sistema de ficheros. JFS le ahorra esto, puesto que asigna memoria Inode de forma dinmica y la pone a su disposicin cuando no se est utilizando. QU ES UN "SISTEMA DE ARCHIVOS CON JOURNALING"? Un sistema de archivos Journaling, se puede definir como un sistema que sirve para darles ms seguridad a la integridad de los datos, y los metadatos, que contenemos en nuestros discos rgidos. Se recomienda para sistemas de alta disponibilidad. Y en si la "nueva caracterstica" que poseen es la de las "transacciones", que hacen que el sistema se recupere "normalmente", por ejemplo, ante cadas inesperadas. PARA QU SIRVEN? Bueno, por ejemplo cuando se apaga mal nuestra pc, antes, los archivos podian quedar "corruptos", pero ahora con estos "nuevos" sistemas, no se si es 100% seguro, pero esto no sucede ya que, cuando se apaga mal nuestra pc, las transacciones al disco que no fueron completadas, fueron registradas anteriormente en el "journal", y al reiniciar la mquina estas son realizadas, por lo tanto el sistema de archivos se "sincroniza" de vuelta sin perder datos. En otros sistemas de archivos, si sucediera esto, se podan perder muchos datos. QU SIGNIFICA "JOURNALING"? Journaling es la propiedad de estos file systems, de recordar las operaciones parciales que conforman una actualizacin. Ext2 es, o "no se si era", el sistema de archivos estandar para Linux, fue creado por Wayne Davidson, queda aclarar que no es un "Journaling file system". Linux ahora, adems de este sistema de archivo, posee varios ms, los "transaccionales", como por ejemplo: XFS de SGI, JSF de IBM, ReiserFS de Namesys, y el "supuesto EXT3" desarrollado por uno de los desarrolladores del anterior EXT2. Segun pruebas, ReiserFS es rpido con archivos "medianamente pequeos", mientras que XFS, es muy rpido con archivos "relativamente grandes", mientras ms grande sean los archivos a manejar con XFS, mejor. En un primer momento se deca que XFS manejaba solo archivos de hasta 2 gb, pero esto es mentira

Sistemas de archivos distribuidos


Sistema de archivos distribuido o sistema de archivos de red es un sistema de archivos de computadoras que sirve para compartir archivos, impresoras y otros recursos como un almacenamiento persistente en una red de computadoras. El primer sistema de este tipo fue desarrollado en la dcada de 1970, y en 1985 Sun Microsystems cre el sistema de archivos de red NFS el cual fue ampliamente utilizado como sistema de archivos distribuido. Otros sistemas notables utilizados fueron el sistema de archivos Andrew (AFS) y el sistema Server Message Block SMB, tambin conocido como CIFS. Los sistemas distribuido de archivos permite a los programas almacenar y acceder a archivos remotos del mismo modo que si fueran locales, permitiendo a los usuarios que accedan archivos desde cualquier computador.

Un servidor de archivos es un proceso que se ejecuta en alguna maquina y ayuda a implantar el servicio de archivo. Un sistema puede tener uno o varios servidores de archivos, cada uno de los cuales ofrece un servicio de archivos distintos,

pero los clientes no deben conocer el numero de servidores de archivos, su posicin o funcin. Todo lo que saben es que al llamar los procedimientos especificados en servicio de archivos, el trabajo necesario se lleva a cabo de alguna manera y se obtienen los resultados pedidos. Los clientes ni siquiera deben saber que el servicio de archivos es distribuido. Lo ideal es que se vea como un sistema de archivos normal de un procesador. DISEO DE LOS SISTEMAS DISTRIBUIDOS DE ARCHIVOS Por lo general un sistema distribuidos de archivos tiene dos componentes razonablemente distintos: el verdadero servicio de archivos y el servicio de directorios. El primero se encarga de las operaciones en los archivos individuales, como la lectura escritura y adicin, mientras que el segundo se encarga de crear y administrar directorios, aadir y eliminar archivos de los directorios, etc. La interfaz del servicio de archivos

Un aspecto importante del modelo de archivo es si stos se pueden modificar despus de su creacin. Existen algunos sistemas distribuidos que permiten nicamente las operaciones de archivos CREATE Y READ. Una vez creado un archivo no se puede modificar. Se dice que tal archivo es inmutable. Estos archivos facilitan el ocultamiento y duplicacin de archivos, puesto que esto elimina todos los problemas asociados con la actualizacin de todas las copias de un archivo cada vez que ste se modifique.

La proteccin en los sistemas distribuidos utiliza la misma tcnica de los procesos con un procesador: posibilidades y listas para control de acceso. En el caso de las posibilidades cada usuario tiene cierto boleto llamado posibilidad, para cada objeto al que tiene acceso. La posibilidad determina los tipos de accesos permitidos ( por ejemplo se permite la lectura pero no la escritura ).

Todos los esquemas de lista para el control de acceso asocian a cada archivo una lista implcita o explcita de los usuarios que pueden tener acceso a los archivos y la forma de dicho acceso. El esquema de UNIX es una lista para control de acceso simplificada, con los bits que controlan la lectura, escritura y ejecucin de cada archivo, en forma independiente para el propietario, grupo del propietario y todas las dems personas. Los servicios de archivos se pueden dividir en dos tipos, segn si soportan un modelo carga /descarga o un modelo de acceso remoto. En el modelo carga/descarga el servicio de archivo slo proporciona la lectura de un archivo y la escritura del mismo. En la lectura transfiere todo un archivo de uno de los servidores de archivos al cliente solicitante. La escritura transfiere todo un archivo en sentido contrario del cliente al servidor. Los archivos se pueden almacenar en memoria o en disco local, como sea necesario. La ventaja del modelo carga/descarga es la sencillez del concepto. Los programas de aplicacin buscan los archivos que necesitan y despus lo utilizan de manera local. Los archivos modificados o nuevos se escriben de regreso al terminar el programa. Adems, la transferencia de archivos completos es muy eficiente. Sin embargo el cliente debe disponer de un espacio suficiente de almacenamiento para todos los

archivos necesarios. Otra desventaja es que si slo se necesita una pequea fraccin de un archivo, el traslado del archivo completo es un desperdicio. El otro tipo de servicios de archivos el de acceso remoto, en este modelo se proporcionan un gran nmero de operaciones para abrir y cerrar archivos, leer y escribir parte de archivo, moverse a travs de un archivo, examinar y modificar los atributos de archivos, etc. Mientras en el modelo carga/descarga el servicio de archivos slo proporciona el almacenamiento fsico y la transferencia, en este caso el sistema de archivos se ejecuta en los servidores y no en los clientes. Su ventaja es que no necesita mucho espacio por parte de los clientes, a la vez que elimina la necesidad de transferir archivo completos cuando slo se necesita un parte de ellos. La interfaz del servidor de directorios Proporciona la operaciones para crear y eliminar directorios, nombrar o cambiar el nombre de archivo y mover esto de un directorio a otro. El servicio de directorios define un alfabeto y una sintaxis para formar los nombres de archivos( y directorio ). Lo usual es que los nombres de archivos tengan de uno hasta un cierto numero de letras, nmeros y ciertos caracteres especiales. Algunos sistemas dividen los nombres de archivo en dos partes, a menudo separada por un punto. La segunda parte del nombre llamada la extensin de archivo identifica el tipo de este. Otros sistemas utilizan un atributo explcito para este fin, en vez de utilizar una extensin dentro del nombre. Todos los sistemas distribuido permiten que los directorios contengan subdirectorios, para que los usuarios puedan agrupar los archivos relacionados entres si. De acuerdo con esto se dispone para la creacin y eliminacin de directorios, asi como para introducir, eliminar y buscar archivos en ellos. Por lo general, cada subdirectorio contiene todos los archivos de un proyecto, como un programa o un documento de gran tamao. Cundo se despliega el (sub)directorio solo se muestra los archivos relevantes, los archivos no relacionados estan en otros (sub)directorios y no agrandan la lista. Los subdirectorios pueden contener sus propios subdirectorios y asi sucesivamente. Lo que conduce a un rbol de directorios, el cual se conoce como sistema jerrquico de archivo. En ciertos sistemas es posible crear enlace o apuntadores a un directorio arbitrario. Estos se pueden colocar en cualquier directorio, lo que permite construir no solo arboles, sino grficas arbitrarias de directorios que son mas poderosas. La

distincin entre arboles y grficas es de particular importancia en un sistema distribuido.

Recuperacin de falla en sistemas de archivos


Debido a que los archivos se mantienen tanto en memoria principal como en el disco, debemos asegurarnos de que un fallo del sistema no de por resultado la perdida de datos o inconsistencia en los mismos. La destruccin de la informacin, ya sea accidental o intencional, es una realidad y tiene distintas causas:

Fallas de hardware y de software Fenmenos meteorolgicos atmosfricos Fallas en el suministro de energa Incendios e inundaciones Robos, vandalismo (incluso terrorismo)

Esta posible destruccin de la informacin debe ser tenida en cuenta por:


Los sistemas operativos en general Los sistemas de archivos en particular

Una tcnica muy usada para asegurar la disponibilidad de los datos es realizar respaldos peridicos: 1. Hacer con regularidad una o ms copias de los archivos y colocarlas en lugar seguro 2. Todas las actualizaciones realizadas luego del ltimo respaldo pueden perderse Otra tcnica es pasar todas las transacciones a un archivo, copindolas en otro disco:

Genera una redundancia que puede ser costosa En caso de fallas en el disco principal, puede reconstruirse todo el trabajo perdido si el disco de reserva no se da tambin

Tambin existe la posibilidad del respaldo incremental:

Durante una sesin de trabajo los archivos modificados quedan marcados.

Cuando un usuario se retira del sistema (deja de trabajar), un proceso del sistema efecta el respaldo de los archivos marcados.

Se debe tener presente que es muy difcil garantizar una seguridad absoluta de los archivos. El mtodo correcto de manejar fallos consiste bsicamente en detectarlos a tiempo y de forma correcta. La inclusin de equipos de test en el sistema es esencial para mantener esta capacidad de monitorizacin. En cualquier caso, la cada total o parcial del sistema se puede subsanar en parte si hay puntos de restauracin del sistema (chkpt). Esta posibilidad aumenta la disponibilidad de recuperacin en caso de fallos. Mecanismos de Proteccin Dominios de Proteccin Muchos objetos del sistema necesitan proteccin, tales como la cpu, segmentos de memoria, unidades de disco, terminales, impresoras, procesos, archivos, bases de datos, etc. Cada objeto se referencia por un nombre y tiene habilitadas un conjunto de operaciones sobre l. Un dominio es un conjunto de parejas (objeto, derechos):

Cada pareja determina:

o Un objeto. o Un subconjunto de las operaciones que se pueden llevar a cabo en l. Un derecho es el permiso para realizar alguna de las operaciones. Es posible que un objeto se encuentre en varios dominios con distintos derechos en cada dominio. Un proceso se ejecuta en alguno de los dominios de proteccin:

Existe una coleccin de objetos a los que puede tener acceso. Cada objeto tiene cierto conjunto de derechos.

Los procesos pueden alternar entre los dominios durante la ejecucin. Una llamada al S. O. provoca una alternancia de dominio. En algunos S. O. los dominios se llaman anillos. Una forma en la que el S. O. lleva un registro de los objetos que pertenecen a cada dominio es mediante una matriz :

Los renglones son los dominios. Las columnas son los objetos. Cada elemento de la matriz contiene los derechos correspondientes al objeto en ese dominio, por ej.: leer, escribir, ejecutar.

Listas Para Control de Acceso Las matrices de proteccin son muy grandes y con muchos lugares vacos Desperdician espacio de almacenamiento.

Existen mtodos prcticos que almacenan solo los elementos no vacos por filas o por columnas.

La lista de control de acceso (ACL: access control list):

Asocia a cada objeto una lista ordenada con:

o Todos los dominios que pueden tener acceso al objeto. o La forma de dicho acceso (ej: lectura , grabacin (w), ejecucin (x)). Una forma de implementar las ACL consiste en:

Asignar tres bits (r, w, x) para cada archivo, para:

o El propietario, el grupo del propietario y los dems usuarios.

Permitir que el propietario de cada objeto pueda modificar su ACL en cualquier momento:

o Permite prohibir accesos antes permitidos.

Posibilidades La matriz de proteccin tambin puede dividirse por renglones Se le asocia a cada proceso una lista de objetos a los cuales puede tener acceso.

Se le indican las operaciones permitidas en cada uno. Esto define su dominio.

La lista de objetos se denomina lista de posibilidades y los elementos individuales se llaman posibilidades. Cada posibilidad tiene:

Un campo tipo:

o Indica el tipo del objeto.

Un campo derechos:

o Mapa de bits que indica las operaciones bsicas permitidas en este tipo de objeto.

Un campo objeto:

o Apuntador al propio objeto (por ej.: su nmero de nodo-i).

Bibliografa consultada:
1) http://www.mitecnologico.com/Main/MecanismosRecuperacionCasoDeFalla 2) http://es.wikipedia.org/wiki/Journaled_File_System 3) http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/MonogSO/SISTAR02 .html 4) http://www.buanzo.com.ar/lin/70s-FStrans.html 5) http://es.wikipedia.org/wiki/Sistema_de_archivos_distribuido 6) http://h2non.wordpress.com/2007/11/28/estadares-de-sistemas-de-archivos-ufs-y-vfs/ 7) http://www.investigacion.frc.utn.edu.ar/labsis/Publicaciones/apunte_linux/ma.html 8) http://es.wikipedia.org/wiki/Sistema_de_archivos 9) http://es.wikipedia.org/wiki/Jerarqu%C3%ADa_de_directorios_en_Linux 10) http://es.tldp.org/Articulos-periodisticos/jantonio/vfs/vfs_1.html 11) http://rolandoblanco.wordpress.com/2009/07/29/jerarquia-de-archivos-gnulinux/ 12) http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/estandar-de-jerarquia-delsistema-de-archivos-en-unix-fhs.html

Anda mungkin juga menyukai