proyecto1 junio2015enunciadoreal

9
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS MANEJO E IMPLEMENTACION DE ARCHIVOS Ing. Oscar Paz Campos Aux. Victor Corado Junio 2,015 ENUNCIADO PRIMER PROYECTO SISTEMA DE ARCHIVOS EXT3(THIRD EXTENDED FILE SYSTEM – EXT2+JOURNALING) INTRODUCCIÓN El proyecto consiste en la creación de un sistema de archivos EXT3. El sistema de archivos tendrá aspectos similares al sistema GNU/Linux. Aplicando los conceptos adquiridos en el curso y laboratorio de Manejo e Implementación de Archivos sobre estos temas. OBJETIVOS Comprender el funcionamiento de los sistemas de archivos. Aplicar el concepto de formateo, MBR y Gestor de Arranque. Aprender y complementar conceptos del lenguaje C. Aprender el manejo de distintos tipos de archivos en lenguaje C. Manipular el uso de archivos en el entorno GNU/Linux. Implementar diferentes estructuras de datos para el manejo de los sistemas de archivos en lenguaje C. Realizar diferentes implementaciones y formas de acceso a un archivo, para manejo de información. DESCRIPCION Para administrar un disco duro montado se contará con la ayuda de un MBR y un Gestor de Arranque. El MBR contendrá una estructura del registro de los datos de la partición entregando el control al Gestor de Arranque que mostrará un menú desde consola para empezar a utilizar el sistema de archivos. El sistema de archivos tendrá características y funcionalidades de GNU/Linux. Que permitirá el manejo de diferentes operaciones sobre archivos y directorios.

Upload: edward-gomez

Post on 05-Feb-2016

9 views

Category:

Documents


0 download

DESCRIPTION

[MIA]

TRANSCRIPT

Page 1: Proyecto1 Junio2015EnunciadoReal

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA

FACULTAD DE INGENIERIA

ESCUELA DE CIENCIAS Y SISTEMAS

MANEJO E IMPLEMENTACION DE ARCHIVOS

Ing. Oscar Paz Campos

Aux. Victor Corado

Junio 2,015

ENUNCIADO PRIMER PROYECTO

SISTEMA DE ARCHIVOS EXT3(THIRD EXTENDED FILE SYSTEM – EXT2+JOURNALING)

INTRODUCCIÓN El proyecto consiste en la creación de un sistema de archivos EXT3. El sistema de archivos tendrá

aspectos similares al sistema GNU/Linux. Aplicando los conceptos adquiridos en el curso y laboratorio de Manejo e Implementación de Archivos sobre estos temas.

OBJETIVOS • Comprender el funcionamiento de los sistemas de archivos.

• Aplicar el concepto de formateo, MBR y Gestor de Arranque.

• Aprender y complementar conceptos del lenguaje C.

• Aprender el manejo de distintos tipos de archivos en lenguaje C.

• Manipular el uso de archivos en el entorno GNU/Linux.

• Implementar diferentes estructuras de datos para el manejo de los sistemas de archivos en lenguaje C.

• Realizar diferentes implementaciones y formas de acceso a un archivo, para manejo de información.

DESCRIPCION Para administrar un disco duro montado se contará con la ayuda de un MBR y un Gestor de Arranque. El

MBR contendrá una estructura del registro de los datos de la partición entregando el control al Gestor de Arranque que mostrará un menú desde consola para empezar a utilizar el sistema de archivos.

El sistema de archivos tendrá características y funcionalidades de GNU/Linux. Que permitirá el manejo de diferentes operaciones sobre archivos y directorios.

Page 2: Proyecto1 Junio2015EnunciadoReal

ESTRUCTURA DE SISTEMAS DE ARCHIVOS EXT3

ESTRUCTURA MASTER BOOT RECORD

La estructura del Master Boot Record contiene la siguiente información:

mbr_byte_particion:

Contiene el byte donde inicia la partición.

mbr_tipo_sistema_archivos:

Contiene el tipo de sistema de archivos.

mbr_tipo_particion: Contiene el tipo de partición. mbr_particion_activa:

Indica si la partición es la activa, está será la por defecto que iniciará para realizar operaciones sobre el

sistema de archivos.

mbr_size_bytes:

Contiene el tamaño en bytes del sistema de archivos.

