Namjae Jeon, membro del progetto Samba, che supporta il driver EXFAT e il server KSMBD nel kernel Linux, ha proposto di includere una nuova implementazione del file system NTFS — ntfsplus — nel kernel. Si prevede che un driver NTFS di maggiore qualità e supportato migliorerà la compatibilità dei sistemi Linux con i dispositivi Windows e semplificherà il lavoro degli utenti.
Nella sua attuale forma, il supporto per NTFS in Linux è limitato al vecchio driver NTFS, rimosso dal kernel Linux e che supportava solo la lettura, oltre all'attuale driver NTFS3, che presenta molti problemi irrisolti a causa della scarsa manutenzione. A causa di tali problemi, molti utenti e distribuzioni continuano a utilizzare il vecchio driver ntfs-3g, che opera nello spazio utente.
Come base per il driver ntfsplus è stata utilizzata la base di codice del classico driver ntfs rimosso dal kernel, che è stato riprogettato, ampliato con la possibilità di scrivere dati e sostanzialmente migliorato per supportare funzionalità moderne, come l'uso dei folios di pagine di memoria invece della struttura buffer_head. Il nuovo driver implementa l'allocazione degli blocchi ritardata, consentendo di ottenere elevate prestazioni nelle operazioni di scrittura e riduzione della frammentazione. Per le operazioni di scrittura/lettura buffered, input/output diretto, mapping degli extent e operazioni di scrittura/lettura su pagina, è stata utilizzata la libreria iomap.
A differenza dell'attuale driver ntfs3, sviluppato da Paragon Software, il driver ntfsplus dimostra prestazioni superiori e supporta funzionalità come iomap, allocazione dei blocchi ritardata e mapping degli identificatori degli utenti durante il montaggio. Dopo la sua inclusione nel kernel principale, si prevede di implementare un completo journaling in ntfsplus (nel ntfs3 viene creato solo un journal di replay, che durante i test non funziona correttamente). Il nuovo driver supera con successo 287 test dal set xfstests e implementa funzionalità necessarie per eseguire test delle prestazioni Bonnie++ (il driver ntfs3 superava 218 test xfstests e dava problemi durante l'esecuzione di Bonnie++).
Durante i test di iozone, il driver ntfsplus si è rivelato più veloce del 3-5% rispetto a ntfs3 in modalità di scrittura uniprocessore e dal 35% al 110% quando vengono utilizzati 4 thread. La velocità di lettura di ntfsplus e ntfs3 è simile. Nel test di generazione dell'elenco dei file (ls -lR) in directory con 100/200/400 mila file, ntfsplus è più veloce del 12~14%. In termini di velocità di montaggio, ntfsplus è 5-6 volte più veloce. L'alta prestazione di ntfsplus è ottenuta grazie all'uso di operazioni asincrone iomap, allocazione ritardata dei blocchi, ottimizzazione dell'allocazione di nuovi cluster, ottimizzazione della fusione dei frammenti, caricamento in background della bitmap dei cluster, caricamento anticipato dei blocchi inode e delle informazioni sulle directory.
È stato preparato un insieme di utilità chiamate ntfsprogs-plus specificamente per ntfsplus, che funzionano nello spazio utente e si basano sulle utilità di ntfsprogs del progetto ntfs-3g. Dalle utilità di ntfsprogs sono state trasferite le utilità ntfsclone, ntfscluster e ntfsinfo. Il progetto ha anche sviluppato una nuova utilità chiamata ntfsck per la verifica e il ripristino di partizioni NTFS danneggiate.
Fonte: opennet.ru
