سوف يسمح Linux Kernel 5.2 على Ext4 بالبحث غير الحساس لحالة الأحرف

حالة الأحرف

تيد تسو، مؤلف أنظمة الملفات ext2 / ext3 / ext4 ، قبلت فرع Linux-next ، في الأساس الذي سيتم إنشاء إصدار Linux Kernel 5.2 منه، مجموعة من التغييرات التي تنفيذ الدعم إلى عمليات حالة مستقلة في نظام الملفات Ext4.

البقع يضيفون أيضًا دعمًا لأحرف UTF-8 في أسماء الملفات. يتم تضمين وضع التشغيل الذي لا يتكون من أحرف بشكل اختياري في الارتباط لفصل الأدلة باستخدام السمة الجديدة "+ F" (EXT4_CASEFOLD_FL).

غير حساس لحالة الأحرف لـ ext4

عند تثبيت هذه السمة في الدليل ، جميع العمليات مع الملفات والأدلة الفرعية الموجودة بداخلها لن تكون حساسة لحالة الأحرف ، بما في ذلك الحالة سيتم تجاهلها عند البحث عن الملفات وفتحها (مثل Test.txt و test.txt و test.TXT في أدلة مماثلة) سيتم اعتبارها مماثلة).

أي أنه يتطابق مع إدخال دليل ، حتى إذا كان الاسم الذي تستخدمه مساحة المستخدم ليس بايتًا للبايت يطابق اسم القرص ، ولكنه إصدار مكافئ حساس لحالة الأحرف من سلسلة Unicode.

تسمى هذه العملية ببحث عن اسم ملف غير متحسس لحالة الأحرف. يتم تكوين الميزة كسمة inode يتم تطبيقها على الدلائل ويتم توارثها بواسطة العناصر الفرعية الخاصة بهم.

هذه السمة فقط يمكن تمكينه في الدلائل الفارغةلأنظمة الملفات التي تدعم وظيفة التشفير، وبالتالي تجنب تضارب أسماء الملفات التي تختلف فقط حسب الحالة.

بشكل افتراضي ، باستثناء الدلائل ذات السمة "+ F" ، لا يزال نظام الملفات حساسًا لحالة الأحرف. للتحكم في تضمين الوضع غير الحساس لحالة الأحرف ، يتم توفير مجموعة معدلة من أدوات e2fsprogs المساعدة.

ينفذ هذا التصحيح الدعم الفعلي لعمليات البحث عن اسم الملف غير الحساسة لحالة الأحرف في ext4 ، بناءً على بت الميزة والتشفير المخزن في superblock.

وظيفة استغرقت وقتًا طويلاً للوصول

تم إعداد التصحيحات بواسطة Gabriel Krisman Bertazi ، أحد المساهمين في Collabora وتم أخذها من المحاولة السابعة بعد ثلاث سنوات من التطوير وحذف التعليقات.

لا يُجري التطبيق تغييرات على تنسيق تخزين القرص ويعمل بشكل حصري على مستوى تغيير منطق مقارنة الاسم في وظيفة ext4_lookup () واستبدال التجزئة في بنية dcache (ذاكرة التخزين المؤقت للبحث عن اسم الدليل).

يتم تخزين قيمة السمة "+ F" داخل inodes من الدلائل الفردية وتنطبق على جميع الملفات والأدلة الفرعية المرفقة. يتم تخزين معلومات الترميز في superblock.

في الوقت الحالي ، لا يتم دفع عمليات البحث السلبية في dcache ، حيث يجب إبطالها على أي حال ، لأننا لا نستطيع الوثوق بالملفات المفقودة.

يعد هذا أمرًا سيئًا للأداء ، ولكنه يتطلب بعض الاستفادة من طبقة vfs للتصحيح.

يمكننا العيش بدونها في الوقت الحالي ، تمامًا مثل أي شخص آخر.

لتجنب الاصطدامات بأسماء الملفات الموجودة ، لا يمكن تعيين السمة "+ F" إلا على الدلائل الفارغة في أنظمة الملفات، حيث يتم تمكين وضع دعم Unicode في أسماء الملفات والدليل أثناء مرحلة التحميل.

أسماء عناصر الدليل التي تم تنشيط السمة "+ F" لها يتم ترجمتها تلقائيًا إلى أحرف صغيرة وتنعكس بهذه الطريقة في dcache، ولكن يتم تخزينها على القرص بالشكل الذي حدده المستخدم في الأصل.

يتم حساب تجزئات القرص الجديدة على أنها تجزئة لسلسلة الحالات بأكملها ، بدلاً من السلسلة مباشرة.

أي على الرغم من معالجة الاسم بغض النظر عن الحالة ، يتم عرض الأسماء وحفظها دون فقد المعلومات حول حالة الأحرف (لكن النظام لن يسمح لك بإنشاء اسم ملف بنفس الأحرف ، ولكن في حالة مختلفة).

كما يسمح لرمز VFS بالعثور بسرعة على الإدخال الصحيح في ذاكرة التخزين المؤقت على الرغم من استخدام سلسلة مكافئة في بحث سابق


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.