Создатель Linux назвал нечувствительность к регистру худшим решением для файловой системы

от admin

Линус Торвальдс назвал нечувствительность к регистру худшим решением для файловых систем и раскритиковал попытки поддерживать case folding

Линус Торвальдс снова высказался прямо и достаточно резко. В этот раз — по поводу поддержки нечувствительности к регистру в файловых системах. Он назвал такой подход «ужасной ошибкой», которую «никогда не следовало внедрять».

Что случилось

Поводом стала проблема с case folding в Bcachefs — новой файловой системе для Linux.

Разработчики обнаружили баг в обработке имен файлов без учета регистра, который теперь чинят в патче для ядра Linux 6.15. Но для Торвальдса сам факт существования этой функции уже ошибка.

И это не первая подобная история: ранее баги с нечувствительностью к регистру всплывали при работе с эмодзи и спецсимволами Unicode.

«Это не фича, а баг»

На Linux Kernel Mailing List Торвальдс резко раскритиковал саму идею:

Case-insensitive имена файлов — это ужасная ошибка. Проблема не в тестах. Проблема в том, что это вообще реализовалиЛинус ТорвальдсСоздатель Linux

Он отметил, что попытки «сделать все правильно» только усугубляют ситуацию. И чем дальше, тем больше систем начинает интерпретировать случайные байты как «магические» значения, что приводит к уязвимостям в безопасности.

Читать также:
«Не баг, а фича»: старый пароль все еще пускает в Windows и Microsoft отказалась это чинить

В качестве примера он привел баги с Unicode-символами вроде ❤ и ❤️, которые отличаются только игнорируемыми кодовыми точками. Такие «особенности» ломают проверки в пользовательских программах и открывают путь для обхода систем безопасности.

Торвальдс: «Вы просто воссоздаете FAT — плохо»

Особо жестко Линус прошелся по фанатам нечувствительности к регистру:

Case sensitivity — это баг. То, что файловые системы до сих пор считают это фичей — я не могу понять. Они словно так обожают старый FAT, что пытаются его пересоздать — только еще хужеЛинус ТорвальдсСоздатель Linux

Похожие статьи