“HFS+ è sicuramente il peggiore filesystem mai creato. Una vera merda, Cristo!”. A dirlo, come sempre con il suo stile “elegante” e “pacato” è Linus Torvalds, sviluppatore noto a tutti per essere stato l’autore della prima versione del kernel Linux e il coordinatore del progetto di sviluppo dello stesso.
L’affermazione parte da un messaggio su Google+ nel quale si annuncia un importante aggiornamento di sicurezza per Git, software di controllo versioni che permette a più sviluppatori di lavorare su un progetto senza necessariamente essere connessi a una rete comune. La patch per Git risolve una vulnerabilità che in alcuni casi avrebbe potuto permettere di sovrascrivere il file originale .git/. con file con estensione .Git o .GIT. Un malintenzionato avrebbe potuto eseguire comandi arbitrari su alcune macchine (a questo indirizzo i dettagli) e da qui l’ira di Torvalds nei confronti dei file system case sensitive (che trattano in modo diverso i file con lettere maiuscole e minuscole). Il case sensitive permette di distinguere tra maiuscole e minuscole per i nomi di file e cartelle. Ad esempio, un file system che fa differenza tra maiuscole e minuscole, distingue le cartelle denominate “Miacasa” e “MiACAsa” trattandole e riconoscendole come cartelle distinte e separate.
“Il case insensitivity è semplicemente una cattiva idea e Apple avrebbe potuto risolvere il problema. Non l’hanno fatto e hanno continuamente testardamente a lavorare con questa cattiva idea, estesa poi all’Unicode”.
Secondo Torvalds NTFS (file system di Microsoft) ha sofferto di problemi simili ma questi sono stati risolti mentre a suo dire “i problemi di OS X sembrano essere basilari”. “Ciò che è spaventoso in OS X” continua Torvalds che, lo ricordiamo usa un Mac con una distribuzione Linux, “non è il file system terribile ma il fatto di essere stato progettato per essere attivamente un cattivo file system da persone che credevano di avere buone idee”.
Per Torvalds Apple ha ad ogni modo fatto bene a non passare allo ZFS per vari motivi (uno su tuti i problemi di licensing) “ma avrebbero dovuto eliminare il problema del Case-Sensitve in OS X”.
Torvalds sembra ignorare che in realtà qualsiasi disco su OS X da sempre può essere inizializzato scegliendo se attivare o no il case sensitive e dunque il problema di cui parla non esiste per niente o, almeno, non esiste giacché è possibile inizializzare i dischi con Mac OS esteso (HFS+) attivando o no l’opzione case sensitive. John Siracusa, che conosce bene OS X, risponde a Torvalds spiegando che non è quello di cui parla il problema principale di HFS+ ma piuttosto altri come la possibile corruzione e altri ancora causati dalla sua “vecchiaia” (per i dettagli tecnici leggere qui un vecchio articolo di Siracusa, in particolare il paragrafo “What’s wrong with HFS+”).
Il “Mac OS esteso” o HFS+ è nato nel 1988 come file system per sostituire l’HFS e non ha alcune caratteristiche di file system più moderni. Apple ha aggiornato il sistema con OS X 10.3 introducendo nuove caratteristiche (incluso il supporto alla sensibilità delle lettere maiuscole e minuscole), e con OS X 10.4 aggiungendo nuovi record per il supporto di privilegi standard di Unix e altro. Per essere un sistema così “anziano”, pur con vari difetti, è in grado di gestire un numero illimitato di file e cartelle, singoli file e volumi da 16 Exbibyte.
Qualche anno addietro Apple sembrava aver scelto (almeno per la versione server del sistema operativo) un nuovo file system, lo ZFS (ne parlammo all’epoca in questo articolo). L’accordo è poi saltato, sembra per il mancato raggiungimento di accordi con Oracle, detentrice delle proprietà intellettuali sulla tecnologia in questione.