Π’ ядро 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