El desarrollador coreano Park Ju Hyung, especializado en portar firmware de Android para varios dispositivos, ha presentado una nueva versión del controlador para el sistema de archivos exFAT: exfat-linux, que es una rama del controlador «sdFAT» desarrollado por Samsung.
Actualmente, el controlador exFAT de Samsung ya se ha agregado a la rama provisional del Kernel de Linux, pero se basa en la base de código de la rama del controlador anterior (1.2.9). Actualmente, Samsung utiliza en sus teléfonos inteligentes una versión completamente diferente del controlador «sdFAT» (2.2.0), una de las cuales fue el desarrollo de Park Ju Hyung.
Además de cambiar a la base de código actual, el controlador exfat-linux propuesto se distingue por la eliminación de modificaciones específicas de Samsung, como la presencia de código para trabajar con FAT12/16/32 (los datos de FS son admitidos en Linux por controladores separados) y un desfragmentador integrado.
La eliminación de estos componentes nos permitió hacer que el controlador sea portátil y adaptarlo para un núcleo Linux normal, y no solo para los núcleos utilizados en el firmware Samsung Android.
Me acabo de dar cuenta de que estos controladores de puesta en escena exfat se basan en los controladores exFAT 1.x de Samsung.
He estado trabajando para que el nuevo controlador de Samsung (ahora llamado «sdFAT») se ajuste mejor a los usuarios generales de Linux, y creo que puede proporcionar una mejor base para que la comunidad trabaje (y espero que cumpla mejor con la codificación de la línea principal) estándar).
En el futuro, se planea mantener el controlador actualizado, transfiriendo los cambios desde la base de código principal de Samsung y transfiriéndolo a nuevas versiones del Kernel.
Actualmente, el controlador se ha probado al compilar con núcleos a partir de 3.4 y terminando con 5.3-rc en las plataformas x86 (i386), x86_64 (amd64), ARM32 (AArch32) y ARM64 (AArch64).
El autor de una nueva versión del controlador sugirió que los desarrolladores del kernel consideren incluir un nuevo controlador en la rama provisional como la base para un controlador de kernel exFAT regular, en lugar de la versión heredada recientemente agregada.
Las pruebas de rendimiento realizadas mostraron un aumento en la velocidad de las operaciones de escritura al usar el nuevo controlador.
Al colocar una partición en disco RAM: 2173 MB/s contra 1961 MB/s para entrada/salida secuencial, 2222 MB/s contra 2160 MB/s con acceso aleatorio y al colocar una partición en NVMe: 1832 MB/s contra 1678 MB/s y 1885 MB/s versus 1827 MB/s.
La velocidad de lectura aumentó en la prueba de lectura secuencial en ramdisk (7042 MB/s frente a 6849 MB/s) y lectura aleatoria en NVMe (26 MB/s frente a 24 MB/s).
Animo a los desarrolladores principales a explorar esta base de controladores y ver si vale la pena cambiar, ya que son los primeros días de la puesta en escena exfat.
Es más que probable que pueda comenzar a usar exFAT de manera confiable de inmediato siguiendo el enlace de arriba. Se probó en todos los núcleos LTS principales que van desde 3.4 a 4.19 y los que Canonical usa para Ubuntu.
El desarrollador también realizó trabajos para simplificar la instalación del controlador. Los usuarios de Ubuntu pueden instalarlo desde el repositorio de PPA y para el resto de las distribuciones, simplemente se tendrá que descargar el código y compilar.
También se puede construir un controlador con el Kernel de Linux, por ejemplo, al preparar el firmware para Android.
¿Como instalar el controlador exfat-linux?
Para quienes estén interesados en poder instalar este controlador en sus sistemas, podrán hacerlo siguiendo las instrucciones que compartimos a continuación.
Como se menciono, existe un PPA para los que son usuarios de Ubuntu y derivados de este. Para añadir este repositorio basta con abrir una terminal (puedes hacerlo con la combinación de teclas Ctrl + Alt + T) y en ella vamos a teclear:
sudo add-apt-repository ppa:arter97/exfat-linux -y sudo apt update
Ahora para instalar el controlador basta con teclear:
sudo apt install exfat-dkms
Mientras para los que prefieren realizar la compilación del código, solo tendremos que teclear lo siguiente en una terminal:
git clone https://github.com/arter97/exfat-linux cd exfat-linux make sudo make install
Finalmente para probar que el controlador este funcionando solo tecleamos:
sudo modprobe exfat