390 likes | 533 Views
Clase 2: El sistema de archivos de LINUX Nombre unidad de aprendizaje:. Programación Aplicada. Objetivos. Objetivos de la clase
E N D
Clase 2: El sistema de archivos de LINUX Nombre unidad de aprendizaje: Programación Aplicada
Objetivos • Objetivos de la clase • Identifica sistemas de archivos y comandos del sistema operativo para inclusión en programas realizados en el ambiente de programación del intérprete de comandos Bash.
Desarrollo El sistema de archivos de LINUX • Un SISTEMA DE ARCHIVOS corresponde a los métodos y estructuras de datos que un sistema operativo utiliza para mantener la “pista” de los archivos sobre un disco o partición; esto es, la manera en que los archivos son organizados en el disco. • Un SISTEMA DE ARCHIVOS es también definido como una estructura completa de directorios que incluye un directorio raíz, y todos los archivos y directorios que “cuelgan” bajo esa raíz.
Desarrollo El sistema de archivos de LINUX • La mayoría de los usuarios consideran la información almacenada en un sistema LINUX como una colección de archivos y directorios, en gran medida independientes de los dispositivos o medios particulares. • Un administrador debe contemplar estos archivos y directorios como un conjunto de SISTEMAS DE ARCHIVOS que están conectados a los medios de almacenamiento.
Desarrollo El sistema de archivos de LINUX • Cuando usted recibe su computadora, los discos rígidos están ya probablemente formateados en sectores direccionables denominados BLOQUES, que son generalmente de 512 o 1024 bytes de tamaño. • Una vez instalado el Sistema LINUX, los discos se dividen en SECCIONES O PARTICIONES, cada una de las cuales contiene un cierto número de estos BLOQUES.
Desarrollo El sistema de archivos de LINUX • Cada SISTEMA DE ARCHIVOS está asignado a una de estas particiones como el área en donde está almacenada la información para ese SISTEMA DE ARCHIVOS. • La interfaz para cada partición de disco se hace a través de archivos especiales de dispositivo ubicados en el directorio /dev. • Los usuarios generales nunca tienen que preocuparse de la interfaz /dev del SISTEMA DE ARCHIVOS.
Desarrollo El sistema de archivos de LINUX • Sin embargo, si está administrando un sistema, deberá tener en cuenta estos archivos especiales de dispositivo. Pueden ser necesarios los nombres de dispositivo para efectuar tareas administrativas, tales como la alteración del particionamiento del disco y la realización de copias de seguridad. • Los discos duros son considerados dispositivos de bloques: leen y escriben datos en bloques de tamaños fijos, usualmente 1024 bytes.
Desarrollo El sistema de archivos de LINUX • Un dispositivo físico puede contener uno o más SISTEMAS DE ARCHIVOS. • Uno de los conceptos fundamentales para la comprensión del funcionamiento de los SISTEMAS DE ARCHIVOS de LINUX (y también de UNIX) es el concepto de i-node (o nodo-i). • Un archivo en el sistema LINUX se describe mediante un objeto denominado "i-node".
Desarrollo El sistema de archivos de LINUX • Por cada archivo en LINUX existe un i-node único que lo describe y que contiene punteros a los bloques que comprende dicho archivo. • El i-node contiene información sobre los permisos del archivo, el número de enlaces, fecha de creación, fecha de modificación, identificación del dueño, y alguna otra información. Las diez primeras entradas son números de bloque referidos a los bloques que contienen los datos efectivos del archivo.
Desarrollo El sistema de archivos de LINUX
Desarrollo El sistema de archivos de LINUX • En resumen, un i-node contiene toda la información acerca de un archivo, excepto el nombre de éste. El nombre del archivo es almacenado en el directorio, junto con el número del i-node. • Así, una entrada en el directorio consiste de un nombre de archivo y el número de i-node que representa a dicho archivo.
Desarrollo El sistema de archivos de LINUX • El i-node contiene los números de varios bloques de datos, los cuales son usados para almacenar los datos del archivo. Existe espacio solo para unos cuantos números de bloques de datos, sin embargo, si es necesario disponer de más números de bloques, más espacio para punteros a otros bloques de datos es asignado dinámicamente. • Estos bloques asignados dinámicamente son denominados bloques indirectos.
Desarrollo El sistema de archivos de LINUX
Desarrollo El sistema de archivos de LINUX • En el diagrama anterior la i-list, como he de esperarse, es una lista de i-nodes. • Los bloques de datos contienen los datos realmente almacenados en los directorios y archivos. También hay bloques de datos que sirven como bloques indirectos y contiene números de bloque de archivos extensos. • En la siguiente figura se muestra la relación entre un i-node, el directorio y los bloques:
Desarrollo El sistema de archivos de LINUX
Desarrollo Los sistemas de archivos EXTENDED • Los SISTEMAS DE ARCHIVOS EXTENDED: ext, ext2 y ext3 fueron diseñados e implementados en LINUX por RemyCard (Laboratoire MASI--Institut Blaise Pascal), TheodoreTs'o del MIT y StephenTweedie (University of Edinburgh). • ext4 fue anunciado en octubre de 2006 por Andrew Morton, como una mejora compatible de ext3.
Desarrollo Los sistemas de archivos EXTENDED • El sistema de archivos ext fue utilizado en las primeras versiones de LINUX. ext fue implementado en abril de 1992 e incluido en el LINUX 0.96c. • Dos nuevos SISTEMAS DE ARCHIVOS fueron implementados en enero de 1993: el XIA y el ext2. • El SISTEMA DE ARCHIVOS XIA estaba basado en el sistema de archivos de MINIX y fue rápidamente descartado.
Desarrollo Los sistemas de archivos EXTENDED • El ext2 fue basado en el código de ext con muchas reorganizaciones y mejoras. • El ext2 es probablemente el sistema de archivos más ampliamente utilizado en la comunidad LINUX. • Gracias a las optimizaciones incluidas en el código del kernel, ext2 es robusto y ofrece una excelente “performance”.
Desarrollo Los sistemas de archivos EXTENDED • Las optimizaciones a ext2 incluidas en el kernel están orientadas básicamente a mejorar la rapidez de las operaciones de E/S cuando se leen y escriben archivos. • El ext3 es un SISTEMA DE ARCHIVOS con registro por diario (journaling). En la actualidad es el SISTEMA DE ARCHIVOS más utilizado en distribuciones LINUX.
Desarrollo Los sistemas de archivos EXTENDED • El SISTEMA DE ARCHIVOext3 agrega a ext2 las siguientes características: registro por diario, índices en árbol para directorios que ocupan múltiples bloques y crecimiento en línea, entre otras.
Desarrollo Estructura de directorios de LINUX • Tal como UNIX, LINUX elige tener una muy simple estructura jerárquica de directorios. • Existe un estándar, el “ESTÁNDAR DE JERARQUÍA DE FICHEROS” (FHS - Filesystem Hierarchy Standard) que intenta definir las bases, para que tanto los programas del sistema, como los usuarios y administradores, sepan donde encontrar lo que buscan.
Desarrollo Estructura de directorios de LINUX • El estándar FHS se encuentra en su versión 2.3 y el documento del mismo se puede encontrar en su totalidad en la dirección: http://www.pathname.com/fhs/pub/fhs-2.3.html. • Toda la estructura de directorios de LINUX parte desde un directorio raíz, representado por /, y se expande en sub-directorios, en forma de árbol invertido; tal como se muestra en el siguiente diagrama:
Desarrollo Estructura de directorios de LINUX
Desarrollo Estructura de directorios de LINUX • Por debajo del directorio raíz / hay un importante grupo de directorios común a la mayoría de las distribuciones de GNU/LINUX. • Entre estos podemos nombrar: • /bin- Aplicaciones binarias importantes, usualmente comandos del sistema. • /boot- Archivos de configuración del arranque, núcleos y otros archivos necesarios para el arranque del equipo.
Desarrollo Estructura de directorios de LINUX • /dev- Contiene los archivos especiales que representan a los dispositivos físicos. • /etc- Archivos de configuración, scripts de arranque, archivos de contraseñas, etc. • /home - Directorios personales (home) para los diferentes usuarios. • /lib- Bibliotecas del sistema (libraries). • /mnt- Sistemas de archivos montados manualmente en el disco duro.
Desarrollo Estructura de directorios de LINUX • /proc - Directorio dinámico especial que mantiene información sobre el estado del sistema, incluyendo los procesos actualmente en ejecución. • /root - directorio personal del usuario root (o superusuario). • /sbin - Binarios importantes del sistema. La mayoría de los comandos administrativos se encuentran aquí.
Desarrollo Estructura de directorios de LINUX • /tmp - Archivos temporales. TODOS los usuarios pueden leer y escribir en él. De vez en cuando, todos los archivos se borran de modo automático. • /usr - Aplicaciones y archivos a los que puede acceder la mayoría de los usuarios. • /var – archivos variables como archivos de registros y bases de datos.
Desarrollo Tipos de archivos en LINUX • La base del SISTEMA DE ARCHIVOS de LINUX, es obviamente el archivo, que no es otra cosa que la estructura empleada por el sistema operativo para almacenar información en un dispositivo físico como un disco duro. • Dentro del sistema LINUX hay cuatro tipos diferentes de archivos: archivos ordinarios o regulares, directorios, enlaces simbólicos (o ligas simbólicas), y archivos especiales.
Desarrollo Tipos de archivos en LINUX • Archivos ordinarios - Los archivos ordinarios, también denominados archivos regulares o normales, son los más comunes, son los que almacenan datos, es decir, puede ser un programa, un archivo de texto, código fuente o cualquier cosa que pueda guardarse en cualquier lugar. El kernel soporta acceso secuencial y aleatorio en todos estos archivos
Desarrollo Tipos de archivos en LINUX • En LINUX no existen atributos especiales para determinar cuando un archivo es “oculto”. • Los nombres de los archivos que comienzan con un punto se consideran archivos ocultos.
Desarrollo Tipos de archivos en LINUX • Directorios - Los directorios tienen en común con los archivos ordinarios que ellos también contienen datos, sólo que en este caso, el dato es una lista de otros archivos. • Archivos especiales – Los archivos especiales se identifican porque cada uno tiene un número de dispositivo mayor y uno menor (major and minor device number).
Desarrollo Tipos de archivos en LINUX • El número mayor identifica al manejador del dispositivo que necesita el kernel para acceder al dispositivo. • El número menor significa un parámetro dependiente del manejador del dispositivo usado típicamente para diferenciar entre diversos tipos de dispositivos soportados por el manejador, o distintos modos de operación.
Desarrollo Tipos de archivos en LINUX • Utilizan un i-nodo pero no bloques de datos. Representan dispositivos en los que se pueden leer o escribir cantidades arbitrarias de datos. • Podemos ver archivos de este tipo en el directorio /dev. • Ligas Duras - En realidad una liga (enlace o vínculo) no es un archivo, es un nombre adicional para otro archivo.
Desarrollo Tipos de archivos en LINUX • Cada archivo tiene al menos una liga, usualmente el nombre bajo el cual fue originalmente creado. Cuando se hace una nueva liga hacia un archivo, un alias para este archivo es creado. • Una liga es indistinguible del archivo al cual está ligado; LINUX mantiene el conteo de la cantidad de ligas que apuntan hacia un archivo en particular y no libera el espacio que ocupa el archivo hasta que la última liga es eliminada.
Desarrollo Tipos de archivos en LINUX • Ligas Simbólicas - Son archivos que simplemente contienen el nombre de otro archivo. • Cuando el kernel trata de abrir o pasar a través de la liga, su atención es directamente hacia el archivo que la liga simbólica apunta en vez de abrir la liga simbólica en sí.
Desarrollo Tipos de archivos en LINUX • La diferencia entre las ligas, es que las ligas duras son una referencia directa, mientras las ligas simbólicas son una referencia a través de un archivo, las simbólicas son el archivo en sí, por lo tanto, tienen un propio dueño y permisos.
Resumen • Resumen de la clase • Un SISTEMA DE ARCHIVOS corresponde a la manera en que los archivos son organizados en el disco. • Un SISTEMA DE ARCHIVOS es también definido como una estructura completa de directorios que incluye un directorio raíz, y todos los archivos y directorios que “cuelgan” bajo esa raíz. • Un administrador de sistema debe contemplar los archivos y directorios como un conjunto de SISTEMAS DE ARCHIVOS que están conectados a los medios de almacenamiento físicos (discos). • En LINUX existen archivos especiales en /dev, llamados archivos de dispositivos, que están asociados a los dispositivos de hardware. • Un archivo en el sistema LINUX se describe mediante un objeto denominado "i-node".
Resumen • Resumen de la clase • Una entrada en un directorio LINUX consiste de un nombre de archivo y el número de i-node que representa a dicho archivo. • El i-node contiene información administrativa del archivo, como permisos, número de enlaces, dueño, fecha de creación, fecha de modificación, entre otra. Las diez primeras entradas son números de bloque referidos a los bloques que contienen los datos efectivos del archivo (bloques de datos). • Los bloques de datos contienen los datos realmente almacenados en los directorios y archivos. • Los SISTEMASDEARCHIVOS de LINUX se denominan EXTENDED: ext, ext2, ext3 y ext4. • Los sistemas EXTENDED se diseñaron para implementar el uso eficiente del espacio del disco y lograr una adecuada “performance” para el sistema LINUX.
Resumen • Resumen de la clase • Tal como UNIX, LINUX tiene una estructura jerárquica de directorios bastante simple y acorde con el estándar FHS. • / es el directorio raíz de LINUX. • Por debajo del directorio raíz / hay un importante grupo de directorios común a la mayoría de las distribuciones de GNU/LINUX, entre estos: /bin, /usr/bin, /sbin directorios en los cuales se almacenan comando LINUX, /etc directorio en el cual se ubican los archivos de configuración del sistema, /home directorio para las cuentas de usuario, /dev para archivos de dispositivos, etc. • Dentro del sistema LINUX hay cuatro tipos diferentes de archivos: archivos ordinarios o regulares, directorios, enlaces simbólicos (o ligas simbólicas), y archivos especiales.