Backups De Ficheros Temporales En Plan 9 UNDOFS Autor: Bartolomé Marín Sánchez Tutor: Francisco J. Ballesteros Cámara
Contenido Objetivos Introducción Diseño Implementación Conclusiones Lecciones aprendidas Trabajos futuros
Objetivos Problemas: Objetivos a cumplir Gestión de copias manual Ficheros temporales Objetivos a cumplir Servidor de ficheros Realización de copias temporales Gestión de copias
Introducción Características de Plan 9: Todo son ficheros El sistema de ficheros no está incluido en el kernel
Introducción Visión general de funcionamiento
Introducción El protocolo 9p: Version Attach Walk Create Write Remove Wstat Auth Flush Open Read Clunk Stat Error
Diseño Modelo de desarrollo en espiral Interfaz undofs Ficheros especiales undo, snapshot y dumps Opciones: Directorio servido (obligatorio) Punto de montaje (opcional) Opción de depuración (opcional)
Diseño Interfaz undofs (ejemplo) Antes Después
Diseño Visión general del diseño División en módulos
Diseño Submódulo Srv
Diseño Submódulo Ficheros
Diseño Subdivisión Arbol Subdivisión Undo
Diseño Módulo comandos: Análisis del comando Llamada al módulo correspondiente
Implementación Módulo Srv: Librería lib9p Llamadas open, create, read, write, wstat, remove Análisis de comandos en write
Implementación Módulo ficheros: Estructuras Tree y File de lib9p Estructura campo_aux struct campo_aux { char * contenido; uvlong longitud; int permiso; vlong marcaraiz; vlong marcafichero; };
Implementación Módulo ficheros: Submódulo Árbol: Dumps: Directorio de copias Directorio especial
Implementación Módulo ficheros: Submódulo Árbol: Inicializar Arbolservido: Inicializa estructura Tree Subir árbol (leerdirectorio,leerfichero) Añadir ficheros especiales
Implementación Módulo ficheros: Submódulo Árbol: F_write 1ª Alternativa: Clunk 2ª Alternativa: Open, Write, Create, Wstat, Remove
Implementación Módulo ficheros: Submódulo Snapshot: Comprobación existencia copia Creación subdirectorio dumps copia Copia de ficheros regulares en copia
Implementación Módulo ficheros: Submódulo Undo (Act_arbol): Inicial 1ª Modificación
Implementación Módulo ficheros: Submódulo Undo (Act_arbol): 2ª Modificación 3ª Modificación
Implementación Módulo ficheros: Submódulo Undo (Act_arbol): Final
Implementación Módulo ficheros: Submódulo Undo (Act_disco): Versiones MarcaRaiz MarcaFichero
Implementación Módulo ficheros: Submódulo Undo (Act_disco): Actdiscoundo: Búsqueda correspondencia ficheros nuevo con viejo No existe, crearlos Existe - Marcafichero distintas, actualizar - Si es un directorio recursividad Borrar ficheros inexistentes en directorio viejo
Implementación Módulo Comandos: Función swrite Análisis permisos (lib9p) ¿Comando o escritura? Si es un fichero de comandos: Ver cual es Realizar la operación adecuada Escritura: Actualizar contenido fichero Generar mensaje respuesta adecuado
Conclusiones Undofs cumple los objetivos presentados en el capítulo 2.
Lecciones aprendidas Manejo de Plan 9, Rio y Acme. Lenguaje de programación C. Compilación (8c, 8l) y depuración (acid) de programas en Plan 9. Funciones y funcionamiento de servidores de ficheros. Protocolo de comunicaciones 9p. Llamadas al sistema para la manipulación de ficheros. Librería lib9p (implementación y uso). Métodos para la depuración de programas.
Trabajos futuros Restauración parcial de copias Múltiples directorios servidos Añadir la funcionalidad a Acme Generación de copias automáticamente