Ficheros Unix

Embed Size (px)

Citation preview

Repblica Bolivariana de Venezuela Ministerio del P.P para la educacin Superior Universidad Nueva Esparta Sistemas Operativos 3

Gestin de Archivos

Alumnos: Williams Rivera Xavier Urdaneta Caracas, Octubre de 2011

- 1 / 12 -

Sistema de ficheros UnixPara analizar el sistema de ficheros, debemos tener en cuenta dos puntos de vista: el del usuario y el del kernel.

UsuarioVe una estructura jerrquica que permite crear, borrar y modificar ficheros y directorios. Permite un crecimiento dinmico de los ficheros. Protege los datos de los ficheros. Trata los perifricos como ficheros: los permisos de lectura o escritura en un perifrico son iguales a los de cualquier otro fichero. Tanto los ficheros como los directorios son una sucesin de bytes. Cada uno de ellos est representado por un inode, que tiene informacin acerca del fichero o directorio. Cada fichero tiene un nico inode, aunque puede tener varios nombres. Cada uno de esos nombres es un link. El UNIX maneja tres estructuras: tabla de inodes, tabla de ficheros y tabla de escritores de ficheros de usuario. Esta ltima tabla tiene una entrada para cada usuario que abre un fichero. Adems tiene informacin de otras tablas, como son una tabla particular para cada proceso (tabla de ficheros), e informacin de otras tablas (una por sistema de ficheros). Esta tabla contiene el descriptor de fichero, que es el nmero que se emplea como ndice para acceder a l tabla de descriptores de fichero, y un puntero a donde est el fichero en la tabla de ficheros.

InodesLa implementacin de ficheros utiliza una tcnica de ndices con mltiples niveles. Cada fichero tiene asociado un ndice llamado inode (index node). En disco, un sistema de ficheros UNIX tiene el siguiente aspecto:Boot Block Super Block Inode List Blocks

Boot Block: Contiene el cdigo para inicializar el UNIX. Todo sistema de ficheros tiene boot block, aunque no sea estrictamente necesario. Super Block: Indica el estado y configuracin general del bloque de fichero: tamao, bloques libres Inode list blocks: Serie de bloques donde estn de forma contigua en el disco los inodes de todos los ficheros. Cuando se habla de inode list nos referimos a un array en disco donde cada elemento es un inode de un fichero.

Data blocks: Bloques de datos de los ficheros.

- 2 / 12 -

Conviene diferenciar la unidad fsica o disco, que puede tener uno o ms sistemas de ficheros, cada uno con esta misma estructura. Cada sistema de ficheros se denomina dispositivo lgico, mientras que el disco es el dispositivo de almacenamiento fsico. El kernel es el encargado de asignar un nmero a cada dispositivo lgico o sistema de ficheros. El encargado de traducir las direcciones del dispositivo lgico al fsico es el controlador de E/S (device driver).

- 3 / 12 -

Campos por inode en la lista de inodes del disco

Propietario identifica al propietario del fichero asociado a ese inode, distinguiendo entre individual y el grupo. En el campo Permisos se expresan las posibilidades de operacin segn sea el propietario, un usuario de su mismo grupo o un usuario cualquiera del sistema quien intente la operacin. Los permisos son de lectura (Read), escritura (Write) y ejecucin (eXecute). Tipo de fichero indica informacin sobre el tipo especial de fichero, siendo algunos ejemplos: (): fichero regular; (d): directorio; (b): dispositivo de bloque; (c): dispositivo de carcter; (): inode libre. El campo Tiempos de fichero tiene varios subcampos: ltima modificacin del fichero; ltimo acceso al fichero; ltima modificacin del inode causada, adems de por un cambio en los datos del fichero, por un cambio en los propietarios, permisos o links, sin necesidad de cambiar los datos del fichero.- 4 / 12 -

El campo Nmero de links expresa el nmero de nombres del fichero dentro de la jerarqua. Tamao del fichero muestra el tamao del fichero en Bytes. El campo Tabla de contenidos almacena punteros a diversos bloques de datos. Por ejemplo, en UNIX System V la tabla de contenidos consta de 10 punteros directos a bloques de datos, un puntero indirecto, otro doble y otro triple. El nmero de punteros directos no es standard.

El kernel mantiene en memoria una tabla de inodes con la siguiente informacin:

El campo Status indica posibles estados del inode:1. Si el inode est ocupado;