SUPER BLOQUE BITMAP

TABLA DE INODOS

BITMAP BLOQUE DE

DATOS

TABLA DE INODOS

BLOQUES DE DATOS

LOG(BITACORA)

Contiene información sobre todo el sistema

Manejo de los i - nodos con características similares a los del

sistema de archivos ext y su respectivo mapa de

Manejo de los i - nodos con características similares a los del

sistema de archivos ext y su respectivo mapa de

Manejo de información de archivos y su respectivo

mapa de bits sistema

Manejo de información de archivos y su respectivo

mapa de bits sistema

Bitácora del sistema, registro de operaciones.

Page 3: Proyecto1 Junio2015EnunciadoReal

OPCIONES DE LA APLICACIÓN

1. CREACIÓN Y FORMATEO DE PARTICIONES. Esta función es administrada por medio de la consola, que guía cada paso para crear la partición y formatear el disco.

El sistema contara con distintas opciones:

CREAR NUEVO DISCO DURO: permite crear un nuevo disco duro virtual con un nombre y un tamaño específico. El tamaño del mismo podrá ser un múltiplo de 4, ej. 4Mb, 8Mb, 16Mb, 32Mb, etc. (Mb=Tamaño del Archivo Binario, simulando un Disco Duro Virtual). El estudiante deberá calcular la cantidad de cada estructura que necesita utilizar para 4Mb y luego utilizará este cálculo como base para discos de otros tamaños, múltiplos de 4.

CREAR PARTICION: Permite crear una partición de cualquier tamaño (menor al tamaño del disco duro), y pueden crearse n particiones con la limitante del tamaño del disco. Estas

particiones no tendrán formato.

FORMATEAR PARTICION:

Este simplemente formatea el disco duro creado, al sistema de archivos EXT3.

2. MONTAR PARTICION. Selecciona una partición ya formateada de las disponibles y se empieza a trabajar en el sistema de archivos EXT3.

2. MANEJO DE DIRECTORIOS Los directorios deben ser únicos, esto quiere decir que no debe haber dos directorios con el

mismo nombre en un mismo path o ubicación.

CREAR DIRECTORIO: permite agregar un nuevo directorio. No se efectúa si la ruta en la cual se desea crear no existe, es decir deben existir las carpetas padre para poder crearse.

ELIMINAR DIRECTORIO: permite eliminar un directorio incluyendo sus subdirectorios y archivos.

LISTAR DIRECTORIO ACTUAL: lista los datos del directorio actual sus subcarpetas y archivos.

LISTAR DIRECTORIO RECURSIVO: lista los datos del directorio actual sus subcarpetas y

archivos, realizándolo en forma recursiva.

BUSCAR DIRECTORIO: muestra la ubicación de los directorios que coinciden con el nombre Ejemplo, si se busca el directorio con nombre mia:

• /usr/

• /usr/lib/

• /usr/lib/mia

3. MANEJO DE ARCHIVOS Los archivos deben ser únicos, esto quiere decir que no puede haber dos archivos con el mismo nombre en un mismo path o ubicación.

Page 4: Proyecto1 Junio2015EnunciadoReal

CREAR/GUARDAR ARCHIVO: permite guardar un archivo que ha sido creado o modificado en cualquier directorio existente, no debe de efectuar si la ruta en la cual se desea crear o eliminar no existe.

LEER/VER ARCHIVO: permite recuperar los caracteres de un archivo y mostrarlos al usuario.

ELIMINAR ARCHIVO: permite eliminar un archivo indicándole el path completo.

EDITAR ARCHIVO: recupera la información de un archivo específico lo muestra en un editor, permite modificarlo y guardar los cambios realizados. No sobre-escribir ni eliminar y volver a crearlo.

BUSCAR ARCHIVOS: muestra la ubicación de los archivos que coinciden con el nombre

Ejemplo, si se busca mia.txt:

• /usr/

• /usr/lib/

• /usr/lib/mia.txt

RENOMBRAR ARCHIVO: permite cambiar el nombre de un archivo indicándole el path completo.

4. REPORTES Los reportes se generarán en un archivo de texto, el formato para este reporte es criterio del estudiante, el formato SUGERIDO: "0,0,1,0,1,0" o "0|0|1|0|1|0"

Los reportes para Ext3 son

1. Reporte del Bitmap de tabla de i-nodos

