TRENDING NOW

Se sabe que exFAT es un sistema de archivos creado por Microsoft para abordar las limitaciones de FAT32 cuando se usa en unidades flash de gran capacidad. La compatibilidad con el sistema de archivos exFAT apareció en Windows Vista Service Pack 1 y Windows XP con Service Pack 2.

El tamaño máximo de archivo en comparación con FAT32 se amplió de 4 GB a 16 exabytes, la restricción en el tamaño máximo de partición de 32 GB se eliminó para reducir la fragmentación, además de que se introdujo un mapa de bits de bloques libres para la velocidad, el límite en el número de archivos en un directorio se elevó a 65 mil, se proporcionó la capacidad de almacenar ACL.

Como sabrán, hasta hace poco el uso de este sistema de archivos en Linux era mediante la activación del soporte de este con ayuda del uso de software desarrollado por terceros. Debido a que la implementación era privada.

Pero hasta hace pocos meses Microsoft publicó las especificaciones disponibles públicamente e hizo posible utilizar las patentes exFAT para Linux de forma gratuita.

Aunque este movimiento por parte de Microsoft no libero el código fuente, lo que hace es que solamente está liberando los derechos de uso de exFAT y de reservarse cualquier intención de reclamo o demanda junto con los miembros de la Open Invention Network (OIN).

Muy aparte de eso, el controlador exFAT también desarrollado por Samsung y el cual ha propuesto incluir en el kernel de Linux un conjunto de parches con la implementación del nuevo controlador exFAT, basado en el código base “sdfat” actual, desarrollado para el firmware de los teléfonos inteligentes Samsung Android.

Planeamos tratar esta versión como el futuro ascendente para la base de código una vez fusionada, y todas las nuevas características y correcciones de errores irán primero.

A juzgar por los datos disponibles, el nuevo código implica más operaciones con metadatos e incluye la corrección de varios errores. Hasta ahora, solo se usa en dispositivos Samsung Android.

En esta implementación ofrecida por Samsung, se agregó a la sección experimental ” staging” (“drivers/staging/”) del núcleo de Linux 5.4 basado en código desactualizado (versión 1.2.9).

Aun que los entusiastas del firmware de Android portaron un nuevo controlador sdFAT (2.x), pero Samsung decidió introducir este controlador en el núcleo principal de Linux por sí solo.

Hasta ahora la implementacion propuesta por Samsung ha recibido varias aprobaciones de destacados desarrolladores de kernel de Linux.

Como tal, dado el momento, aún hay posibilidades de que este controlador exFAT pueda reemplazar el controlador exFAT de preparación actual potencialmente para Linux 5.6 si las revisiones de código restantes van bien.

En comparación con el controlador sdfat enviado en los teléfonos, se han realizado los siguientes cambios:

  • En comparación con el controlador exFAT agregado previamente al núcleo, el nuevo controlador proporciona un aumento del rendimiento de aproximadamente el 10%.
  • El código con la implementación de VFAT FS se ha eliminado, ya que este sistema de archivos ya es compatible por separado en el núcleo (fs/fat).
  • Se cambió el nombre del controlador a exfat
  • Se refacturó el código y se limpió integrarse completamente en la versión de Linux ascendente y seguir el estilo de codificación de Linux
  • Se ha realizado la optimización de operaciones con metadatos, como la creación de archivos, la búsqueda de elementos del sistema de archivos (búsqueda) y la definición del contenido del directorio (readdir).
  • Se han solucionado los errores identificados durante las pruebas adicionales.

Si se aceptan los parches, estos se incluirán en el código del kernel de Linux 5.6, cuya publicación se espera en un aproximado de unos 2 o tres 3 meses a la fecha. Aun que si llega a surgir algún problema, la implementación del controlador exFAT de Samsung podría atrasarse a la versión 5.7 del Kernel de Linux.

Más informacion en https://lkml.org/lkml/2020/1/18/114