Sistemas de archivos

7
SEP SEIT DIRECCION GENERAL DE INSTITUTOS TECNOLOGICOS INSTITUTO TECNOLOGICO de Tehuacán “Sistemas de Archivos” Presenta: González Ramírez Jorge Catedrático: Francisco Vazquez Guzman Ing. En Sistemas Computacionales Tehuacán, Puebla Marzo 2012

Transcript of Sistemas de archivos

Page 1: Sistemas de archivos

SEP SEIT DIRECCION GENERAL DE INSTITUTOS TECNOLOGICOS

INSTITUTO TECNOLOGICO de Tehuacán

“Sistemas de Archivos”

Presenta:González Ramírez Jorge

Catedrático: Francisco Vazquez Guzman

Ing. En Sistemas Computacionales

Tehuacán, Puebla Marzo 2012

Page 2: Sistemas de archivos

Sistemas de Archivos

La estructura que alberga la información en los discos es conocida con el nombre de sistema de ficheros (abreviadamente FS "File System"). Un sistema de ficheros es una estructura lógica que se supone las más adecuada y eficiente para el manejo de datos en base a las características del hardware disponible (discos) por esta razón, su estudio se mueve en la frontera entre el hardware y el software.

El diseño del sistema de ficheros tiene una gran influencia en la eficacia (rendimiento), seguridad, flexibilidad y capacidad de crecimiento de los almacenamientos en disco. Y por tanto, en el rendimiento del propio Sistema Operativo. Una de cuyas funcionalidades más importantes es el manejo de datos.

En general, cada SO tiene su forma de organizar y controlar el acceso a los datos en el disco duro que le es específica, e independiente del medio físico (tipo de disco utilizado). Sin embargo, por razón de compatibilidad, y para mejor adaptarse a las distintas circunstancias, algunos Sistemas Operativos pueden utilizar distintos Sistemas de Ficheros (Linux es un caso paradigmático).

MS-DOS Los sistemas MS-DOS ("MicroSoft Disc Opertating System"), PC-DOS y derivados, hasta el MS- DOS v.6.22, utilizan un sistema de ficheros conocido como FAT. El nombre se debe a una de sus estructuras principales, la tabla de situación de ficheros FAT ("File Allocation Table").

Como señala su propio nombre, el sistema utiliza una tabla donde se encuentran las direcciones de los ficheros en el disco. Las tablas FAT están contenidas en el disco junto con el resto de datos, aunque durante el funcionamiento normal se cargan en memoria. Dependiendo del espacio asignado para escribir en ellas reciben diversos "apellidos": FAT12, FAT16 y FAT32, que utilizan respectivamente 12, 16 y 32 bits para apuntar el número de cluster de un trozo de fichero (todas las versiones de MS-DOS previas a la 7.x utilizaban FAT12/16). Es un sistema de ficheros muy simple, aunque perfectamente adecuado a las pretensiones iniciales. La más evidente para el usuario es la limitación de 8 caracteres para los nombres de ficheros y de 3 para las extensiones. Fórmula conocida como 8+3.

El sistema de ficheros de MS-DOS, que se comercializó con los primeros PCs de IBM, que carecían de disco duro (solo podían almacenar 160 KB de datos en su disco flexible), era en realidad una derivación del sistema de ficheros de CP/M ("Control program for microcomputers"). El sistema operativo de Gary Kildall, que había servido de inspiración al QDOS ("Quick and Dirty Operating System") de Tim Patterson, el "Padre" del DOS de Microsoft. El sistema era bastante ineficiente, ya que no estaba pensado para unidades grandes. Por esta razón, cuando IBM comenzó a dotar a sus equipos con unidades de disco de 10MB, Microsoft desarrollo un nuevo sistema de ficheros para su DOS 1.x, inspirado en el de UNIX (Microsoft había adquirido una licencia UNIX y había empezado a ofrecer una versión denominada XENIX). La capacidad crear particiones haciendo que aparezcan como una unidad de disco, fue añadida en el MS-DOS 3.2.

Page 3: Sistemas de archivos

Sistemas Windows

windows ha utilizando dos sistemas de ficheros : FAT, en distintas versiones y NTFS . Si empezamos por el principio, Windows 3.x no era realmente un sistema operativo; más bien una interfaz gráfica sobre MS-DOS. La última versión: Windows 3.11 para trabajo en grupo, incluía una mejora llamada "32-Bit File Access" que en realidad se trataba de una forma de acceso a disco para rutinas de 32-bit en modo protegido, en vez de las rutinas normales DOS de 16 bits. De forma que la estructura del sistema de archivos seguía siendo la DOS tradicional.

