Please enable JavaScript.
Coggle requires JavaScript to display documents.
Implementación de archivos, Nombre - Coggle Diagram
Implementación de archivos
Implementación de directorios
Directorio
Un directorio es un archivo especial que está marcado en el filesystem para diferenciarlo de un archivo regular y además tiene una organización especial. Es en esencia una tabla que contiene los nombres de los archivos y una referencia a la tabla de nodos-i (tabla que contiene los atributos de todos los archivos del sistema operativo y las referencias a su contenido).
Implementación
Antes de leer un archivo, se debe abrir utilizando una ruta absoluta o relativa. Esta ruta es una entrada contendrá al menos un directorio. Al igual que los archivos, los directorios requieren de atributos que deben ser guardados, estos atributos pueden ser guardados en la misma entrada de directorios. Otra posibilidad es guardar los atributos en nodos-i.
Comandos para el manejo del filesystem
touch
Crea o actualiza el acceso a un archivo
touch info.txt
cp
Copia un archivo o directorio
cp info.txt data.txt
cp -R mi_directorio mi_folder
rm
Eliminar archivo o directorio
rm info.txt
rm -Rf mi_directorio
mkdir
Crea un directorio
mkdir mi_folder2
rmdir
Elimina un directorio
rmdir mi_folder2
df
Muestra información del
filesystem
df -u
du
Muestra información del uso del disco
du -sh
dd
Copia un archivo en bloques
dd if=bk.sql of= backup.sql dd if=/dev/da0p1 of=/dev/null bs=1m
Backup y restore de datos
Son técnicas para poder salvaguardar y recuperar información. En sistemas operativos, son soluciones basadas en archivos, dado que permiten copiar información con el objetivo de respaldar los datos para utilizarlos a futuro. Son principalmente útiles en sistemas de base de datos.
Backup
mysqldump mibase > bk.sql
Restore
mysql -u root -p --database mibase < bk.sql
Archivos compartidos
Concepto
Cuando varios usuarios trabajan juntos en un proyecto, ellos necesitan probablemente necesiten compartir archivo. Una de las formas más sencillas de conseguirlo es mediante Symbolic Links (vínculo simbólico). Sin embargo, los SL no resuelven el acceso con seguridad.
Administración de permisos
El acceso a los archivos por parte de los usuarios está controlado por permisos de archivos y categorías. Los permisos tienen 3 categorías de acceso: El Propietario (owner), el Grupo (group) y Otros usuario (other). Por cada categoría, se manejan 3 tipos de permisos: Lectura (Read), Escritura (Write) y Ejecución (Exec).
Efectos
Permiso de efecto en archivos
r
El archivo se puede leer.
w
El archivo se puede modificar.
x
El archivo se puede ejecutar (si es un
ejecutable o archivo batch).
Permiso de efecto en directorios
r
Se puede listar su contenido (ls).
w
Se puede crear o eliminar archivos/dir.
x
Se puede acceder al directorio (cd) y listar los archivos que contiene (ls).
Nota
Normalmente, los directorios tienen permisos read y exec de tal forma que puedan listar el directorio y acceder a su contenido. Cuando un archivo o directorio se crea, hereda el owner y grupo del usuario que lo creó.
Valores de los permisos (mode)
Valores comunes en archivos
644 = Seguridad por defecto
640 = Seguridad mínima
660 = Seguridad colaborativa
777 = Sin seguridad
600 = Seguridad fuerte
Valores comunes en directorios
755 = Seguridad por defecto
750 = Seguridad mínima
770 = Seguridad colaborativa
700 = Seguridad fuerte
777 = Sin seguridad
Uso de umask
Permite realizar un enmascaramiento de los permisos utilizando un cálculo sobre los mode bits. Es un comando interno de la shell, por lo tanto, se debe utilizar .bashr o .bash_profile en Linux o .shrc en FreeBSD para mantener este enmascaramiento de forma permanente.
Archivos regulares
Permisos por defecto
666
rw- rw- rw-
Umask(022)
022
--- -w- -w-
Permisos efectivos
044
rwx r-- r--
Directorios
Permisos por defecto
777
rwx rwx rwx
Umask(022)
022
--- -w- -w-
Permisos efectivos
255
rwx r-x r-x
¿Qué es un archivo?
Es una unidad lógica de información creada por un proceso. Un disco puede contener miles o millones de archivos, cada uno independiente del otro. El problema más importante al implementar archivos es mantener el registro de los bloques de disco donde va cada archivo.
Asignaciones
Contigua
Concepto
Es el esquema de asignación más simple para implementar archivos. Los archivos son guardados de manera secuencial o contigua en bloques. El tamaño de los bloques depende del SO, sin embargo, este esquema es propenso a desperdiciar espacios de bloques no completos.
Ventajas
_ Es simple de implementar, ya que se requieren solo 2 datos para dar el seguimiento: La dirección del bloque de inicio y el tamaño en bloques del archivo.
_ El rendimiento de las operaciones de lectura es excelente ya que todo el archivo es contiguo.
Desventajas
_ Fragmentación de disco después de eliminaciones de archivo.
_ Cuando el disco está muy fragmentado, es necesario compactarlo (de fragmentación) y esto puede tardar varias horas.
_ Aun así la asignación contigua es muy usada en DVD.
En Lista Enlazada
Concepto
Es el segundo esquema de asignación para rastrear los archivos en el sistema. El primer Word (palabra) del bloque es usado como un puntero al siguiente bloque. Se pueden tener bloques no contiguos.
Ventajas
_ No se pierde espacio en disco por fragmentación.
_ El seguimiento al archivo es muy simple dado que basta con conocer el primer bloque del archivo dentro de un directorio.
Desventajas
_ El acceso aleatorio a los archivos es muy demasiado lento.
_ La cantidad de datos de almacenamiento es ligeramente menor dado que se utiliza un espacio para guardar el punto al siguiente bloque. Esto afecta también el rendimiento porque algunos programas leen en bloques exactos.
_ Esto se soluciona colocando una tabla en memoria con la información de los inicios de bloque. Esta tabla se denomina FAT (File Allocation Table).
En Nodos-i
Concepto
Este esquema es uno de los más utilizados por los sistemas operativos modernos. Se asocia cada archivo a una estructura de datos denominada nodo-i (nodo índice) donde se guardan los atributos del archivo y los bloques de disco.
Ventajas
_ Necesita estar en memoria solamente cuando el archivo está abierto.
_ El tamaño de este array es mucho más pequeño que tener toda una tabla FAT.
_ El tamaño requerido es la suma de todos los arrays de todos los archivos abiertos en el sistema.
Desventajas
_ Los nodos-i convencionales tienen espacio para guardar las direcciones del bloque, pero si un archivo es demasiado grande no podrá guardar todos sus bloques.
_ Esto se soluciona en algunos SO con una última dirección de bloque que contiene un punteo a un bloque de disco especial que contiene direcciones de bloque adicionales.
Nombre
Johan Andersson Chucas Julca