2. Reporte del Bitmap de bloque de datos

3. Reporte de Bitácora.

5. FUNCIONES ESPECIALES

RUTA INODOS BLOQUES: Se ingresará la ruta de un archivo y se mostrará gráficamente los inodos (con sus metadatos) que se usaron para llegar hasta este archivo o carpeta, este se mostrará en forma de árbol con los datos de cada inodo y los bloques consultados. Para esto se puede utilizar la herramienta Graphviz o imprimirlo en consola.

MOSTRAR BLOQUES ARCHIVO: Se ingresará la ruta de un archivo o carpeta y se mostrará la información que está guardada en los bloques asociados a este ordenados por bloque.

MOSTRAR BLOQUE SEGÚN ID: Se ingresará el id del bloque y se mostrara la información que esta guardada en este bloque.

DESCRIPCIÓN Y FUNCIONAMIENTO DE CADA BLOQUE DEL SISTEMA ARCHIVOS EXT3

1. SÚPER BLOQUE: Será el encargado de guardar toda la información importante y clave del sistema de archivos, tanto estática (tamaño de estructuras) como dinámicas (espacio libre) simular a como se guarda en el super bloque del sistema de archivos EXT3. Esta estructura es muy importante en los sistemas de archivos EXT3 tan importante que se mantiene copias de esta por todo el disco ya

Page 5: Proyecto1 Junio2015EnunciadoReal

que si se llega a destruir puede recuperarse la mayor información posible, esto se simulará en este sistema de archivos por lo tanto se deberá guardar una copia de seguridad al final de este sistema de esta partición. La información que deberá tener el super bloque del sistema de

archivos EXT3 será:

DATOS EN LA ESTRUCTURA DESCRIPCIÓN

sb_numero_inodos Cantidad de i-nodos que tiene el sistema de

archivos.

sb_numero_bloques Cantidad de bloques de datos que tiene el

sistema de archivos.

sb_tamanio_bloque El tamaño dado a cada bloque.

sb_numero_magico Firma del disco duro

sb_bloques_freee Cantidad de bloques de datos libres.

sb_inodos_free Cantidad de i-nodos libres.

sb_mount_time Contendrá la última fecha de montaje

(dd/mm/yyyy hh:mm). Es decir la última vez

que se montóel sistema en lectura/escritura

como el time_t

sb_write_time Indicara la últimafecha y hora en la cual se

desmonto el sistema habiéndolo montado

como lectura/escritura.

sb_mount_count Cantidad de veces que se montóel sistema.

sb_ap_bitmap_ficheros Apuntados al inicio del bloque de bitmap

deficheros y enlaces simbólicos.

sb_ap_bitacora Apuntador al inicio del bloque de la bitácora.

sb_first_inodo Este será un apuntador al inodo del directorio

raíz

sb_first_bloque Este será un apuntador al primer bloque de

datos.

sb_fist_free_bitmapinodo Primer bit libre en el bitmap de i-nodo

sb_first_free_bitmapbloque Primer bit libre en el bitmap de bloque de

datos.

sb_first_free_ficheros Primer bit libre en el bitmap delbloque de

ficheros y enlaces simbólicos.

2. BITMAP DE BLOQUES Y BITMAP DE INODOS:

2.1 BITMAP DE BLOQUES En este se guarda de manera binaria la información de losbloques de datos que se encuentran ocupados o libres.

• 1 = Ocupado

• 0 = Libre o desocupado

Page 6: Proyecto1 Junio2015EnunciadoReal

2.2 BITMAP DE INODOS: Es igual al bitmap de bloques solo que aquí se describe a los inodos en el orden que se encuentran en la tabla de inodos y siguiendo la misma metodología:

• 1 = Ocupado

• 0 = Libre o desocupado

3. TABLA DE I-NODOS En este bloque se guardan todos los inodos, con sus apuntadores hacia sus respectivos bloques de datos. La estructura de un inodo debe contener:

Datos Descripción

Llave Indicara el id del inodo

i_date_mod Fecha y hora del último cambio al contenido de esta estructura

i_tam_archivo Indicar el tamaño del archivo(en bytes)

i_asig_bloques Numero de bloques asignados

i_time_last_access Tiempo de último acceso. Es decir la fecha en la cual se accedió a

