У ядро ​​Linux для ФС Ext4 уключаная падтрымка працы без уліку рэгістра знакаў

Тэд Цо (Ted Ts'o), аўтар файлавых сістэм ext2/ext3/ext4, прыняў у галінку Linux-next, на аснове якой будзе сфарміраваны выпуск ядра Linux 5.2, набор змен, якія рэалізуюць падтрымку рэгістранезалежных аперацый у файлавай сістэме Ext4. Патчы таксама дадаюць падтрымку сімвалаў UTF-8 у імёнах файлаў.

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

Крыніца: opennet.ru

Дадаць каментар