IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Linus Torvalds exprime son mécontentement à l'égard des systèmes de fichiers insensibles à la casse : « les noms insensibles à la casse sont terriblement erronés »,
Mais certains ne partagent pas son avis

Le , par Mathis Lucas

0PARTAGES

6  0 
Les travaux sur le noyau Linux 6.15 continuent de susciter des réactions brutales de la part de Linus Torvalds. Il précédemment a exprimé sa frustration à propos de certaines sections du code de test qui ont ralenti le processus de construction dans la version 6.15-rc1 du noyau Linux. Puis, récemment, il a partagé son point de vue sur une idée controversée de longue date : les systèmes de fichiers insensibles à la casse. Et comme d'habitude, il ne s'est pas retenu. S'adressant au développeur du nouveau système de fichiers Linux Bcachefs, il a déclaré : « les noms insensibles à la casse sont terriblement erronés, et vous n'auriez pas dû les utiliser du tout ».

L'élément déclencheur immédiat a été un bogue découvert dans Bcachefs, un système de fichiers Linux relativement nouveau qui est en cours de préparation pour une utilisation courante dans le noyau. Le développeur de Bcachefs, Kent Overstreet, a introduit des modifications pour prendre en charge les noms de fichiers insensibles à la casse, mais ces changements ont entraîné des problèmes. Ce qui a visiblement déclenché la colère de Linus Torvalds.

À la suite des modifications introduites par Kent Overstreet, il a été découvert que sa prise en charge des cas de figure (la partie qui permet à un système de fichiers de traiter « File.txt » et « file.txt » comme un seul et même fichier) était défectueuse. Un correctif a été soumis pour le noyau Linux 6.15.


À première vue, il s'agit d'un simple rapport de bogue de routine. Mais pour Linus Torvalds, il ne s'agit pas d'un petit problème technique. Selon lui, il s'agit d'un symptôme d'un problème beaucoup plus profond que les développeurs de systèmes de fichiers ne cessent d'ignorer. Son argument principal : la normalisation de la casse ne devrait même pas exister. Le message de Linus Torvalds ne concernait pas seulement un bogue. Il s'agit de l'idée en elle-même.

Citation Envoyé par Linus Torvalds


La seule leçon à retenir est que les spécialistes des systèmes de fichiers n'apprennent jamais. Les noms insensibles à la casse sont terriblement erronés, et vous n'auriez pas dû les utiliser du tout. Le problème n'était pas l'absence de tests, le problème était de les mettre en œuvre dès le départ.

Le problème est ensuite aggravé par « le fait d'essayer de faire les choses correctement » et, ce faisant, de les faire horriblement mal, parce que le « bien » n'existe pas, mais essayer de le faire donnera aux octets aléatoires une signification très magique. Et puis, les tests sont tous complètement cassés de toute façon. Aux dernières nouvelles, ils n'ont pas testé tous les cas vraiment intéressants - ceux qui causent des problèmes de sécurité dans l'espace utilisateur.

Des problèmes de sécurité comme « l'espace utilisateur a vérifié que le nom de fichier ne correspondait pas à un motif sensible à la sécurité ». Et puis le système de fichiers de merde finit par correspondre à ce motif *de toute façon*, parce que les gens qui font de l'insensibilité à la casse *INVARIABLEMENT* font des choses comme ignorer les caractères non imprimables, de sorte que maintenant « insensible à la casse » signifie aussi « insensible à d'autres choses aussi ».

Selon Linus Torvalds, le problème ne réside pas uniquement dans l'absence de tests, mais dans une gestion inadéquate de ces derniers. Il a pointé du doigt le fait que certains cas de test cruciaux n'avaient pas été couverts, en particulier ceux susceptibles d'entraîner des problèmes de sécurité dans l'espace utilisateur.

Le problème de Bcachefs n'est pas non plus la première fois que les systèmes de fichiers Linux rencontrent des problèmes de normalisation de la casse. Par le passé, il y a eu des problèmes tels que le comportement de la normalisation de la casse avec les emojis et d'autres caractères Unicode spéciaux.

Les incohérences et les risques liés au standard informatique Unicode

La discussion déclenchée par le développeur du système de fichier Bcachefs a ravivé un débat plus large sur la pertinence des systèmes de fichiers insensibles à la casse. Certains membres de la communauté estiment que cette fonctionnalité (l'insensibilité à la casse) est nécessaire pour assurer la compatibilité avec des systèmes comme Windows, tandis que d'autres, comme Linus Torvalds, considèrent que cela introduit des risques de sécurité et de cohérence.

Linus Torvalds a mis en lumière certaines incohérences liées à Unicode et aux caractères non imprimables. Ces incohérences peuvent entraîner des erreurs de correspondance des noms de fichiers et, par conséquent, nuire à la fiabilité du système. Il souligne que les « points de code ignorables » d'Unicode peuvent faire en sorte que deux noms de fichiers apparaissent différents à un utilisateur, mais sont traités comme étant identiques par un système de fichiers.

Par exemple, les emojis ❤ et ❤️ sont deux caractères Unicode distincts, mais la normalisation naïve de la casse peut les traiter à tort comme identiques. Il a déclaré : « ainsi, chaque programme en mode utilisateur qui vérifie qu'il ne touche pas aux chemins spéciaux est susceptible d'être trompé et de faire des choses qu'il a explicitement vérifié qu'il ne devait pas faire. Et non, ce n'est pas quelque chose d'inhabituel ou d'étrange. Des tas de programmes font cela ».

Cependant, certains membres de la communauté ne partagent pas son avis. « Le problème est que l'insensibilité à la casse est gênante pour les codeurs, mais pratique pour les utilisateurs. Parfois, je trouve tout aussi pratique de taper "torvalds" que "Torvalds". Cela devrait-il désigner deux personnes différentes ? La sensibilité à la casse est un artefact de la manière dont les éléments du langage sont codés », a écrit un utilisateur. Il a ajouté :

Citation Envoyé par Critique


Les systèmes de fichiers existent pour organiser, stocker et récupérer des données. Ils sont inutiles si les utilisateurs ne peuvent pas trouver ce qu'ils veulent dans une grande collection de fichiers. Vous savez ce qui permet de cacher les fichiers aux utilisateurs ? La sensibilité à la casse. Peu importe la supériorité technique de la sensibilité à la casse, si vous la défendez pour un système de fichiers exposé à l'utilisateur, vous avez tort.

Selon certains, l'opposition entre les partisans des systèmes de fichiers insensibles à la casse et leurs détracteurs est l'une des raisons pour lesquelles Linux peine à s'imposer sur le bureau. « Ni 2025 ni aucune autre année ne sera l'année de Linux sur le bureau. Linux est idéal pour les passionnés ou les environnements techniques spécialisés, mais sa communauté et ses développeurs comprennent mal les affinités des utilisateurs généraux », a écrit un critique.

Linus Torvalds souvent critiqué pour ses prises de position jugées brutales

Linus Torvalds est le créateur du noyau Linux et dirige la maintenance du projet depuis plus de 30 ans. Il est extrêmement investi dans la...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !