Hace 12 años | Por --69709-- a javierlongares.com
Publicado hace 12 años por --69709-- a javierlongares.com

¿Os habéis preguntado alguna vez porque un fichero de texto con un solo caracter ocupa varios Kb de espacio en disco? ¿Cómo hacen los ordenadores para grabar archivos, leerlos y borrarlos? ¿Y cómo hacen los aparatos electrónicos como las cámaras de fotos para guardar las imágenes en archivos? En este artículo se presenta la arquitectura de los sistemas de archivos FAT orientado al diseño de equipos electrónicos con tarjetas MMC, también llamadas tarjetas SD o tarjetas multimedia

Comentarios

D

#4 Trabajo en el mundo de los sistemas embebidos...

D

Esto es más antiguo que el sol. ¿FAT? Si eso ya sólo se usa residualmente...

tollendo

#1 No tan residualmente. Las tarjetas de memoria suelen estar formateadas en FAT. Y la muchos GPS, teléfonos, tabletas...

D

#2 Pero es por costumbre... Es un sistema de archivos que se dirige a la extinción. (Esto es opinión personal, no pretende ser dogma de fe).

Ed_Hunter

#1 #3 No es tanto por costumbre sino por obligación. Si quieres que tu dispositivo de almacenamiento pueda ser usado por Windows tienes dos opciones: usar uno de los sistemas de archivos soportados de forma nativa por Windows o suministrar un "driver" para Windows que implemente tu sistema de ficheros.

Si escogemos la primera opción, tenemos disponibles la siguiente lista de sistemas de ficheros:

1º FAT, en sus tres dialectos: FAT12, FAT16 y FAT32. Tiene la ventaja de que su uso casi no requiere licencias, excepto si queremos usar la extensión VFAT de conversión de nombres 8+3 a nombres largos de 255 caracteres, y eso es discutible (y tal vez ya haya caducado).

2º NTFS, que es extremadamente complicado de implementar, además de ser muy, pero que muy lento.

3º ISO9660, que es el empleado en los CD's y DVD's y es sólo de lectura.

4º UDF, empleado principalmente en CD-RW y DVD-RW. Existen diferentes niveles de soporte según las diferentes versiones de Windows.

5º exFAT: es una extensión de la FAT desarrollada por Microsoft y que requiere instalación de software extra en la mayoría de las versiones de Windows, además de pagar licencia a Microsoft por su uso.

De esta forma, en realidad sólo tienes dos sistemas de ficheros factibles: FAT y UDF, y el FAT es tan sencillo de implementar que se puede usar desde cualquier cosa. Además de estar soportado por cualquier sistema operativo desarrollado los últimos 15 años.

D

#7 Ext2 como FS y añadir una pequeña particion con EXT2FSD para instalar en cualquier Windwos.

Ed_Hunter

#8 Ya, pero ¿en qué sistema de ficheros pones el EXT2FSD? ¿podría usarse aunque el usuario no tenga permisos de administrador? ¿Funciona EXT2FSD en todos los Windows? ¿y para MacOS? Además con esto pierdes espacio de disco.

Todo esto sin tener en cuenta que ext2 es también más complicado de implementar que FAT.

albandy

#9 "Todo esto sin tener en cuenta que ext2 es también más complicado de implementar que FAT"

¿Seguro? pues como programador permiteme que discrepe.

http://www.fifi.org/doc/e2fslibs/html-info/libext2fs_toc.html

"Además pierdes espacio de disco"

Mira el tamaño de las direcciones de asignación de cluster en FAT a ver si luego piensas lo mismo.

¿Podría usarse aunque el usuario no tenga permisos de administrador?

Se supone que lo has programado tu, por lo tanto ya te encargarás de indicar en que directorios el usuario puede grabar (en caso de que lo montes como una unidad usb), en caso contrario si se utiliza directamente desde el sistema embedido tampoco te tienes que preocupar.


¿Funciona EXT2FSD en todos los Windows?
Windows 2000, xp, 2003, Vista, Win7 (X86, AMD64)

¿y para MacOS?
fuse-ext2

Ed_Hunter

#11 Me refiero a implementar en dispositivos empotrados, requieren una CPU más potente que para implementar una FAT porque requiere hacer más cálculos para encontrar los sectores. No es lo mismo recorrer una tabla que un i-tree.

En cuanto a la perdida de disco me refería al espacio dedicado a incorporar el EXT2FSD para que el Windows pueda acceder a la partición ext2. Lo mismo me refería a los permisos administrativos, ¿puede un usuario sin privilegios administrativos instalar EXT2FSD en su Windows y montar la partición ext2?.

En cualquier caso, esta opción es la que en mi comentario original indicaba como segunda opción: usar un sistema de ficheros cualquiera no soportado y suministrar el driver para Windows. Si descartamos esta opción, por los problemas de tener que suministrar el driver y los problemas de instalarlo, la mejor opción restante es usar FAT.

Además existen mejores opciones a ext2, como por ejemplo YAFFS2, UBIFS, LogFS, etc. especialmente diseñados para memorias tipo flash.

D

#12 Exacto, la capacidad del micro también es determinante, la implementación del sistema de archivos del artículo, por ejemplo, se hizo con un micro MSP430F149, el cual tiene solo 2Kb de RAM. ¿Por qué usar este micro? Por que un requisito era que el equipo durase 2 años con un par de baterías AA.

D

#1 Es una arquitectura muy sencilla para guardar datos de forma ordenada cuando no hay lugar para grandes capacidades de almacenamiento, por ejemplo en sistemas embebidos. Sistemas que crecen cada día más pues donde antes no había lógica ni programación, como en lavadoras, neumáticos, cerraduras, etc... Hoy hay complejos sistemas electrónicos basados en microcontrolador, con necesidad de guardar datos, etc.
¿En extinción?... Si no eres capaz de ver más allá de un PC...

D

Bueno, sabes tanto que no voy a discutir, tan solo comentarte un dato: FAT32 tiene millón y medio de búsquedas mensuales en Google, alguien lo usará...

D

Como bien apuntáis, la pérdida de espacio es vital. En este sentido en pequeños equipos con memorias NVRAM o flash de unos cuantos Kb, se usa incluso FAT12. En fin, me han fundido a negativos con la de noticias y blogs chorra que hay por aquí, espero de todos modos que os haya gustado el artículo y el blog.