Dopo oltre due anni di sviluppo, è stato rilasciato il progetto WinBtrfs 1.10, che sviluppa un driver per l'uso del file system Btrfs sulla piattaforma Windows. WinBtrfs non si basa sul codice Btrfs del kernel Linux, ma è un'implementazione alternativa progettata da zero. Supporta Windows XP e versioni successive. Il driver è incluso nel sistema operativo ReactOS e può essere utilizzato per avviare Windows da una partizione con Btrfs. Il codice è scritto in C/C++ ed è distribuito sotto licenza LGPLv3.
WinBtrfs supporta la maggior parte delle funzionalità della versione Linux di Btrfs, inclusa la lettura e scrittura in modo asincrono, l'uso di RAID0/1/10/5/6, caching, auto-scoperta delle partizioni, ACL, collegamenti simbolici, sottodirectory, snapshot, collegamenti rigidi, file sparse, allocazione anticipata dello spazio, compressione, bilanciamento, controllo dell'integrità dei dati, aggiunta e rimozione di dischi, invio e ricezione di sottodirectory, ridimensionamento delle partizioni, checksum avanzati (xhash, sha256, blake2). Tra le funzionalità specifiche del driver spiccano l'implementazione di flussi di dati alternativi e la corrispondenza degli ID utente di Linux e Windows. È possibile la conversione delle partizioni NTFS esistenti in Btrfs.
Tra le novità nella nuova versione:
- È stata aggiunta la supporto per la registrazione delle immagini delle bitmap con informazioni sullo spazio libero.
- È stata implementata la possibilità di salvare file di piccole dimensioni in blocchi di metadati (inline) in forma compressa.
- È stato migliorato il supporto per i dischi rimovibili. È stato interrotto il supporto per la creazione di array RAID su dischi rimovibili.
- È stata aumentata l'affidabilità del ripristino da errori causati da esaurimento di memoria (OOM) o esaurimento dello spazio disponibile sul disco (ENOSPC).
- Sono stati risolti i crash che si verificavano durante lo spostamento di file tra sottodirectory e durante la creazione simultanea di un grande numero di file.
- È stato corretto un errore che portava a danneggiare l'albero degli extent durante la scrittura di snapshot.
- È stata corretta una condizione di stallo durante l'uso di collegamenti rigidi.
- È stata effettuata una ristrutturazione delle strutture interne e delle costanti per avvicinarle alle varianti utilizzate in Linux.
- Nella revisione delle modifiche e nell'analisi degli errori è stato coinvolto l'assistente AI Claude, ma il codice viene ancora scritto manualmente.
Fonte: opennet.ru
