Линус Торвальдс назвал нечувствительность к регистру худшим решением для файловых систем и раскритиковал попытки поддерживать case folding
Линус Торвальдс снова высказался прямо и достаточно резко. В этот раз — по поводу поддержки нечувствительности к регистру в файловых системах. Он назвал такой подход «ужасной ошибкой», которую «никогда не следовало внедрять».
Что случилось
Поводом стала проблема с case folding в Bcachefs — новой файловой системе для Linux.
Разработчики обнаружили баг в обработке имен файлов без учета регистра, который теперь чинят в патче для ядра Linux 6.15. Но для Торвальдса сам факт существования этой функции уже ошибка.
И это не первая подобная история: ранее баги с нечувствительностью к регистру всплывали при работе с эмодзи и спецсимволами Unicode.
«Это не фича, а баг»
На Linux Kernel Mailing List Торвальдс резко раскритиковал саму идею:
Case-insensitive имена файлов — это ужасная ошибка. Проблема не в тестах. Проблема в том, что это вообще реализовалиЛинус ТорвальдсСоздатель Linux
Он отметил, что попытки «сделать все правильно» только усугубляют ситуацию. И чем дальше, тем больше систем начинает интерпретировать случайные байты как «магические» значения, что приводит к уязвимостям в безопасности.
В качестве примера он привел баги с Unicode-символами вроде ❤ и ❤️, которые отличаются только игнорируемыми кодовыми точками. Такие «особенности» ломают проверки в пользовательских программах и открывают путь для обхода систем безопасности.
Торвальдс: «Вы просто воссоздаете FAT — плохо»
Особо жестко Линус прошелся по фанатам нечувствительности к регистру:
Case sensitivity — это баг. То, что файловые системы до сих пор считают это фичей — я не могу понять. Они словно так обожают старый FAT, что пытаются его пересоздать — только еще хужеЛинус ТорвальдсСоздатель Linux