Linux kernel เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒ Ext4 เบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบ•เบปเบงเบ•เบปเบ™

Ted Ts'o, เบœเบนเป‰เบ‚เบฝเบ™เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒ ext2/ext3/ext4, เบเบญเบกเบฎเบฑเบš เป„เบ›เบซเบฒเบชเบฒเบ‚เบฒเบ•เปเปˆเป„เบ›เบ‚เบญเบ‡ Linux, เบšเบปเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเบ‚เบญเบ‡ Linux 5.2 kernel เบˆเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡เบ‚เบถเป‰เบ™, เบŠเบธเบ”. เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบ•เบปเบงเบ•เบปเบ™เปƒเบ™เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒ Ext4. เป€เบžเบตเป‰เบกเบเบฑเบ‡เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ•เบปเบงเบญเบฑเบเบชเบญเบ™ UTF-8 เปƒเบ™เบŠเบทเปˆเป„เบŸเบฅเปŒ.

เบฎเบนเบšเปเบšเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบตเปˆเบšเปเปˆเบญเปˆเบญเบ™เป„เบซเบงเบ•เปเปˆเบเบฑเบšเบ•เบปเบงเบžเบดเบกเปƒเบซเบเปˆเปเบกเปˆเบ™เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เบžเบปเบงเบžเบฑเบ™เบเบฑเบšเปเบ•เปˆเบฅเบฐเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเป‚เบ”เบเปƒเบŠเป‰เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเปƒเบซเบกเปˆ โ€œ+Fโ€ (EXT4_CASEFOLD_FL). เป€เบกเบทเปˆเบญเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ™เบตเป‰เบ–เบทเบเบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต, เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบกเบตเป„เบŸเบฅเปŒเปเบฅเบฐเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบเปˆเบญเบเบžเบฒเบเปƒเบ™เบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบšเปเปˆเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ•เบปเบงเบญเบฑเบเบชเบญเบ™, เบฅเบงเบกเบ—เบฑเบ‡เบเปเบฅเบฐเบ™เบตเบˆเบฐเบ–เบทเบเบฅเบฐเป€เบฅเบตเบเปƒเบ™เป€เบงเบฅเบฒเบ„เบปเป‰เบ™เบซเบฒเปเบฅเบฐเป€เบ›เบตเบ”เป„เบŸเบฅเปŒ (เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™เป„เบŸเบฅเปŒ Test.txt, test.txt เปเบฅเบฐ test.TXT เปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบˆเบฐเบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ„เบทเบเบฑเบ™). เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบกเบตเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบ‚เบญเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบกเบตเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "+F", เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบเบฑเบ‡เบชเบทเบšเบ•เปเปˆเป€เบ›เบฑเบ™เบ•เบปเบงเบžเบดเบกเบ™เป‰เบญเบ. เป€เบžเบทเปˆเบญเบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เบฅเบงเบกเป€เบญเบปเบฒเป‚เบซเบกเบ”เบ—เบตเปˆเบšเปเปˆเบฅเบฐเบญเบฝเบ”เบญเปˆเบญเบ™เบ•เบปเบงเบžเบดเบกเบ™เป‰เบญเบ, เบกเบตเบŠเบธเบ”เป€เบ„เบทเปˆเบญเบ‡เปƒเบŠเป‰เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ e2fsprogs.

เป€เบžเบตเป‰เบกเป„เบ”เป‰เบ–เบทเบเบเบฐเบเบฝเบกเป‚เบ”เบ Gabriel Krisman Bertazi, เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เบ‚เบญเบ‡ Collabora, เปเบฅเบฐเบเบญเบกเบฎเบฑเบšเบเบฑเบš เบ—เบตเป€เบˆเบฑเบ” เบ„เบงเบฒเบกโ€‹เบžเบฐโ€‹เบเบฒโ€‹เบเบฒเบกโ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹ เบชเบฒเบกเบ›เบต เบเบฒเบ™โ€‹เบžเบฑเบ”โ€‹เบ—เบฐโ€‹เบ™เบฒโ€‹เปเบฅเบฐโ€‹เบฅเบปเบšโ€‹เบฅเป‰เบฒเบ‡โ€‹เบ„เปเบฒโ€‹เป€เบซเบฑเบ™โ€‹. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบšเปเปˆเป„เบ”เป‰เบ›เปˆเบฝเบ™เปเบ›เบ‡เบฎเบนเบšเปเบšเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปเบœเปˆเบ™เปเบฅเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ logic เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบŠเบทเปˆเปƒเบ™เบŸเบฑเบ‡เบŠเบฑเบ™ ext4_lookup() เปเบฅเบฐเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ—เบ™ hash เปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ dcache (Directory Name Lookup Cache). เบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” "+F" เปเบกเปˆเบ™เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เบžเบฒเบเปƒเบ™ inode เบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต เปเบฅเบฐเบ–เบทเบเป€เบœเบตเบเปเบœเปˆเป„เบ›เบ—เบธเบเป„เบŸเบฅเปŒเบเปˆเบญเบ เปเบฅเบฐเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบเปˆเบญเบ. เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™ superblock.

เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบ‚เบฑเบ”เบเบฑเบ™เบเบฑเบšเบŠเบทเปˆเบ‚เบญเบ‡เป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบขเบนเปˆ, เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "+F" เบชเบฒเบกเบฒเบ”เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒเปƒเบ™เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบ—เบตเปˆ Unicode เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปƒเบ™เป„เบŸเบฅเปŒเปเบฅเบฐเบŠเบทเปˆเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡. เบŠเบทเปˆเบ‚เบญเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "+F" เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบˆเบฐเบ–เบทเบเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเบžเบดเบกเบ™เป‰เบญเบเป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปเบฅเบฐเบชเบฐเบ—เป‰เบญเบ™เปƒเบซเป‰เป€เบซเบฑเบ™เปƒเบ™เบฎเบนเบšเปเบšเบšเบ™เบตเป‰เปƒเบ™ dcache, เปเบ•เปˆเบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เปƒเบ™เปเบœเปˆเบ™เปƒเบ™เปเบšเบšเบŸเบญเบกเบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™, i.e. เป€เบ–เบดเบ‡เบงเปˆเบฒเบˆเบฐเบกเบตเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบŠเบทเปˆเป‚เบ”เบเบšเปเปˆเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบเปเบฅเบฐเบ™เบตเปƒเบ”เบเปเปˆเบ•เบฒเบก, เบŠเบทเปˆเบˆเบฐเบ–เบทเบเบชเบฐเปเบ”เบ‡เปเบฅเบฐเบšเบฑเบ™เบ—เบถเบเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเบนเบ™เป€เบชเบเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ•เบปเบงเบญเบฑเบเบชเบญเบ™ (เปเบ•เปˆเบฅเบฐเบšเบปเบšเบˆเบฐเบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเป‰เบฒเบ‡เบŠเบทเปˆเป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ”เบฝเบงเบเบฑเบ™, เปเบ•เปˆเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™).

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™