El Windows 95 inicial incluía un MS-DOS v.7.x que soportaba FAT16, mientras que una versión posterior, denominada OSR2 ("OEM Service Release 2") o Windows 95b, soportaba tambiénFAT32. El MS-DOS v.7.1 que venía con él también soporta FAT32.

Por su parte Windows NT fue diseñado desde el principio para ser un sistema operativo de red y multitarea que rompiese definitivamente cualquier nexo con sus ancestros MS-DOS. Soporta dos sistemas de fichero: su sistema "nativo", denominado NTFS ("New Technology File System") es un sistema de ficheros estilo UNIX/DOS. El segundo es el tradicional FAT32, incluido meramente por razones de compatibilidad y para permitir que los equipos puedan tener lo que se denomina arranque dual ("dual boot"),

UNIX Este sistema es propio de máquinas grandes utilizadas generalmente por muchos usuarios. Nació en entornos académicos y de investigación, por lo que dispone de mecanismos de protección y cooperación entre grupos de trabajo muy desarrollados. Existen varios dialectos de UNIX, aunque uno de ellos, Linux, se ha popularizado mucho en el mundo de la informática personal. Aunque la arquitectura de su sistema de ficheros sirvió de inspiración para las últimas versiones de MS-DOS, es totalmente incompatible con los sistemas FAT. Aunque originarios de un tronco común (el Unix de AT&T), existen distintas variedades que, en lo referente a su FS, se diferencian en cuestiones de detalle. Principalmente relacionadas con la forma en que se heredan las propiedades de los nuevos ficheros en función de las propiedades del directorio padre o del proceso que los crea.

Linux Este sorprendente sistema, fue desarrollado inicialmente por un estudiante (Linux Benedict Thorwald) según un diseño inspirado en Minix (un dialecto simplificado de UNIX diseñado por Andrew S. Tanenbaum). Posteriormente fue convertido por su creador en un SO "freeware" y rápidamente "adoptado" por la comunidad informática internacional, que le ha ido añadiendo infinidad de opciones, utilidades y mejoras. Es rápido, fiable y muy optimizado. El sistema de archivos Linux es distinto de los sistemas FAT, aunque dispone de una utilidad denominada mtools que da soporte a FAT32. Con el tiempo se le ha dotado de distintos sistemas de ficheros, de forma que sus usuarios pueden elegir entre una amplia variedad de opciones y tener acceso (en ocasiones restringido) a una enorme cantidad de formatos. El sistema es muy flexible, permitiendo incluso montar un sistema de ficheros de raíz única, que comprenda unidades físicas con sistemas distintos entre sí (unidades con formatos distintos). Entre los sistemas de fichero que Linux puede utilizar o "entender" se encuentran: bfs; minix; ext; ext2; ext3; xia; xfs; msdos; umsdos; vfat; jfs;

Page 4: Sistemas de archivos

reiserfs; nfs; is o9660; hpfs; sysv; smb y ncpfs. características de los más usados:

ext: Es una extensión del sistema de ficheros Minix (de ahí su nombre), aunque más elaborada. Su desarrollo fue suspendido en favor de ext2. A partil de la versión 2.1.21 ya no se incluye en el kernel de Linux.

ext2: Puede decirse que actualmente (2005) esta segunda "extensión" del sistema Minix, es el modelo "oficial" y más extendido en el mundo Linux. Es un sistema de ficheros de alto rendimiento que, en términos de velocidad y consumo de UCP, presenta las mejores prestaciones de entre los sistemas soportados por Linux, aunque no está exento de inconvenientes. Está dotado de una estructura estática y con relativamente poco espacio para anotar particiones excepcionalmente grandes o con gran número de ficheros en cada directorio. Aunque en honor a la verdad, estos límites son enormes: 32,768 subdirectorios en cada directorio; de 10,000 a 15,000 ficheros por directorio, y 4 Terabytes de capacidad. Sin embargo, quizás la principal limitación es que su estructura de listas encadenadas (similar a las FAT 8.1.2a1) no es especialmente adecuada para volúmenes muy grandes (desde luego, el concepto actual -2005- de "muy grande", no es el mismo que el de hace 10 años).

