Linux kernel za Ext4 datotečni sustav uključuje podršku za rad koji nije osjetljiv na velika i mala slova

Ted Ts'o, autor ext2/ext3/ext4 datotečnih sustava, prihvatio na granu Linux-next, na temelju koje će se formirati izdanje jezgre Linux 5.2, set promjene, implementirajući podršku za operacije koje nisu osjetljive na velika i mala slova u Ext4 datotečnom sustavu. Zakrpe također dodaju podršku za UTF-8 znakove u nazivima datoteka.

Način rada koji ne razlikuje velika i mala slova opcijski je omogućen u odnosu na pojedinačne imenike pomoću novog atributa “+F” (EXT4_CASEFOLD_FL). Kada je ovaj atribut postavljen na direktorij, sve operacije s datotekama i poddirektorijima unutar njih bit će izvršene bez uzimanja u obzir velikih i malih slova, uključujući velika i mala slova koja će biti zanemarena prilikom pretraživanja i otvaranja datoteka (na primjer, datoteke Test.txt, test.txt i test.TXT u takvim imenicima smatrat će se istima). Prema zadanim postavkama, s iznimkom direktorija s atributom "+F", datotečni sustav nastavlja biti osjetljiv na velika i mala slova. Za kontrolu uključivanja načina rada koji ne razlikuje velika i mala slova nudi se modificirani skup uslužnih programa e2fsprogs.

Zakrpe je pripremio Gabriel Krisman Bertazi, zaposlenik Collabore, a prihvatio ih je sedmi pokušaji nakon tri godine razvoj i uklanjanje komentara. Implementacija ne mijenja format pohrane na disku i radi isključivo na razini promjene logike usporedbe imena u funkciji ext4_lookup() i zamjene hash-a u strukturi dcache (Directory Name Lookup Cache). Vrijednost atributa "+F" pohranjuje se unutar inodea pojedinačnih direktorija i propagira se na sve poddatoteke i poddirektorije. Informacije o kodiranju pohranjene su u superbloku.

Kako bi se izbjegle kolizije s nazivima postojećih datoteka, atribut “+F” može se postaviti samo na prazne direktorije u datotečnim sustavima u kojima je podrška za Unicode u nazivima datoteka i direktorija omogućena u fazi montiranja. Imena elemenata imenika za koje je aktiviran atribut “+F” automatski se pretvaraju u mala slova i odražavaju u ovom obliku u dcacheu, ali se spremaju na disk u obliku koji je korisnik inicijalno odredio, tj. Unatoč obradi imena bez obzira na velika i mala slova, imena se prikazuju i spremaju bez gubitka informacija o velikim i malim slovima (ali sustav vam neće dopustiti da kreirate naziv datoteke s istim znakovima, ali u različitim velikim i malim slovima).

Izvor: opennet.ru

Dodajte komentar