2. Si hay un proceso en espera de que el inode quede libre; 3. Si el contenido del inode en memoria es distinto del inode del disco; 4. Si el contenido del fichero en el disco es distinto del contenido del fichero en memoria; 5. Si el inode es un punto de montaje; es decir, si del inode se haya colgado otro sistema de ficheros. El cuarto campo contiene los punteros necesarios para mantener la estructura de los inodes en memoria, que es similar a la del buffer cache: existen una serie de colas hash identificadas por el nmero del inode y el nmero de dispositivo lgico, junto con una lista de inodes libres. Cuenta de referencia indica el nmero de ficheros abiertos para ese i node; es decir, el nmero de copias abiertas mediante una llamada de tipo open que estn en unos, no cerradas por una llamada close.

Un inode estar en la lista de libres si el indicador de cuenta de referencia est a cero. Cuando se abre un fichero, si el fichero est activo se incrementa la cuenta; si se cierra, sta se decrementa, y si vale 0 se pasa el inode a la lista de libres.

Estructura y acceso a los ficheros regularesEn un inode se encuentran las direcciones de bloque de disco que ocupa el fichero al que pertenece el inode. En UNIX System V estas direcciones son 13 (punteros). Segn la tabla de contenidos, y dependiendo del tamao de los bloques, variar el posible tamao de los ficheros a manejar.- 5 / 12 -

Por ejemplo, con bloques de 1K resultan los siguientes tamaos de ficheros, segn se utilicen los ndices directos, indirectos, indirectos dobles o indirectos triples: Directos Indirectos Indirectos dobles Indirectos triples 10 K 256 K 644 MB 166 GB

Ficheros directorioSon, al igual que en MSDOS, ficheros con informacin para construir la estructura jerrquica del sistema de ficheros. Esta estructura consiste en un array de entradas de tamao constante de tal forma que cada entrada tiene la siguiente forma:

En UNIX System V, el tamao del campo N Inode es de 2 Bytes, y el tamao del nombre es de 14 Bytes. Los directorios son tratados por los procesos igual que los ficheros, con la salvedad de que cuando se crea una entrada de este tipo la realiza el kernel.

Permisos de acceso Lectura (R): Permite leer el contenido del fichero directorio; Escritura (W): permite escribir en el directorio, lo que supone crear y borrar archivos del directorio. Ejecucin (X): Permite la bsqueda de ficheros dentro del directorio (entrar en el directorio).

Al igual que en MSDOS, existen las entradas y en cada directorio: contiene el nmero de inode de ese directorio. contiene el nmero de inode del directorio padre.

El directorio raz contiene las dos entradas anteriores, y el nmero de inode es el mismo

SuperBloqueEn el superboque se halla almacenada la configuracin general del sistema. Contiene la siguiente informacin:

- 6 / 12 -

Lista de bloques libres: No es una lista completa, sino que slo contiene alguno de los bloques libres, que se encadenan con el resto de bloques libres del disco. El nmero de inodes libres se refiere al nmero de inodes no asignados a ningn fichero dentro de la lista de inodes. En la lista de inodes libres slo estn algunos de los inodes libres de la lista de inodes. Ocupado / No ocupado: Contiene dos flags indicadores del estado de las listas y bloques de inodes. Los estados dependen de si estn ocupados por un proceso o no. El ltimo flag expresa si el superbloque ha sido modificado. Su presencia viene dada por la existencia de una doble copia del superbloque: una en disco y otra en memoria. El flag indica la necesidad de actualizar la copia del super bloque en disco si ste se modifica.

- 7 / 12 -

Sistema de ficheros de Windows 2000 Windows 2000 soporta varios sistemas de ficheros, los ms importantes son FAT-16, FAT-32 y NTFS (Sistema de ficheros de NT). La FAT-16 es el sistema de ficheros de MS-DOS. Usa 16 bits de direcciones de disco, cuyas particiones en disco no son ms grandes de 2 Gb. La FAT-32 usa 32-bits de direcciones en disco y soporta particiones de disco de hasta 2 TB. NTFS es el sistema de ficheros desarrollado especficamente por Windows NT y que fue mejorado para Windows 2000 siendo ahora NTFS 5. Usa 64 bits de direcciones en disco y puede (tericamente) soportar particiones de hasta 264 bits, aunque otras consideraciones lo limiten a tamaos ms pequeos. Windows 2000 tambin soporta sistemas de ficheros de solo lectura para CD-ROMs y DVDs. Y es posible tener acceso a diversos tipos de sistemas de ficheros al mismo tiempo.