este inodo para obtener información de sus carpetas o archivos

hijos.

i_ctime Fecha y hora de creación del inodo

i_block1 Bloque directo 1

i_block2 Bloque directo 2

i_block3 Bloque directo 3

i_block4 Bloque directo 4

i_Iblock Bloque indirecto

Es importante de hacer notar que un i-nodo no guarda el nombre del archivo. Las

direcciones de bloques de datos serán 4directos y un indirecto.

4. BLOQUE DE DATOS Los bloques de datos son multifuncionales de tamaño 64bytes. Pueden ser utilizados para guardar información del archivo. O contener una estructura interna para el apuntador al bloque indirecto que apunta a más bloque de datos y permite un archivo con más capacidad.

Page 7: Proyecto1 Junio2015EnunciadoReal

LOG BITÁCORA La bitácora maneja todas las transacciones que realiza el sistema de archivos (respaldo para recuperación), la cual tiene maneja la siguiente información.

DATO EN LA ESTRUCTURA DESCRIPCIÓN

log_tipo_operacion El tipo de operación a realizarse

log_tipo Si es archivo (0), si es directorio(1)

log_nombre Nombre archivo o directorio(path

completo)

log_contenido Si hay datos contenidos(512)

log_fecha Fecha de transacción

Inodo

Hola

mundo

Esto es una

prueb a

Hola

Hola

Bloque de datos para guardar información

Bloque de datos que contiene una estructura con apuntadores a otros bloques para archivos de tamaño más

grande.

Page 8: Proyecto1 Junio2015EnunciadoReal

ESPECIFICACIONES El lenguaje a utilizar es C puro, NO UTILIZAR C++ NI LIBRERIAS QUE NO SEAN APROBADAS.

• El sistema operativo a utilizar es cualquier distribución de GNU/Linux (instalación física, solo se calificará la práctica sobre una distribución de GNU/Linux).

• El manual técnico deberá incluir una especificación de lo que realiza cada método de la aplicación y debe coincidir con el código del proyecto entregado (la descripción de métodos es solo parte del contenido del manual). El proyecto debe de incluir con las especificaciones dadas, si no se incluye tendrán una nota de 0 ya que se considerara copia.

• Manual de usuario.

• El proyecto se realizará de forma individual.

• No se permite nada en Memoria entiéndase listas, vectores etc., para el manejo de los archivos/carpetas. Todo es acceso al disco en tiempo real.

El archivo binario no debe crecer.

Para el manejo de leer/escribir en el archivo binario de debe realizar como en la Práctica 1 con lenguaje de C.

CONSIDERACIONES A TOMAR EN CUENTA

• El Proyecto se entrega en la fecha indicada, se tomará en cuenta que la impuntualidad en la entrega afectará la nota, así como también queda a discreción del Auxiliar el recibir algo fuera del tiempo estipulado.

• Se verificarán copias de código, cualquier copia del Proyecto será sancionada con la pérdida automática del Laboratorio y la sanción correspondiente por parte de la Escuela de Sistemas.

• No se permite el uso de código bajado de Internet para el Proyecto.

• Si alguna persona no puede llegar a la calificación de proyecto (excepto a las personas que ya han definido con los Auxiliares que trabajan), debe informar con anticipación tanto al Auxiliar como al Ingeniero indicando el motivo de su falta, el Ingeniero determinará si puede o no realizarse la calificación del Proyecto y bajo qué términos se hará si esto se realiza.

ENTREGA Y CALIFICACIÓN

• Fecha de entrega de Proyecto: Viernes 19 de junio de 2015

• Hora de entrega: 7:30 – 8:00 am, enfrente de la escuela de sistemas.

• Lugar, Día y Hora de calificación: a definir

Forma de Calificación: Presencial, y conforme asignación en horario, si el estudiante no se

encuentra cuando se le llame este pasará al último, y si por alguna razón se le vuelve a llamar

por segunda ocasión y no estuviese, ya no se le califica.

Page 9: Proyecto1 Junio2015EnunciadoReal

Entregables: Se deberá entregar un CD tanto la Documentación (Manual Técnico y Manual

de Usuario) como el código fuente de la aplicación, así como el ejecutable. Los nombres de los

archivos fuente deberán llevar el siguiente formato: NombredelArchivo_Carnet.extensión

(miarchivo_201101001.c).