Gestor de archivos en los formatos FAT y EXT3
Tiempo total: 0 días con 20:57:59 hrs
Acerca de la aplicación
La aplicación consiste en crear un gestor de archivos en los formatos FAT y EXT3, partiendo desde la creación de los discos duros virtuales de tamaño fijo, a partir de estos se crearan dos particiones primarias en el orden seleccionado, uno de estos estará activo y el otro desactivado, el cual servirá para almacenar toda la información realizado en el activo, es decir que a través de un RAID se almacenara toda la información para su posible recuperación.
El sistema de archivos tiene las funciones básicas las cuales son crear, eliminar y buscar carpetas y archivos, así como también permite modificar el nombre y el contenido de un archivo.
Este también cuenta con las opciones de reportes, el cual mostrar el estado de las estructuras con las cuales se ha creado el sistema de archivos, ya sea EXT3 o FAT.
Utilización de la aplicación
A continuación se explicaran las funciones las cuales dispone la aplicación.
Para crear un disco seleccione la opción Crear Disco, a continuación ingrese el nombre del disco y el tamaño del mismo, este ultimo debe de ser múltiplo de 4.
El menú Listar Discos muestra los discos duros disponibles.
Al montar un disco duro se muestran las opciones disponibles, dado que el disco es nuevo, se crean las particiones en el menú Crear particiones.
Al crear las particiones en el orden seleccionado, debe de seleccionar si quiere proteger el sistema FAT con contraseña, si es así se le pedirá el nombre de usuario y el password, si no es así no se pedirán los datos del usuario al momento de iniciar sesión o realizar cualquier operación.
Al seleccionar el menú Montar partición primaria, se entrar al sistema de archivos que este activo, en este caso se entra al sistema EXT3, así como también mostrar las opciones disponibles del mismo.
Para crear una carpeta se selecciona la opción Crear directorio, esta opción pedirá el nombre de la carpeta, así como también se pedirá el nombre de usuario y password si se estableció esta opción, esto es para crear la copia en el sistema FAT, que en este caso es el contrario. Para crear la carpeta el nombre ingresado no tiene que estar repetido en la carpeta, si es el mismo nombre que una carpeta o de un archivo se mostrara un mensaje de error.
Para crear un archivo se selecciona la opción Crear y guardar archivo, esta opción pedirá el nombre del archivo, así como también su contenido. Para crear un archivo el nombre ingresado no tiene que estar repetido en la carpeta, si es el mismo nombre que una carpeta o de un archivo se mostrara un mensaje de error. Dado que ya se inicio sesión en el sistema FAT, que es la partición no activa, ya no se pedirá los datos de inicio de sesión de este ultimo sistema y se creara la copia.
Para mostrar las funciones eliminar, se creó la carpeta folder_eliminar y el archivo archivo_eliminar.txt.
Para eliminar la carpeta, seleccione la opción Eliminar directorio, a continuación ingrese el nombre de la carpeta a eliminar, si la misma contenía mas información se listaran los archivos y carpetas eliminadas.
Como se puede observar, la carpeta folder_eliminar fue eliminada correctamente.
Para eliminar un archivo, seleccione la opción Eliminar archivo, el mismo pedirá el nombre y mostrar un mensaje confirmando su eliminación.
Desmontando el sistema de archivos, en las opciones del disco se seleccionara la opción Desactivar partición, iniciar con desactivada la cual sirve para desactivar la partición activa, en este caso EXT3 y activar la contraria, la cual es FAT.
En la imagen anterior se puede observar el sistema de archivos FAT con los archivos creados anteriormente en el sistema EXT3.
Para mostrar la opción de Renombrar archivo se creó se crearon los archivos y carpetas necesarias para entrar a la dirección home/jose/old.txt, para renombrar este archivo old.txt se selecciona la opción anteriormente mostrada, se ingresa el nombre del archivo a renombrar y a continuación el nuevo nombre, mostrar un archivo de confirmación.
Pare editar el contenido de un archivo, el primer paso es seleccionarlo en el navegador del sistema de archivos, a continuación se mostrar el contenido del mismo con un menú de dos opciones, la opción Editar es la que servirá para editar su contenido, esta opción pedirá el nuevo contenido, a continuación se mostrar un mensaje de confirmación.
La opción Listar directorio recursivo muestra todas las carpetas y archivos disponibles en la presente carpeta, así como también el los fólders y subfolders.
La opción Buscar directorio sirve para buscar una carpeta que este en la carpeta actual o en cualquier subfolder de la misma, si encuentra la misma mostrara su dirección complete o bien un mensaje de error.
La opción Buscar archivo tiene las mismas características que la anterior, únicamente que cada una fue desarrollada únicamente para buscar o carpetas o archivos.
Los reportes, esta aplicación cuenta con diferentes reportes para cada tipo de sistema, en el sistema FAT se muestran las opciones de reportes al seleccionar la opción Reportes la cual se muestra en el menú de opciones de disco.
La opción Reporte de Bloques de datos muestra la dirección del archivo txt creado con la información de cada bloque del sistema de archivos FAT.
La opción Reporte de Bitácora mostrar la información almacenada en la bitácora de cada operación realizada en la partición, si alguna acción fue realizada por parte del RAID como copia de la partición activa se mostrara en este reporte.
La opción Mostrar mbr del menú opciones de disco muestra la información almacenada en el mbr del disco duro creado.
La opción Ver datos actuales del sistema muestra la información almacenada, si la partición activa es FAT mostrar el Boot, si es EXT mostrara el Superbloque respectivamente.
Al seleccionar la opción Formatear partición del menú opciones de disco, este dará formato a las particiones del disco, es decir que si el orden de particiones en el disco es de EXT3 – FAT y las mismas contienen archivos, el resultado final serán las mismas particiones en el mismo orden sin información.
La opción Formatear disco da formato al disco, es decir que elimina cualquier configuración que tenga, el resultado será el disco sin ningún tipo de formato.
Para el sistema de archivos EXT3 se muestra el menú de Funciones especiales.
Al seleccionar la opción Rutas inodos bloques de archivos y carpetas se pedirá la ruta a evaluar, una vez ingresada se mostrar la información de cada inodo y cada bloque consultado que se utilizo para llegar al archivo o carpeta mencionada.
En la anterior imagen se presenta el último bloque e inodo consultados, en los bloques se reemplaza el carácter de salto de línea por los símbolos /#.
Con la opción Mostrar bloque según id se muestra la información del bloque indicado, el bloque indicado es el numero del mismo, en este caso el id 1 es la raíz del sistema EXT3.
Para finalizar se presenta el menú de reportes del sistema FAT, se puede observar que la opción que no cambia es Reporte de Bitácora, aquí se presentan dos opciones de reportes que son los que hacen la diferencia entre estos sistemas de archivos.
Las opciones Reporte del Bitmap de tabla de i-nodos y Reporte del Bitmap de bloque de datos, muestra el estado del bitmap para ambos tipos de estructuras.
Requerimientos del usuario
Para poder utilizar la aplicación, el usuario deberá de estar bajo el entorno GNU-Linux. Para poder editar el programa desde su código fuente, es necesario contar con los compiladores c/c++, para instalarlo solo debe de escribir el siguiente código en la terminal de Linux:
$ sudo aptitude install build-essential
Con este paquete podrá correr los archivos ejecutables así como también editar su código fuente con el compilador de c.
Planteo inicial de la solución
Dado que la aplicación consiste en la creación de discos, estos serán con archivos binarios, existirán más de un disco, así que en el sistema operativo GNU-Linux se creara una carpeta llamada sistema con los permisos necesarios para que el programa cree todos los archivos binarios que cada uno representara un Disco.
Así como también, para alojar los reportes generados por el usuario se creara una segunda carpeta llamada reporte, en esta se guardaran los archivos txt que el usuario genere al momento de utilizar la aplicación.
El disco duro y sus particiones se representan gráficamente de la siguiente manera:
En esta imagen se puede observar, como la primera estructura utilizada para crear el sistema de archivos es el MBR, el cual indica cual es la partición activa, así como también la que servirá de copia.
El sistema de archivos EXT3 está compuesto por las estructuras mostradas en la imagen anterior.
Así como también se puede observar el sistema FAT, algo que se puede observar es como la estructura de la bitácora se repite en ambos sistemas, a partir de esto se puede observar que se usara la misma estructura para ambos sistemas de archivos.
Aquí puedes descarga el código de la aplicación desde mi servidor!
http://www.elconspirador.com/wp-content/uploads/2014/03/proyecto1_200915162.zip
Mensaje del desarrollador
Este proyecto lo desarrolle lo más rápido posible, pero más de una persona observara que entre todas las líneas de código, en ningún momento utilice la función malloc, lo que causa inexactitud.
Explicación de la función malloc:
http://www.elconspirador.com/2015/01/30/utilizacion-de-memoria-y-recursividad-en-c/
Cuando estudias sistemas, es como programar ciego, ninguno te va a dar un curso sobre como programar en c.
Cualquier persona que descargue el código deberá de analizarlo, la razón es que observe en los logs de visitas que bastantes estudiantes visitan esta publicación durante varias horas, así que, el lector no es el único que leyó estas letras en algún instante de tiempo.
Detalles
Autor: redacTor.
Curso: Manejo e Implementación de archivos.
Comentarios: No es una aplicación comercial, tiene errores que resolví conforme programaba y aprendía, es decir que tal vez tiene código repetitivo por que el tiempo es uno de los factores de todo estudiante de mi carrera.
A lo largo de su ejecución podrás encontrar algunas limitaciones o errores lógicos pero son mínimos, a partir de mi código puedes ver como se utilizan las estructuras y como se generaliza la información.