Las principales caracteristicas de NTFS son: Recuperabilidad: Uno de los principales requisitos del nuevo sistema de ficheros de Windows 2000 era la capacidad de recuperarse de cadas del sistema y fallos de disco. En estos casos NTFS es capaz de reconstruir volmenes de disco y dejarlos en un estados consistente. Para realizar esto se utiliza un modelo transaccional para cambios en el sistema de ficheros; cada cambio significante es tratado como una operacin atmica que es realizada por completo o no. Cada transaccin que estaba realizndose en el momento del fallo es deshecha por completo. Adems, NTFS usa almacenamiento redundante para datos crticos del sistema, de forma que un fallo en un sector del disco no produzca la perdida de los datos que describen la estructura y estado del sistema de ficheros. Seguridad: NTFS usa el modelo de objetos de Windows 2000 para reforzar la seguridad. Un fichero abierto es implementado como un objeto fichero con un descriptor de seguridad que define los atributos de seguridad. Discos y ficheros grandes: NTFS soporta discos y ficheros muy grandes ms eficientemente que el otros sistemas de ficheros como FAT. Mltiples cadenas de datos: En NTFS es posible definir mltiples cadenas de datos para un nico fichero. De esta forma cada fichero tiene dos componentes: los datos de fichero y los recursos que contiene informacin sobre el fichero. NTFS trata estos dos componentes como dos cadenas de datos. Facilidades de indexacin: NTFS asocia una coleccin de atributos con cada fichero. El conjunto de descriptores de fichero en el administrador del sistema de ficheros esta organizado como una base de datos de forma que los fichero pueden ser indexados por cualquier atributo.

- 8 / 12 -

NOVEDADES DE NTFS 5 Las principales novedades de la versin 5 del sistema de ficheros de NTFS son: Pueden especificarse cuotas de disco por usuario, lo que proporciona la capacidad de limitar el espacio de almacenamiento del usuario. Los descriptores de seguridad (listas de control de acceso, ACL) se almacenan una nica vez, aunque puede hacerse referencia a ellos desde varios archivos, ahorrando espacio en disco. Se encuentra disponible soporte nativo para propiedades, as como el indexado general para estas propiedades. Las propiedades se almacenan natvamente como flujos NTFS, lo que permite una consulta rpida. Puntos de bsqueda indirecta, lo que habilita la implementacin de enlaces simblicos, puntos de montado para volmenes de sistemas de archivos arbitrarios y almacenamiento remoto para la Gestin de almacenamiento jerrquico (HSM). El soporte para archivos con pocos datos significa que pueden crearse archivos o ampliarlos hasta un gran tamao sin tener que reservar espacio en el disco en el momento de su ampliacin. En vez de ello, la asignacin del disco se retrasa hasta que se especifica una operacin de escritura. Es posible efectuar el seguimiento de enlaces distribuidos por medio de identificadores nicos que pueden asignar sea los archivos o directorios. Esta funcin mejora el mtodo empleado hasta ahora de almacenar una referencia a un archivo. Cambiar el nombre del archivo de destino rompe los enlaces de ese directorio y todos los archivos y directorios situados por debajo de l. NTFS 5 admite la creacin y asignacin de identificadores nicos para los archivos y directorios y garantiza que mantendrn ese identificador. Se ha aadido la capacidad de agregar espacio a volmenes NTFS sin tener que reinicializar el ordenador. Puede evitarse la descompresin y compresin de los datos de archivos comprimidos transmitidos por la red, lo que reduce la sobrecarga de CPU en el servidor.

- 9 / 12 -

Conceptos fundamentales

Los nombres de ficheros individuales en NTFS estn limitados a 255 caracteres y los paths de directorio completos a 32,767 caracteres. Los nombres de ficheros estn en Unicode, permitiendo que los diferentes pases que no usan el alfabeto latino ( ej: Grecia, Japn, India, Israel) escribir los nombres de ficheros en sus lenguajes nativos. NTFS soporta nombres sensibles a las maysculas (casa es diferente de Casa y de CASA). Aunque la API WIN32 no soporta nombres sensibles a las mayusculas para nombres de ficheros y de directorios, as que esta ventaja se pierde para los programas que usa la API WIN 32. Un fichero NTFS no es exactamente una secuencia linear de bytes, como son los ficheros de FAT-32 y UNIX. En cambio un fichero consiste en mltiples atributos, cada uno de los cuales est representado por una cadena de bytes. La mayora de los ficheros tienen una pocas cadenas cortas, tal como el nombre del fichero y los 64 bits del ID de objeto, adems de una larga cadena con los datos. Sin embargo un fichero puede tener dos o ms cadenas de datos. Cada cadena tiene un nombre que consiste en el nombre de un fichero, dos puntos y el nombre de la cadena, por ejemplo, foo:cadena1. Cada cadena tiene su propio tamao y es independiente de las dems cadenas. La idea de las cadenas mltiples en un fichero fue tomada del Macintosh Apple, cuyos ficheros tienen dos cadenas, los datos y los recursos. Este concepto fue incorporado dentro de NTFS y permite a un servidor NTFS ser capaz de atender a clientes Macintosh. Las cadenas de ficheros pueden ser usados para otros usos como por ejemplo, un programa de retoque fotogrfico podra usar una cadena sin nombre para la imagen principal y otra cadena con nombre para una versin ms pequea de la imagen. Esta disposicin es ms simple que le utilizada normalmente que es ponerlas en el mismo fichero una despus de la otra Las llamadas a funciones de la API WIN32 para la manipulacin de ficheros y directorios es bastante similar a la de UNIX, excepto en que la mayora tienen ms parmetros y el modelo de seguridad es diferente. Cuando abrimos un fichero se devuelve un manejador, el cual ser usado para escribir y leer en el fichero. La API Win32 tambin tiene llamadas adicionales no presentes en UNIX.

