Linus Torvalds ha incluido en el núcleo Linux 7.1, cuyo lanzamiento se espera a mediados de junio, un conjunto de parches con una nueva implementación del sistema de archivos NTFS, que se ha desarrollado bajo el nombre de ntfsplus. El nuevo controlador se incluye bajo el nombre "ntfs", que antes se utilizaba para el controlador antiguo, que funcionaba en modo de solo lectura. El controlador ntfsplus fue desarrollado por Namjae Jeon, un miembro del proyecto Samba, que da soporte al controlador EXFAT y al servidor KSMBD en el núcleo de Linux.
El desarrollo de ntfsplus comenzó en 2022 después de la publicación de un informe sobre problemas de mantenimiento del controlador NTFS3, desarrollado por Paragon Software y proporcionado a partir del núcleo 5.15, en lugar del antiguo controlador NTFS que había sido abandonado. Desde noviembre de 2021 hasta junio de 2022, los desarrolladores de ntfs3 dejaron de comunicarse y de revisar los parches enviados, pero luego reanudaron el mantenimiento y publicaron un conjunto de correcciones que se incluyó en el núcleo 5.19. Desde entonces, se lanzan regularmente cambios para nuevas versiones del núcleo y, entre otras cosas, un conjunto bastante grande de mejoras y correcciones fue aceptado en el núcleo 7.0.
Como motivación para la inclusión en el núcleo del nuevo controlador ntfsplus se indicó que un controlador NTFS mejor y mantenido permitiría mejorar la compatibilidad de los sistemas Linux con dispositivos Windows y facilitaría el trabajo de los usuarios. Se afirmó que el actual controlador NTFS3 tiene problemas no resueltos, lo que lleva a que muchos usuarios y distribuciones sigan utilizando el antiguo controlador ntfs-3g, que funciona en el espacio del usuario. Al pasar por el conjunto de pruebas xfstests, el controlador ntfsplus supera con éxito 326 pruebas (41.4%) de 787, mientras que ntfs3 pasa 273 (34.6%).
El controlador ntfsplus se basa en la base de código del controlador clásico ntfs que fue eliminado del núcleo, se ha reescrito y ampliado con la capacidad de escritura de datos y se ha mejorado significativamente para soportar características modernas, como el uso de folios de páginas de memoria en lugar de la estructura buffer_head. El nuevo controlador implementa la asignación diferida de bloques, lo que ha permitido lograr un alto rendimiento en las operaciones de escritura y reducir la fragmentación. Para las operaciones de escritura/lectura en búfer, entrada/salida directa, mapeo de extensiones y operaciones de escritura/lectura por páginas se utiliza la biblioteca iomap.
En comparación con ntfs3, el nuevo controlador admite características como iomap, asignación diferida de bloques y mapeo de identificadores de usuarios al montar (idmap). Después de su inclusión en la rama principal del núcleo, se planea implementar un registro completo en ntfsplus (en ntfs3 hay soporte para la creación de un registro de repetición).
En ntfsplus también se logró mejorar el rendimiento gracias al uso de operaciones asíncronas iomap, asignación diferida de bloques, optimización de la asignación de nuevos clústeres, optimización de la fusión de fragmentos, carga del mapa de clústeres en segundo plano y carga anticipada de bloques inode e información sobre directorios. En las pruebas realizadas en noviembre del año pasado, iozone, el controlador ntfsplus, resultó ser un 3-5% más rápido que ntfs3 al escribir en modo uniproceso y un 35-110% al usar 4 hilos. La velocidad de lectura de ntfsplus y ntfs3 está aproximadamente al mismo nivel. En la prueba para listar archivos (ls -lR) en directorios con 100/200/400 mil archivos, ntfsplus es más rápido en un 12-14%. En velocidad de montaje, ntfsplus es de 5-6 veces más rápido (para una partición de 1 TB, 0.38 frente a 2.03 segundos).
Con base en las utilidades ntfsprogs del proyecto ntfs-3g, se ha preparado un conjunto propio de utilidades ntfsprogs-plus para ntfsplus, que funcionan en espacio de usuario e incluyen aplicaciones como ntfsclone, ntfscluster y ntfsinfo. El proyecto también desarrolló una nueva utilidad ntfsck para verificar y recuperar particiones dañadas con NTFS.
Fuente: opennet.ru
