เคอร์เนล 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 (แคชการค้นหาชื่อไดเรกทอรี) ค่าของแอตทริบิวต์ "+F" จะถูกจัดเก็บไว้ในไอโหนดของแต่ละไดเร็กทอรี และเผยแพร่ไปยังไฟล์ย่อยและไดเร็กทอรีย่อยทั้งหมด ข้อมูลการเข้ารหัสจะถูกจัดเก็บไว้ในซุปเปอร์บล็อก

เพื่อหลีกเลี่ยงการชนกันกับชื่อของไฟล์ที่มีอยู่ คุณลักษณะ “+F” สามารถตั้งค่าได้เฉพาะในไดเร็กทอรีว่างในระบบไฟล์ที่เปิดใช้งาน Unicode ในไฟล์และชื่อไดเร็กทอรีในขั้นตอนการเมาท์ ชื่อขององค์ประกอบไดเร็กทอรีที่เปิดใช้งานแอตทริบิวต์ "+F" จะถูกแปลงเป็นตัวพิมพ์เล็กโดยอัตโนมัติและสะท้อนให้เห็นในรูปแบบนี้ใน dcache แต่จะถูกบันทึกไว้บนดิสก์ในรูปแบบที่ผู้ใช้ระบุในตอนแรก เช่น แม้จะมีการประมวลผลชื่อโดยไม่คำนึงถึงตัวพิมพ์ แต่ชื่อก็จะถูกแสดงและบันทึกโดยไม่สูญเสียข้อมูลเกี่ยวกับตัวพิมพ์ (แต่ระบบจะไม่อนุญาตให้คุณสร้างชื่อไฟล์ที่มีอักขระเหมือนกัน แต่ในกรณีอื่น)

ที่มา: opennet.ru

เพิ่มความคิดเห็น