В ядро Linux для ФС Ext4 включена поддержка работы без учёта регистра символов
26 апреля 2019 года
Тед Цо (Ted Ts'o), автор файловых систем ext2/ext3/ext4, принял в ветку Linux-next, на основе которой будет сформирован выпуск ядра Linux 5.2, набор изменений, реализующих поддержку регистронезависимых операций в файловой системе Ext4. Патчи также добавляют поддержку обработки символов UTF-8 в именах файлов (для сравнения и нормализации строк, включающих символы определённые в спецификации Unicode 12.0).
Режим работы без различия регистра символов опционально включается в привязке к отдельным каталогам при помощи нового атрибута "+F" (EXT4_CASEFOLD_FL). При установке данного атрибута на каталог все операции с файлами и подкаталогами внутри будут производиться без учёта регистра символов, в том числе регистр будет игнорироваться при операциях поиска и открытия файлов (например, файлы Test.txt, test.txt и test.TXT в подобных каталогах будут считаться одинаковыми). По умолчанию, за исключением каталогов с атрибутом "+F" , ФС продолжает быть регистрозависимой. Для управления включением регистронезависимого режима предлагается модифицированный набор утилит e2fsprogs.
Патчи подготовлены Gabriel Krisman Bertazi, сотрудником компании Collabora, и приняты с седьмой попытки после трёх лет разработки и устранения замечаний. Реализация не вносит изменения в дисковый формат хранения и работает исключительно на уровне изменения логики сравнения имён в функции ext4_lookup() и замене хэша в структуре dcache (Directory Name Lookup Cache). Значение атрибута "+F" сохраняется внутри inode отдельных каталогов и распространяется на все вложенные файлы и подкаталоги. Информация о кодировке сохраняется в суперблоке.
Для того, чтобы избежать коллизий с именами существующих файлов атрибут "+F" может быть установлен только на пустые каталоги в файловых системах, в которых на этапе монтирования включён режим поддержки Unicode в именах файлов и каталогов. Имена элементов каталогов для которых активирован атрибут "+F" автоматически переводятся в нижний регистр и отражаются в таком виде в dcache, но на диске сохраняются в изначально заданном пользователем виде, т.е. несмотря на обработку имён независимо от регистра, имена показываются и сохраняются без потери информации о регистре символов (но система не даст создать имя файла с теми же символами, но в другом регистре).
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.