ext3: Es una versión "journaling" del anterior. Es decir, un sistema capaz de anotar las "transacciones" (operaciones) realizadas, y en caso necesario, disponer de cierta capacidad de rehacer los últimos cambios. El journaling garantiza la consistencia de los ficheros, ya que las operaciones de escritura/borrado de disco suponen distintos accesos y actualizaciones; sobre los datos y sobre los metadatos (tablas FAT por ejemplo . En caso de accidente. Por ejemplo, un apagado súbito, algunas operaciones pueden quedar sin realizar, produciendo inconsistencias en el sistema de ficheros. En estos casos, el sistema tradicional consiste en recurrir al empleo de utilidades (como fsck en Linux; fdisk en Windows, o el patético recover del DOS) que verifican la estructura lógica e intentan reparar los desperfectos (al menos evitar que sean origen de nuevos estropicios). El problema es que con frecuencia tales utilidades no resuelven el problema. Además, las rutinas necesarias después del "crash" de un gran sistema pueden requerir horas o incluso días de proceso. En cambio los sistemas journaling pueden rehacer la actualización que quedó incompleta (o anularla totalmente) en cuestión de minutos. El resultado es que estos sistemas son mucho más rápidos en el rearranque después de una incidencia. Algo que es especialmente valorado en determinados entornos de explotación (pensemos por ejemplo, en un gran banco).

hpfs: Es el "High Performance File System" utilizado por OS/2 de IBM . Aunque, debido a la ausencia de documentación al respecto, Linux solo ofrece capacidad de lectura (importar sus datos) desde estos sistemas de fichero.

iso9660: Es el sistema de ficheros utilizados en los CD-ROMs. Es un estándar para grabar ficheros de datos en los dispositivos ópticos como CDs y DVDs implementado en todos los sistemas que montan estos dispositivos. Como no podía ser menos, Linux soporta las dos versiones del estándar: High Sierra y Rock Ridge. jfs: Al igual que ext3, jfs es un sistema de ficheros

Page 5: Sistemas de archivos

"journalista". Desarrollado inicialmente por IBM para sus sistema OS/2 Warp , su código fue donado al Open Source Consortium a principios del 2000 y portado a Linux poco después. Se incluye en los kernel a partir de la versión 2.5.6, aunque puede instalarse como un parche en las versiones 2.4.x. Es un sistema muy adecuado para entornos empresariales que permite volúmenes muy grandes y utiliza técnicas avanzadas para mejorar el rendimiento. Una de sus características es que utiliza un sistema de asignación dinámica para los "inodes" que asigna o libera el espacio según las necesidades. La ventaja es que, al contrario que en otros sistemas. Porejemplo,ext2 , no es necesaria una estimación previa del espacio que se reservará a los inodes al crear el sistema de ficheros .

minix: Es el sistema de ficheros nativo del SO de igual nombre. Fue el primero de los disponibles para Linux, ya que como hemos indicado, el desarrollo original de éste se basó en aquel. Aunque adolece de importantes limitaciones (Minix es más un sistema pensado para la enseñanza que para explotación comercial , se sigue utilizando en disquetes y en unidades de disco RAM.

msdos:

Es la versión Linux del sistema de ficheros DOS tradicionalmente usado por los PCs IBM, Windows y PS/2. La versión Linux adolece de las mismas limitaciones que el DOS original.

Umsdos: Una extensión Linux del anterior que elimina alguna de sus limitaciones, como la de nombres cortos (8+2). Al tiempo que añade algunas capacidades nuevas. Por ejemplo, la designación de dispositivos de E/S como ficheros (algo muy común en el mundo Unix); posibilidad de definir tuberías ("pipelines") para utilizar la salida de un comando como entrada de otro. etc.

Nfs: Es el sistema de ficheros de red ("Network File System") que permite acceder ficheros situados en ordenadores remotos.

Ncpfs: Un sistema de ficheros de red que soporta el protocolo NCP ("NetWare Core Protocol") de Novell . Permite acceder y manejar los recursos de un servidor NetWare desde Linux.

reiserfs: Otro sistema de ficheros "journalista" de código abierto y disponible en la mayoría de distribuciones de Linux, diseñado por Hans Reiser y colaboradores en Namesys. Aunque presenta unas excelentes prestaciones en el manejo de ficheros grandes, una de sus características distintivas es su adecuación para manejar infinidad de ficheros pequeños. Su filosofía es que los ficheros pequeños estimulan la sencillez del código. ¡En lugar de utilizar una base de datos para manejar su información, utilice el sistema deficheros reiserfs resulta de 8 a 15 veces más rápido que ext2 en el manejo de ficheros de menos de 1 KB, y con la configuración adecuada, puede almacenar un 6% más de datos que aquel en el mismo dispositivo. En lugar de manejar clusters de tamaño fijo, su diseño le permite utilizar el

Page 6: Sistemas de archivos

espacio exactamente a medida de la necesidad. Los metadatos están orgnizados en una estructura de árbol ordenado bastante sofisticada (B+Tree , que además de gestionar los metadatos, almacena y comprime los despuntes (trozos de fichero que no alcanzan a ocupar un cluster).

smb: Otro sistema de ficheros de red, que soporta SMB ("Server Message Block"), un protocolo utilizado por Windows para trabajo en grupo (Windows 3.1); Windows NT, y Lan Manager de IBM. Permite compartir ficheros; impresoras; puertos serie y otras abstracciones utilizadas para comunicación entre ordenadores, como tuberías y buzones de correo.

Sysv: Es una implementación Linux del sistema de ficheros SystemV de Unix. Soporta las variedades Xenix FS (versión Microsoft de Unix); SystemV/Coherent; SystemV/386 y Coherent FS. xfs: En concordancia con la política de apoyo a Linux emprendida por algunas grandes compañías, Silicon Graphics, más conocida como SGI, ha distribuido una versión Linux de su sistema de ficheros XFS, diseñado originariamente para sus sistemas IRIX. En concordancia con sus orígenes, se trata de un sistema "journalista" de altas prestaciones, que soporta bitácora o registro de las transacciones con los metadatos [3], así como "granjas" de discos ("disk farms") extremadamente grandes. Uno de estos sistemas es 15 capaz de gestionar 18,000 Petabytes (10 bytes y un solo fichero puede alcanzar 9,000 Petabytes. xiafs: Fue otra extensión del sistema de ficheros inicial (Minix) con intención de mejorar sus conocidas deficiencias. Su desarrollo y mantenimiento fueron abandonados a partir de la versión 2.1.21 del kernel.

Squashfs: un sistema de ficheros de solo-lectura altamente comprimido, implementado como un módulo del kernel bajo VFS ("Virtual File System"). Puede ser útil en aplicaciones embebidas que requieran gestionar gran cantidad de datos de forma eficiente.

El seudo-fichero /proc/filesystems contiene información sobre los módulos cargados por el kernel de Linux. Puede utilizar el comando cat /proc/filesystems para inspeccionar su contenido. Si ejecuta el comando, seguramente verá (entre otras) las siguientes líneas:

OS/2 Este sistema operativo de IBM también fue popular dentro de ciertos círculos del mundo PC. Principalmente clientes corporativos de la compañía. Utiliza un sistema de archivos específico denominado HPFS ("High Performance File System") que permite nombres de ficheros de hasta 254 caracteres y soporta la coexistencia de varios sistemas de fichero en el mismo equipo utilizando distintos dispositivos. En especial unidades FAT12 y FAT16. Su utilidad de formateo permitía seleccionar entre el modo FAT y el HPFS vernáculo.

Las versiones 1 y 2 se denominaron OS/2, mientras que la 3 apareció bajo el nombre OS/2

Page 7: Sistemas de archivos

Wrap. Aparte de los programas escritos específicamente para él, el sistema permitía ejecutar programas DOS y Windows. Desde luego era superior técnicamente a los Windows de la época. Resultaba casi imposible "colgarlo", cosa que distaba mucho de ocurrir con aquellas versiones de Windows, famosas por sus pantallas azules BSoD ("Blue Screen of Death"), y podía instalarse sobre una máquina DOS, Windows 3.1/3.11, o Windows for Workgroups 3.1/3.11, sin perder la posibilidad de ejecutar las aplicaciones de estos sistemas. Disponía incluso de un sistema de carga dual que permitía arrancar en OS/2 o en DOS. Incluía un "BonusPack" que, ya en 1994 (entre otras) incluía IBM Internet Connection, una utilidad que permitía: "enviar correos electrónicos, acceder a tablones de anuncios, buscar información, conectar con otros sistemas y transferir archivos a su sistema" .

Macintosh El sistema de la manzana utiliza para organizar datos en discos duros y disquetes es un sistema de archivos denominado HFS ("Hierarchical File System").

Netware Este Sistema operativo de Novell utiliza un sistema de ficheros denominado NFS ("Netware File System"), que fue diseñado específicamente para servidores de red.

Este es quizás el único punto en contra, razón por la cual no era tan utilizado como los sistemas FAT hasta que Microsoft empezó a utilizarlo como sistema por defecto en algunas versiones avanzadas de Windows.