Sei sulla pagina 1di 39

Programación Aplicada

Clase 2: El sistema de archivos de LINUX


Nombre unidad de aprendizaje:

Escuela de
Informática y Telecomunicaciones
2008 Escuela de Informática y Telecomunicaciones, DuocUC
Escuela de Informática y Telecomunicaciones

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.

© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 2
Escuela de Informática y Telecomunicaciones

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. © 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 3
Escuela de Informática y Telecomunicaciones

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.

© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 4
Escuela de Informática y Telecomunicaciones

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.

© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 5
Escuela de Informática y Telecomunicaciones

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. © 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 6
Escuela de Informática y Telecomunicaciones

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.
© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 7
Escuela de Informática y Telecomunicaciones

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".
© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 8
Escuela de Informática y Telecomunicaciones

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.
© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 9
Escuela de Informática y Telecomunicaciones

Desarrollo
El sistema de archivos de LINUX

© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 10
Escuela de Informática y Telecomunicaciones

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.

© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 11
Escuela de Informática y Telecomunicaciones

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.
© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 12
Escuela de Informática y Telecomunicaciones

Desarrollo
El sistema de archivos de LINUX

© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 13
Escuela de Informática y Telecomunicaciones

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:
© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 14
Escuela de Informática y Telecomunicaciones

Desarrollo
El sistema de archivos de LINUX

© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 15
Escuela de Informática y Telecomunicaciones

Desarrollo
Los sistemas de archivos EXTENDED
 Los SISTEMAS DE ARCHIVOS EXTENDED:
ext, ext2 y ext3 fueron diseñados e
implementados en LINUX por Remy Card
(Laboratoire MASI--Institut Blaise Pascal),
Theodore Ts'o del MIT y Stephen Tweedie
(University of Edinburgh).
 ext4 fue anunciado en octubre de 2006 por
Andrew Morton, como una mejora compatible
de ext3.

© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 16
Escuela de Informática y Telecomunicaciones

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.
© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 17
Escuela de Informática y Telecomunicaciones

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”.

© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 18
Escuela de Informática y Telecomunicaciones

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.

© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 19
Escuela de Informática y Telecomunicaciones

Desarrollo
Los sistemas de archivos EXTENDED
 El SISTEMA DE ARCHIVO ext3 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.

© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 20
Escuela de Informática y Telecomunicaciones

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.

© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 21
Escuela de Informática y Telecomunicaciones

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:

© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 22
Escuela de Informática y Telecomunicaciones

Desarrollo
Estructura de directorios de LINUX

© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 23
Escuela de Informática y Telecomunicaciones

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.
© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 24
Escuela de Informática y Telecomunicaciones

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.
© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 25
Escuela de Informática y Telecomunicaciones

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í.

© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 26
Escuela de Informática y Telecomunicaciones

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.

© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 27
Escuela de Informática y Telecomunicaciones

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.

© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 28
Escuela de Informática y Telecomunicaciones

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

© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 29
Escuela de Informática y Telecomunicaciones

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.

© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 30
Escuela de Informática y Telecomunicaciones

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).

© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 31
Escuela de Informática y Telecomunicaciones

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.

© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 32
Escuela de Informática y Telecomunicaciones

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.

© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 33
Escuela de Informática y Telecomunicaciones

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.
© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 34
Escuela de Informática y Telecomunicaciones

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í.

© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 35
Escuela de Informática y Telecomunicaciones

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.

© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 36
Escuela de Informática y Telecomunicaciones

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".

© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 37
Escuela de Informática y Telecomunicaciones

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 SISTEMAS DE ARCHIVOS 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.
© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 38
Escuela de Informática y Telecomunicaciones

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.

© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 39

Potrebbero piacerti anche