Linux Kernel 5.2 pada Ext4 akan memungkinkan pencarian case-insensitive

case-insensitive

Ted ts'o, pembuat sistem file ext2 / ext3 / ext4, menerima cabang Linux-next, pada basis dari mana rilis Linux Kernel 5.2 akan dibuat, satu set perubahan itu menerapkan dukungan ayat operasi kasus independen di sistem file Ext4.

Tambalan mereka juga menambahkan dukungan untuk karakter UTF-8 pada nama file. Mode operasi non-karakter case secara opsional disertakan dalam tautan ke direktori terpisah menggunakan atribut baru "+ F" (EXT4_CASEFOLD_FL).

Peka huruf besar / kecil untuk ext4

Saat atribut ini dipasang di direktori, semua operasi dengan file dan subdirektori yang ada di dalam dirinya tidak akan peka huruf besar / kecil, termasuk kasus akan diabaikan saat mencari dan membuka file (misalnya Test.txt, test.txt dan test.TXT di direktori serupa) akan dianggap sama).

Artinya, ini cocok dengan entri direktori, meskipun nama yang digunakan oleh ruang pengguna bukanlah byte untuk byte yang cocok dengan nama disk, tetapi merupakan versi string Unicode yang peka huruf besar dan kecil.

Operasi ini disebut pencarian nama file yang tidak membedakan huruf besar / kecil. Fitur ini dikonfigurasi sebagai atribut inode yang diterapkan ke direktori dan diwarisi oleh turunannya.

Atribut ini hanya dapat diaktifkan di direktori kosongs untuk sistem file yang mendukung fungsi pengkodean, sehingga menghindari tabrakan nama file yang hanya berbeda berdasarkan kasus per kasus.

Secara default, dengan pengecualian direktori dengan atribut "+ F", sistem file masih peka huruf besar kecil. Untuk mengontrol penyertaan mode case-insensitive, seperangkat utilitas e2fsprogs yang dimodifikasi disediakan.

Patch ini mengimplementasikan dukungan aktual untuk pencarian nama file yang tidak membedakan huruf besar / kecil di ext4, berdasarkan bit fitur dan pengkodean yang disimpan di superblok.

Pekerjaan yang membutuhkan waktu lama untuk tiba

Tambalan tersebut disiapkan oleh Gabriel Krisman Bertazi, kontributor Collabora dan diambil dari upaya ketujuh setelah tiga tahun pengembangan dan penghapusan komentar.

Implementasi tidak membuat perubahan pada format penyimpanan disk dan bekerja secara eksklusif pada tingkat mengubah logika perbandingan nama dalam fungsi ext4_lookup () dan mengganti hash dalam struktur dcache (Directory Name Lookup Cache).

Nilai atribut "+ F" disimpan dalam inode dari masing-masing direktori dan berlaku untuk semua file dan subdirektori yang dilampirkan. Informasi pengkodean disimpan di superblok.

Untuk saat ini, pencarian negatif tidak didorong ke dcache, karena tetap harus dibatalkan, karena kami tidak dapat mempercayai file yang hilang.

Ini buruk untuk kinerja, tetapi membutuhkan beberapa pemanfaatan lapisan vfs untuk memperbaikinya.

Kita bisa hidup tanpanya sekarang, sama seperti orang lain.

Untuk menghindari tabrakan dengan nama file yang ada, atribut "+ F" hanya dapat disetel pada direktori kosong di sistem file, di mana mode dukungan Unicode dalam nama file dan direktori diaktifkan selama fase pemasangan.

Nama elemen direktori tempat atribut "+ F" diaktifkan diterjemahkan secara otomatis ke huruf kecil dan direfleksikan dengan cara ini di dcache, tetapi disimpan di disk dalam bentuk yang awalnya ditentukan oleh pengguna.

Hash disk baru dihitung sebagai hash dari seluruh rantai kasus, bukan rantai secara langsung.

Artinya, terlepas dari apa pun kasusnya, nama ditampilkan dan disimpan tanpa kehilangan informasi tentang kasus karakter (tetapi sistem tidak akan mengizinkan Anda membuat nama file dengan karakter yang sama, tetapi dalam kasus yang berbeda).

Ini juga memungkinkan kode VFS untuk dengan cepat menemukan entri yang benar di cache meskipun string yang setara digunakan dalam pencarian sebelumnya


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.