Segundo Proyecto del curso de Sistemas Operativos (código 6600) en la carrera de Ingeniería en Computación.
Realizar una re-implementación de algunas de las funciones de un filesystem en el espacio de usuario del Sistema Operativo GNU/Linux. El proyecto debe ser realizado utilizando el lenguaje de programación C y las bibliotecas FUSE. Además, el filesystem debe poder imprimirse en hojas de papel.
Se tratará de una implementación de las siguientes funciones POSIX:
- getattr
- create
- open
- read
- write
- rename
- mkdir
- readdir
- opendir
- rmdir
- statfs
- fsync
- access
- Se encarga de crear un nuevo sistema de archivos QRFS.
- El usuario puede definir el nombre del archivo QR que será el inicio de su partición física.
- Se le solicitará al usuario introducir un nuevo “passphrase”. Este se almacenará, y se utilizará como firma para encontrar el inicio del FS.
- Toda la información relevante a la organización del FS (ej. Superblock, o el manejo de espacio libre) deberá ser cifrada a partir de la contraseña del usuario. El resto del FS permanecerá sin cifrar.
- El sistema de archivos deberá de utilizar i-nodos como estructura de indexación de bloques.
Realiza un chequeo completo de consistencia del QRFS. Con el fin de comprobar la funcionalidad de la contraseña del usuario, la integridad de los archivos almacenados y el correcto funcionamiento de la información de organización del FS.
Realiza el trabajo de montar el FS en el sistema operativo. El QRFS será encargado de encontrar la firma en los archivos QR para definir cuál corresponde a los bloques iniciales del FS.
Para la compilación del proyecto se hace uso del archivo "CMakeList.txt", mediante los comandos:
mkdir QRFS_build
cd QRFS_build
cmake ../
cmake --build .El primer argumento es el directorio donde se desean crear los distintos archivos QR que servirán de almacenamiento de los datos, mientras que el segundo es la contraseña para cifrar la información sobre la organización del FS.
./mkfs.qrfs directorio_qr/ constraseñaUna vez ejecutado este comando se encontrará un nuevo directorio con el nombre especificado, el cual contendrá los archivos QR.
Se recibe el directorio que almacena a los archivos QR y la contraseña utilizada para la creación del FS.
./fsck.qrfs directorio_qr/ constraseñaEste mostrará mensajes de error si se encuentra alguna inconsistencia en el QRFS. En caso contrario se indicará el correcto funcionamiento del mismo.
El parámetro opcional es utilizado para indicar que se desea recibir mensajes sobre el funcionamiento del programa. Por su parte, se debe indicar el nombre del directorio que contiene a los archivos QR, la contraseña utilizada en la creación del FS y la carpeta que será utilizada como punto de montaje.
./mount.qrfs [-f] directorio_qr/ constraseña punto_montaje/Se deberá encontrar el nuevo sistema de archivos montado en el sistema operativo. Se podrán realizar las funciones solicitadas tal cual como funcionan en los sistemas Linux.
El programa funciona correctamente, y fueron implementadas todas las funcionalidades indicadas.
-
Brandon Ledezma Fernández
-
Walter Morales Vásquez


