« Franchement, HFS+ est certainement le pire système de fichiers jamais créé. Dieu que c'est de la merde. » Linus Torvalds ne mâche pas ses mots pour dire combien il déteste le système de fichiers d'OS X.
Tout est parti d'un message sur Google+ annonçant une mise à jour de sécurité importante pour Git, un logiciel de gestion de versions mis au point par Torvalds. Le patch comble une vulnérabilité de Git sur les systèmes insensibles à la casse. Un malandrin pouvait en effet créer un arbre Git malveillant avec une casse différente, comme .Git
ou .GIT
, qui écrase le contenu du dossier original .git/
. L'attaquant pouvait ensuite exécuter des commandes arbitraires sur la machine (les détails techniques sur ce blog). D'où le courroux de l'inventeur de Linux :
L'insensibilité à la casse est tout simplement une idée horriblement mauvaise, et Apple aurait pu la réparer. Ils ne l'ont pas fait. À la place, ils ont mis les bouchées doubles sur cette mauvaise idée et l'ont étendu activement à Unicode.
Torvalds note que NTFS, le système de fichiers de Windows, a eu les mêmes problèmes avec UTF-8, mais ils ont été résolus. « Les problèmes d'OS X semblent être fondamentaux », estime cet utilisateur de MacBook Air (avec une distribution Linux).
Ce qui est effrayant avec HFS+, ce n'est pas qu'il s'agit d'un "système de fichiers pas terrible", mais comment il a été activement conçu pour être un mauvais système de fichiers par des personnes qui pensaient qu'elles avaient de bonnes idées. (le gras est de Torvalds, ndr)
Torvalds ne préconise pas pour autant de remplacer HFS+ par ZFS, un système prometteur qu'Apple a projeté d'utiliser pendant un temps (lire : ZFS : chronique d'un abandon). « Il y a beaucoup de bonnes raisons de ne pas passer à ZFS », notamment pour des questions de licence, « mais ils auraient pu pousser les gens vers HFS+ sensible à la casse, ce qui aurait rendu ensuite beaucoup plus facile (sur le long terme) la migration vers quelque chose de plus sain. »
À vrai dire, la sensibilité à la casse n'est pas tout à fait étrangère à HFS+. Depuis Tiger, OS X sait prendre en compte la casse, « mais Apple cache délibérément [cette option] et ne la maintient pas », admoneste Torvalds. L'activer revient par ailleurs à déclencher des bugs dans une flopée de logiciels qui n'ont pas prévu ce cas de figure (certains logiciels Adobe et Apple, pour ne citer qu'eux, s'accomodent très mal de cette option).
Pour le développeur et journaliste John Siracusa, qui connait bien les entrailles d'OS X, cette prise en charge seulement optionnelle n'est pas le plus gros défaut du système de fichiers. Il pense par ailleurs qu'iOS a toujours utilisé une version de HFS+ sensible à la casse.
Non, pour Siracusa il manque avant tout des fonctions modernes à ce système de fichiers vieux de 17 ans (il était déjà présent dans Mac OS). Apple l'a bien amélioré au fil du temps, mais il accuse toujours le poids des années. Schématiquement, il ne tire pas pleinement parti des SSD maintenant largement répandus ni des processeurs multicœurs qui sont devenus la norme... sans compter le problème de corruption de données qui peut rendre illisible un disque entier. « En 26 ans d'utilisation du Mac, la cause majeure de pertes de mes données a été et continue d'être la corruption du système de fichiers. »
« HFS+ a bien rendu service à Apple, et certainement pendant bien plus longtemps que ses concepteurs ne l'avaient imaginé. Mais comme les produits et technologies Apple qui rentrent dans cette description (par exemple Classic, Carbon, PowerPC), il arrive un moment où ces choses qui furent précieuses doivent disparaître de ce monde », écrivait Siracusa en 2011, au moment de la sortie de Lion. Quatre ans plus tard, on en est toujours au même point.
Source : photo de une : Mario Behling CC BY