28 апреля 2025 года Линус Торвальдс, легендарный создатель Linux, вновь выразил своё недовольство подходами разработчиков файловых систем, в частности, раскритиковав реализацию регистронезависимости (case insensitivity) в Bcachefs. Его критика была направлена не столько на конкретную файловую систему, сколько на общую практику попыток игнорировать регистр символов в современных системах.
Суть проблемы: Unicode и case folding
Недавнее обсуждение началось с исправления ошибки в Bcachefs, связанной с некорректной обработкой имён файлов в режиме без учёта регистра символов. Линус отметил, что проблема не нова, и разработчики, к сожалению, продолжают наступать на те же самые грабли.
Основная сложность заключается в стандарте Unicode, который далеко не так прост, как кажется. Приведение символов к единому регистру (case folding) для всех возможных сценариев невозможно реализовать без ошибок. Даже современные файловые системы не справляются с многочисленными «краевыми случаями» (edge cases) стандарта Unicode.
Например, неоднозначность возникает даже в отношении, казалось бы, простых символов. Один и тот же символ в разных вариантах написания, вроде «❤» и «❤️», разные системы могут трактовать совершенно по-разному. Это, по словам Торвальдса, создает неопределённость и ведёт к проблемам безопасности, поскольку приложения и файловые системы могут по-разному интерпретировать идентичность файловых имён.
Почему регистронезависимость — это проблема?
С технической точки зрения, регистронезависимость призвана упростить взаимодействие пользователя с системой, чтобы не думать о разнице между прописными и строчными буквами. Однако на практике это приводит к новым классам ошибок, в том числе к уязвимостям, возникающим из-за несоответствия между ожиданиями приложений и реальным поведением файловой системы.
По мнению Торвальдса, попытки придать особое значение символам или комбинациям байтов не просто бессмысленны, но и вредны. Они открывают дорогу проблемам безопасности, создавая путаницу и неоднозначности. Линус подчёркивает, что эра FAT-файловых систем, где регистронезависимость была оправдана техническими ограничениями, давно закончилась. Сегодня продолжение подобных практик является не более чем опасным анахронизмом.
Альтернативный взгляд: точность важнее удобства
Современные Linux-системы традиционно регистрозависимы, и это, по мнению Линуса, правильный подход. Строгость в обработке регистров символов предотвращает большое количество потенциальных ошибок и упрощает реализацию файловых систем и приложений.
Торвальдс уверен, что необходимо отказаться от устаревших практик, не вписывающихся в современную техническую реальность. Вместо того чтобы вводить ненужные и опасные «упрощения», следует следовать чёткому и однозначному подходу, обеспечивающему безопасность и предсказуемость поведения системы.
Заключение
Критика Линуса Торвальдса вновь ставит вопрос о разумности использования регистронезависимости в современных файловых системах. Его позиция чёткая и обоснованная: любые попытки упростить восприятие системы путём игнорирования регистра символов приводят к гораздо более серьёзным последствиям, включая риски для безопасности данных.
Подробнее ознакомиться с дискуссией и комментариями самого Торвальдса можно по ссылке на официальную рассылку ядра Linux.