Kernel Linux untuk sistem fail Ext4 termasuk sokongan untuk operasi tidak sensitif huruf besar-besaran

Ted Ts'o, pengarang sistem fail ext2/ext3/ext4, diterima ke cawangan Linux-seterusnya, atas dasar pelepasan kernel Linux 5.2 akan dibentuk, satu set perubahan, melaksanakan sokongan untuk operasi tidak peka huruf besar-kecil dalam sistem fail Ext4. Tampalan juga menambah sokongan untuk aksara UTF-8 dalam nama fail.

Mod pengendalian tidak sensitif huruf besar dan kecil secara pilihan didayakan berhubung dengan direktori individu menggunakan atribut baharu β€œ+F” (EXT4_CASEFOLD_FL). Apabila atribut ini ditetapkan pada direktori, semua operasi dengan fail dan subdirektori di dalamnya akan dijalankan tanpa mengambil kira kes aksara, termasuk kes akan diabaikan semasa mencari dan membuka fail (contohnya, fail Test.txt, test.txt dan test.TXT dalam direktori tersebut akan dianggap sama). Secara lalai, dengan pengecualian direktori dengan atribut "+F", sistem fail terus menjadi sensitif huruf besar-besaran. Untuk mengawal kemasukan mod tidak peka huruf besar-besaran, set utiliti yang diubah suai ditawarkan e2fsprogs.

Tampalan telah disediakan oleh Gabriel Krisman Bertazi, pekerja Collabora, dan diterima dengan ketujuh percubaan selepas tiga tahun pembangunan dan penghapusan komen. Pelaksanaan tidak membuat perubahan pada format storan cakera dan berfungsi semata-mata pada tahap menukar logik perbandingan nama dalam fungsi ext4_lookup() dan menggantikan cincang dalam struktur dcache (Directory Name Lookup Cache). Nilai atribut "+F" disimpan dalam inod direktori individu dan disebarkan ke semua subfail dan subdirektori. Maklumat pengekodan disimpan dalam superblock.

Untuk mengelakkan perlanggaran dengan nama fail sedia ada, atribut "+F" hanya boleh ditetapkan pada direktori kosong dalam sistem fail yang menyokong Unicode dalam nama fail dan direktori didayakan pada peringkat pemasangan. Nama-nama elemen direktori yang atribut "+F" diaktifkan secara automatik ditukar kepada huruf kecil dan ditunjukkan dalam bentuk ini dalam dcache, tetapi disimpan pada cakera dalam bentuk yang ditentukan pada mulanya oleh pengguna, i.e. Walaupun pemprosesan nama tanpa mengira kes, nama dipaparkan dan disimpan tanpa kehilangan maklumat tentang kes aksara (tetapi sistem tidak akan membenarkan anda mencipta nama fail dengan aksara yang sama, tetapi dalam kes yang berbeza).

Sumber: opennet.ru

Tambah komen