Sicuramente non sembra che siano già passati cinque anni da quando Huawei ha annunciato EROFS come un file system di sola lettura inizialmente progettato per dispositivi Android, ma si è rivelato utile nel kernel Linux principale per gli utenti Linux in generale con interessanti casi d’uso anche in arrivo intorno a container e altro ancora. Con il kernel Linux 6.4 in fase di sviluppo sono stati apportati ulteriori miglioramenti a questo file system di sola lettura.
EROFS con Linux 6.4 ottiene il supporto per il blocco di pagine secondarie che è particolarmente utile nello spazio AArch64 dove le pagine più grandi possono essere più comuni. EROFS di Linux 6.4 aggiunge anche la funzionalità dei prefissi dei nomi lunghi xattr. È inoltre disponibile il supporto per i dispositivi a blocchi appiattiti per le immagini multiblob da collegare alle macchine virtuali.
La pull request già unita da Gao Xiang spiega:
In questo ciclo, è disponibile il supporto del blocco di pagine secondarie per i file non compressi. Viene utilizzato principalmente per abilitare immagini a blocchi dorati da 4k su arm64 con pagine da 16/64k. Inoltre, gli utenti finali possono anche utilizzare questa funzione per creare un manifest per fare riferimento direttamente ai dati golden tar.
Inoltre, in questo ciclo viene introdotto anche il supporto per il prefisso del nome xattr lungo per evitare troppi xattr con lo stesso prefisso (ad es. overlayfs xattrs). È utile per la combinazione erofs + overlayfs (come il modello Composefs): la dimensione dell’immagine è ridotta di circa il 14% e anche le prestazioni di runtime sono leggermente migliorate.
Per quanto riguarda il lungo codice dei prefissi del nome xattr, Jingbo Xu di Alibaba ha spiegato nel precedente serie di patch:
overlayfs utilizza xattrs per conservare i propri metadati. Se tali xattr sono ampiamente utilizzati, come il modello Composefs [1], esiste una grande quantità di xattr con diversi valori xattr ma solo pochi nomi xattr comuni sono validi (trusted.overlay.redirect, trusted.overlay.digest e forse più in il futuro).
…
Introduciamo ora i prefissi dei nomi xattr lunghi per risolvere questo problema. Funzionano in modo simile ai prefissi dei nomi predefiniti, tranne per il fatto che i prefissi dei nomi xattr lunghi sono specificati dall’utente.Quando viene utilizzato un prefisso del nome xattr lungo, i prefissi xattr lunghi condivisi vengono archiviati nell’inode compresso o meta, mentre la parte finale rimanente del nome xattr a parte il prefisso del nome xattr lungo verrà archiviata in erofs_xattr_entry.e_name. e_name è vuoto se il nome xattr corrisponde esattamente al prefisso del nome lungo xattr.