Professional Documents
Culture Documents
tamaño de 512 bytes a partir del inicio del volumen. uno, o bien, cero para indicar que el espacio
Consta, en este orden, de los siguientes elementos. se encuentra disponible.
• DIR SALTO - 3 bytes para el salto al sector • BLOQUE SIG - 4 bytes. Este atributo es el
de arranque para una arquitectura Intel x86. que permite expandir la cantidad de archivos
• OEM ID - 8 bytes para el nombre y versión contenidos por el directorio, ya que se puede
del sistema de archivos. tener un sólo directorio fragmentado a lo largo
• NUM DIR - 1 byte para el número de copias de varios mini sectores. Este atributo es un
de la zona de directorios. apuntador al siguiente mini sector. Si no hay
• TAM DIR - 2 bytes indicando el número de fragmentación, se le asigna un valor de cero.
sectores que ocupa la zona de directorios. • ATRIBUTOS - 1 sólo byte, donde cada bit rep-
• BYTS SECTOR 1 Byte para indicar un expo- resenta una bandera de validación para distintas
nente de 2, para saber el número de bytes por propiedades del directorio, como se muestran a
cada sector. continuación:
• BYTS MINI SECTOR - 1 byte para in-
dicar,con un exponente de 2, el número de – SOLO LECTURA: 0x01
bytes por sector de la zona de directorios. – OCULTO: 0x02
• TOT SECTOR - 4 bytes para el número de – SISTEMA: 0x04
sectores para el volumen. – NOMBRE LARGO: 0x08
• MEDIA - 1 byte. Descriptor de dispositivos
Además, es posible notar que quedan bits libres
con el mismo formato que FAT.
para que alguna otra implementación sobre el
• HID SECTOR - 4 bytes. Conteo de sectores
MFS pueda tener un mayor grado de organi-
ocultos.
zación para las operaciones sobre directorios.
• VOL ID - 4 bytes para el número de serie del
• TIEMPO CR - 2 bytes. Tiempo de creación
volumen.
del directorio (se explicará más adelante el
• VOL ET - 11 bytes para la etiqueta del volu-
formato implementado).
men.
• FECHA CR - 2 bytes. Fecha en la cuál fue
• Espacio reservado - 24 bytes para posible
creado el directorio.
crecimiento futuro.
• TIEMPO ULT ACC - 2 bytes. Tiempo del
• BOOT CODE - 448 bytes para el código
último acceso al directorio.
bootstrap de arranque.
• FECHA ULT ACC - 2 bytes. Fecha de último
acceso al directorio.
B. Zona de directorios • LIGA PADRE - 4 bytes. Cada uno de los
La zona de directorios utiliza 3 sectores a partir directorios sólo puede ser apuntado por un
del boot sector. Debido a que requieren menos directorio padre. La dirección de este padre se
espacio, cada directorio ocupa lo que se definió encuentra aquı́.
como mini sector. Los directorios contienen • NUM AR - 2 bytes. Número total de archivos
un conjunto de ligas tanto a subdirectorios, que en el directorio.
se trabajan como ligas de cuatro bytes, como a • NIM DIR - 2 bytes. Número de subdirectorios
archivos, que son ligas de ocho bytes. El motivo de contenidos en el directorio.
la diferencia de tamaños es que se requiere menos • TAM BYTS - 4 bytes. Tamaño del directorio
espacio para direccionar directorios. Cada directorio (expresado en bytes).
de esta zona cuenta con el siguiente formato, en el
mismo órden en el que se presentan: Lo anterior es el encabezado del directorio.
• NOMBRE - 19 bytes para contener 16 car- Nótese que existe el atributo NOMBRE LARGO.
acteres con el nombre del archivo, además de Se tendrı́a que reservar espacio para los caracteres
3 caracteres para la extensión. La codificación sobrantes, sin embargo, dado que no siempre es
utilizada es ASCII. necesario, se puede agregar o no los siguientes
• SEC USD - 2 bytes. Número de mini sectores dos campos, inmediatamente a continuación del
ocupados por el directorio. Al menos ocupa encabezado, dependiendo si el atributo está activo:
3
• TAM NOM L - 2 bytes que indican el tamaño • BLOQUE SIG 8 bytes para apuntar al sigu-
del nombre largo. El hecho de reservar tanto iente sector. Si es 0, significa que no hay
espacio ayuda a poder tener nombres lo sufi- fragmentación.
cientemente especı́ficos como para poder orga- • ATRIBUTOS - 1 byte, siguiendo el mismo
nizar de manera fácil y personalizada nuestra esquema y especificaciones que los atributos
biblioteca multimedia. de los directorios.
• NOM L - El tamaño de este campo está es- • TIEMPO CR - 2 bytes. Tiempo en el que fue
pecificado por el atributo anterior, y contiene creado el archivo.
el resto del nombre del directorio. • FECHA CR - 2 bytes. Fecha en la cual fue
Una vez terminado el encabezado y el espacio creado el archivo.
del nombre largo (si se utilizó) se encuentran las • TIEMPO ULT ACC - 2 bytes. Tiempo de
ligas a subdirectorios y archivos (en el encabezado último acceso al archivo.
del directorio ya está establecido el número de • FECHA ULT ACC - 2 bytes. Fecha de último
ligas). Como ya se mencionó, la cantidad de ligas y acceso al archivo.
subdirectorios que un directorio puede direccionar • TIEMPO ULT ESC - 2 bytes. Tiempo en
es expandible por medio de otros mini sectores. Para el que se realizó la última escritura sobre el
evitar tener información redundante, cada contin- archivo. Notemos que una escritura implica
uación es un mini sector que contiene los siguientes modificación de contenido, mientras que un
cuatro campos: acceso puede implicar también una lectura. Por
fines de seguridad y mantener integridad de
• SEC USD - 2 bytes. Mini sectores utilizados.
información existe esta diferenciación.
• TAM BYTS - 4 bytes para contener el tamaño
• FECHA ULT ESC - 2 bytes. Fecha en la que
total en bytes.
se realizó la última escritura.
• BLOQUE SIG - 4 bytes. Apuntador en sec-
• LIGAS PADRES - 2 bytes. Número de ligas
tores a la continuación siguiente. Si es 0, quiere
padres. Como se mencionó, un archivo puede
decir que no hay más continuaciones.
estar apuntado por más de un directorio debido
• BLOQUE ANT - 4 bytes. Apuntador en sec-
a que esto permite mayor facilidad de organi-
tores a la continuación anterior.
zación. El motivo de la existencia de las ligas
Nótese que si un directorio está fragmentado, a los padres es que al remover o modificar
es posible moverse sobre él como una lista doble- un archivo, no es necesario buscar en todo el
mente ligada, con el fin de realizar operaciones más volumen las referencias al archivo, sino que se
rápidas, sobre todo si se están ejecutando constantes pueden eliminar las referencias directamente de
operaciones de acceso aleatorio. los padres.
• TAM BYTS - 8 bytes indicando el tamaño en
C. Zona de archivos bytes del directorio.
• LIGAS - 256 bytes designados para las ligas
La zona de archivos es la siguiente sección del a los padres, lo cual implica un máximo de 64
volumen. Hay dos puntos destacables a cerca de padres por archivo. Una liga con un valor de
los archivos del MFS; primero, son fácilmente ex- -1 significa un espacio disponible.
tendibles, al igual que los directorios, y segundo,
pueden ser apuntados por más de un directorio. Es
posible profundizar más en la estructura si se obser- Al igual que en la zona de directorios, los
van los atributos del encabezado de cada archivo: archivos pueden tener un nombre largo, ası́ que
dependiendo del atributo correspondiente, se puede
• NOMBRE - 19 bytes para el nombre corto,
o no reservar una zona para los caracteres extra de la
lo que implica 19 caracteres en codificación misma manera en la que se hace en la zona anterior.
ASCII, utilizando 16 para el nombre y 3 para
la extensión. Las continuaciones de los archivos fragmentados
• SEC USD - 2 bytes para indicar el número se realizan de la misma manera que los directorios,
de sectores ocupados por el archivo. Al menos con la diferencia en que cada uno de los atributos
debe ocupar uno. de los encabezados ocupa el doble de espacio.
4
sistema operativo donde muy probablemente existan • readroot : Por motivos de prueba,despliega la
una gran cantidad de archivos de configuración información contenida en el encabezado del
pequeños, o donde se guardarán documentos de MFS.
texto, entonces se comenzará a tener una pérdida • imp : Se le dan dos números enteros que
de espacio. representan rangos de memoria, e imprime el
Una mejor opción es dedicar este sistema de contenido de esos rangos. Principalmente se
archivos a dispositivos especializados en guardar utiliza para fines de prueba.
contenido multimedia, como reproductores de MP3, • cd : Para cambiar el directorio actual al direc-
o tarjetas multimedia, en dónde se aproveche el torio especificado.
espacio y se obtenga lo mejor del MFS. • printdir : Para fines de prueba, imprime un
Es importante revisar la estructura general del directorio en un determinado byte.
MFS si se quiere realizar una implementación, evi- • del : Borra el elemento que se le de como
tando por ejemplo, borrar el primer apuntador de la argumento.
lista de espacios vacı́os, no modificando las fechas, • cat : Lee el contenido de un archivo que se le
teniendo a consideración el uso de nombres largos, pase como parámetro.
etc. • copy : Se pedirá especificar entre distintos
tipos de copiado, ya que puede ser dentro del
mismo sistema de archivos, o bien, puede ser
B. Implementación realizada
un copiado desde o hacia Linux.
Para probar el MFS se utilizaron memorias Flash
USB de al menos 1GB para verificar que era
factible realizar operaciones básicas de un sistema V. P OSIBLES MEJORAS O IMPLEMENTACIONES
de archivos con la información provista por las Por supuesto, MFS tiene mucho espacio para
estructuras implementadas. El primer punto a con- mejorar, y este tipo de consideraciones son las que
siderar es que se eligió C como lenguaje por su ponen en perspectiva del potencial de este proyecto.
rapidez y capacidad de integración con el sistema Primero, dado que se trata de un producto des-
operativo, y GNU/Linux debido a que es muy tinado a usuarios finales, la facilidad de uso es
fácil realizar operaciones de bajo nivel sobre los un factor importante, por lo que tener en cuenta
volúmenes, puesto que se pueden tratar como si que puede haber una gran cantidad de usuarios
fueran archivos mientras se tengan privilegios de de diferentes regiones y que puede haber proble-
administrador. mas de decodificación con los nombres. Se puede
Se creó una aplicación sin GUI que funciona tomar como ejemplo lo realizado por el sistema de
como un bash dentro de la consola estándar, in- archivos HFS+ de apple, el cual utiliza por default
dicándonos el directorio actual dentro del MFS decodificación UNICODE[1], pero deja espacio a
sobre el cual se está operando. El principal detalle especificar dentro del volumen el tipo decodifi-
es que su ejecución requiere privilegios de admin- cación que se está usando.
istrador, puesto que se trabaja directamente sobre Otro aspecto importante que por el momento no
el directorio /dev. Se utilizaron sólo las librerı́as se encuentra implementado, es el que un directorio
estándar de C. Previo a la implementación, se debe también pueda ser apuntado por más de un direc-
de utilizar el programa “format”, el cual recibe torio. Por supuesto, se requiere tener cuidado en
como argumento la ubicación dentro de /dev del cuanto no crear problemas con las ligas cuando la
archivo que representa al volumen. Una vez hecho organización se vuelva muy compleja, pero también
esto, se puede correr la aplicación principal, la cual traerı́a ventajas al usuario para poder crear organi-
puede realiza los comandos listados a continuación: zaciones más personalizadas.
• ls/dir : Comandos para listar directorios y Quizás una de las implementaciones más atracti-
archivos contenidos dentro del directorio ac- vas, serı́a poder soportarlo de manera nativa desde
tual. algún sistema operativo, para no tener que hacerlo
• quit : Permite salir de la aplicación principal. exclusivo de volúmenes externos y poder mover
• mkdir : Crea un directorio, dándole el nombre, archivos de una manera más intuitiva. Se podrı́a
dentro del directorio actual. tener una partición dedicada y optimizada para
6
VI. C ONCLUSIONES
El MFS es un sistema de archivos que si bien aún
se encuentra en una etapa de desarrollo muy tem-
prana, posee los elementos para poder convertirse
en una solución viable al almacenamiento masivo
de contenidos audiovisuales, puesto que aumenta
velocidades de acceso y permite un buen grado
de organización para bibliotecas multimedia muy
grandes. Aunado a esto, el MFS podrı́a fácilmente
implementarse en dispositivos portátiles o sistemas
dedicados a la reproducción de contenidos de audio
y video.
Es importante reconocer que también tiene
muchas limitantes, sobre todo si se compara con
sistemas de archivos de uso general, como lo son el
ext2/3, el NTFS o el HFS+, que son ampliamente
utilizados en computadoras de escritorio, puesto que
el MFS no está pensando para almacenar todo tipo
de información.
Es por los motivos anteriores que se llegó a la
conclusión de que el MFS es capaz de convertirse
en un modelo de almacenamiento multimedia que
le puede traer comodidad a los usuarios que posean
gran cantidad de este tipo de información, y a los
desarrolladores que busquen crear sistemas dedica-
dos a la reproducción de contenidos digitales.
R EFERENCES
[1] Apple, Inc. Technical Note TN1150: HFS Plus Volume Format,
http://developer.apple.com/library/mac/#technotes/tn/tn1150.html,
March 05, 2004.
[2] Microsoft, Corp. FAT: General Overview of On-Disk Format,
Hardware White Paper, May 05, 1999.
[3] Anne Shepherd. The Second Extended File System (ext2fs),
Linux Kernel Internals, Fall 2001.