Az Ext5.2 Linux Kernel 4 lehetővé teszi a kis- és nagybetűk közötti keresést

kis-és nagybetűk

Ted ts'o, az ext2 / ext3 / ext4 fájlrendszer szerzője, elfogadta a Linux-next ágat, on bázis, amelyből a Linux Kernel 5.2 kiadás jön létre, azon változtatások halmaza támogatás megvalósítása mert független eseti műveletek az Ext4 fájlrendszert.

A foltok emellett támogatják az UTF-8 karaktereket a fájlnevekben. A nem karakteres üzemmód opcionálisan bekerül a külön könyvtárak linkjébe az új "+ F" attribútum használatával (EXT4_CASEFOLD_FL).

Kis- és nagybetűk nem jelentenek ext4-et

Ha ez az attribútum telepítve van a könyvtárba, fájlokkal és alkönyvtárakkal végzett összes művelet amelyek benne vannak nem lesz különbség a kis- és nagybetűk között, az esetet figyelmen kívül hagyja a fájlok keresésekor és megnyitásakor (pl. a Test.txt, test.txt és a test.TXT hasonló könyvtárakban).

Vagyis megegyezik egy könyvtár bejegyzéssel, még akkor is, ha a felhasználói tér által használt név nem a lemez nevének megfelelő bájt, hanem az Unicode karaktersorozat kis- és nagybetűkkel egyenértékű változata.

Ezt a műveletet kis- és nagybetűk nélküli fájlnév-keresésnek hívják. A szolgáltatás egy inode attribútumként van konfigurálva, amely a könyvtárakra vonatkozik és gyermekeik örökölik.

Ez az attribútum csak üres könyvtárakban engedélyezhetős fájlrendszerekhez, amelyek támogatják a kódolási funkciót, elkerülve ezzel a fájlnevek ütközését, amelyek csak eseti alapon különböznek egymástól.

Alapértelmezés szerint, a "+ F" attribútummal rendelkező könyvtárak kivételével, a fájlrendszer továbbra is különbséget tesz a kis- és nagybetűk között. A kis- és nagybetűk nélküli mód beépítésének szabályozásához az e2fsprogs segédprogramok módosított készletét biztosítjuk.

Ez a javítás valósítja meg a kis- és nagybetűk nélküli fájlnév-keresések tényleges támogatását az ext4-ben, a funkcióblit és a szuperblokkban tárolt kódolás alapján.

Olyan munka, amely sokáig tartott

A javításokat Gabriel Krisman Bertazi, a Collabora munkatársa készítette és hároméves fejlesztés és a megjegyzések törlése után a hetedik kísérletből vették őket.

A megvalósítás nem változtat a lemezmegőrzési formátumon, és kizárólag azon a szinten működik, hogy megváltoztatja a név-összehasonlítási logikát az ext4_lookup () függvényben és kivonja a dcache (Directory Name Lookup Cache) struktúrában található kivonatot.

A "+ F" attribútum értéke az egyes könyvtárak inódjaiban tárolódik, és minden csatolt fájlra és alkönyvtárra vonatkozik. A kódolási információkat a szuperblokk tárolja.

Egyelőre a negatív kereséseket nem tesszük a dcache-be, mivel mindenképp érvényteleníteni kellene őket, mert nem bízhatunk a hiányzó fájlokban.

Ez rossz a teljesítmény szempontjából, de a javításához a vfs réteg némi kihasználása szükséges.

Egyelőre nélküle is élhetünk, akárcsak mindenki más.

Az ütközések elkerülése érdekében a meglévő fájlok nevével, a "+ F" attribútum csak üres fájlkönyvtárakban állítható be a fájlrendszerekben, amelyben a fájlok és könyvtárak nevében az Unicode támogatási mód engedélyezve van a csatlakoztatási fázis alatt.

A könyvtárelemek neve, amelyeknél a "+ F" attribútum aktiválva van automatikusan kisbetűvé lesznek fordítva, és így tükröződnek a dcache-ben, de a lemezen a felhasználó által eredetileg meghatározott formában vannak tárolva.

Az új lemezkivonatokat a teljes esetlánc kivonataként, nem pedig közvetlenül a láncként számolják.

Vagyis annak ellenére, hogy a név feldolgozás esettől függetlenül a nevek megjelennek és mentésre kerülnek anélkül, hogy elveszítenék a karakterek esetét (de a rendszer nem engedélyezi, hogy fájlnevet hozzon létre ugyanazokkal a karakterekkel, hanem más esetben).

Ez lehetővé teszi a VFS-kód számára, hogy gyorsan megtalálja a helyes bejegyzést a gyorsítótárban, annak ellenére, hogy egy korábbi keresésben ekvivalens karakterláncot használtak


Legyen Ön az első hozzászóló

Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.