- 10 / 12 -

Sistema de ficheros de OS/VS2 Virtual Storage Access Method (VSAM) es un esquema de almacenamiento de IBM del sistema operativo OS/VS2, utilizado tambin en la arquitectura MVS y ahora en z/OS. Es un sistema de ficheros orientado a registros que pueden estar organizados de cuatro maneras diferentes: Key Sequenced Data Set (KSDS), Relative Record Data Set (RRDS), Entry Sequenced Data Set (ESDS) y Linear Data Set (LDS). Mientras lo tipos KSDS, RRDS y ESDS contienen registros, el tipo LDS (aadido despus a VSAM) contiene una secuencia de bytes sin ningn orden de organizacin intrnseco.

Los registros de un VSAM pueden ser de una longitud fija o variable. Estn organizados en bloques de tamao fijo llamados Intervalos de Control (IC) y a su vez en divisiones ms grandes llamadas reas de Control (AC). El tamao de los Intervalos de Control se miden en bytes por ejemplo 4 kilobytes y las reas de Control en nmero de pistas o cilindros de disco. Puesto que los Intervalos de Control son las unidades de transferencia entre el disco y la computadora, una lectura completa leer un Intervalo de Control. Por su parte, las reas de Control son las unidades de reserva de espacio, de tal manera que cuando al definir un VSAM, se definen un nmero integro de reas de Control. La manipulacin de ficheros VSAM ("borrar y definir") se realiza normalmente a travs de la utilidad IDCAMS. Los programas propios pueden acceder a ficheros VSAM mediante sentencias de "data definition" (DD) en los JCL o en las regiones online de CICS. Tanto IMS como DB2 estn su estructura de datos. implementados sobre ficheros VSAM usando

Key Sequenced Data Set (KSDS) es un tipo de organizacin de datos usado en VSAM, un sistema de ficheros de IBM. Cada registro en un KSDS tiene asociado una clave nica. Un fichero KSDS consiste de dos componentes: uno de datos y otro de un ndice que permite al sistema localizar fsicamente los registros dentro del fichero mediante su clave nica. Al conjunto de ambos componentes se le denomina agrupacin. Los registros se pueden acceder aleatoriamente o secuencialmente y pueden ser de longitud variable. Como todo fichero VSAM, los componentes de datos e ndice son Intervalos de Control que a su vez estn organizados en reas de Control. Cuando se aaden registros aleatoriamente a un KSDS, los Intervalos de Control se completan y se dividen en nuevos Intervalos de Control, recibiendo cada nuevo Intervalo de Control aproximadamente la mitad de registros. De manera similar, cuando los Intervalos de Control de una rea de Control se completan, esta se divide en nuevas reas de Control, recibiendo cada nueva rea aproximadamente la mitad de Intervalos de Control.

- 11 / 12 -

Mientras que un KSDS bsico slo tiene una clave (la clave primaria), tambin se pueden definir ndices alternativos para permitir el uso de campos adicionales que puedan funcionar como claves secundarias. Un ndice alternativo es, de hecho, otro KSDS.

Relative Record Data Set (RRDS) es un tipo de organizacin de datos usado en VSAM, un sistema de ficheros de IBM. Se accede a los registros mediante su posicin ordinal en el fichero. Por ejemplo, el registro deseado puede ser el 42 en un fichero de 999 registros. El concepto detrs de RRDS es similar al de un mtodo de acceso secuencial, aunque puede acceder a los datos de manera aleatoria y dinmica. Estructura La estructura fsica de un RRDS consiste en todos los registros ordenados de forma secuencial. Su estructura lgica es exactamente la misma que la fsica. Un registro est posicionado despus del anterior, como una persona est posicionada despus de la anterior en una fila.

- 12 / 12 -