В ядро 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, но на диске сохраняются в изначально заданном пользователем виде, т.е. несмотря на обработку имён независимо от регистра, имена показываются и сохраняются без потери информации о регистре символов (но система не даст создать имя файла с теми же символами, но в другом регистре).

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «В ядро Linux для ФС Ext4 включена поддержка работы без учёта регистра символов», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.