هسته لینوکس 5.2 در Ext4 امکان جستجوی بدون حروف بزرگ را فراهم می کند

مورد غیر حساس

تد تسو، نویسنده سیستم های فایل ext2 / ext3 / ext4 ، شاخه بعدی لینوکس را پذیرفت ، در مورد پایه ای که نسخه لینوکس هسته 5.2 از آن ایجاد می شود، مجموعه ای از تغییراتی که پیاده سازی پشتیبانی برای عملیات مستقل مورد در سیستم فایل Ext4.

وصله ها آنها همچنین پشتیبانی از کاراکترهای UTF-8 را در نام پرونده ها اضافه می کنند. حالت کاراکتر غیر کاراکتری به صورت اختیاری در پیوند به جدا کردن فهرستها با استفاده از ویژگی جدید "+ F" (EXT4_CASEFOLD_FL) موجود است.

برای ext4 حساس نیست

وقتی این ویژگی در فهرست نصب شد ، همه عملیات با پرونده ها و زیر شاخه ها که درون او هستند حساس به حروف کوچک نخواهد بود ، از جمله پرونده هنگام جستجو و باز کردن پرونده ها نادیده گرفته می شود (به عنوان مثال Test.txt ، test.txt و test.TXT در دایرکتوری های مشابه) یکسان محسوب می شوند).

یعنی با یک ورودی دایرکتوری مطابقت دارد ، حتی اگر نام استفاده شده توسط فضای کاربر یک بایت برای بایت نباشد که با نام دیسک مطابقت داشته باشد ، اما یک نسخه معادل از حروف کوچک و بزرگ از رشته Unicode باشد.

به این عملیات جستجوی نام پرونده حساس به حروف بزرگ گفته می شود. این ویژگی به عنوان یک ویژگی inode پیکربندی شده است که به دایرکتوری ها اعمال می شود و توسط فرزندان آنها به ارث می رسد.

این صفت تنها را می توان در فهرست های خالی فعال کردs برای سیستم های پرونده ای که از عملکرد رمزگذاری پشتیبانی می کنند، بنابراین از برخورد نام پرونده هایی که فقط متناسب با مورد متفاوت هستند ، جلوگیری می شود.

به طور پیش فرض ، به استثنای فهرستهای دارای ویژگی "+ F" ، سیستم فایل هنوز به حروف کوچک و بزرگ حساس است. برای كنترل گنجاندن حالت حساس به حروف بزرگ ، یك مجموعه اصلاح شده از برنامه های e2fsprogs ارائه شده است.

این پچ پشتیبانی واقعی از جستجوی نام پرونده های حساس به حروف بزرگ در ext4 را اجرا می کند ، بر اساس بیت ویژگی و رمزگذاری ذخیره شده در superblock.

شغلی که رسیدن به آن مدتها طول کشید

وصله ها توسط گابریل کریسمان برتازی ، همکار همکار تهیه شده است و پس از سه سال توسعه و حذف نظرات ، از تلاش هفتم گرفته شد.

این پیاده سازی تغییری در قالب ذخیره سازی دیسک ایجاد نمی کند و منحصراً در سطح تغییر منطق مقایسه نام در عملکرد () ext4_lookup و جایگزینی هش در ساختار dcache (Directory Name Lookup Cache) کار می کند.

مقدار ویژگی "+ F" در inode های فهرست های جداگانه ذخیره می شود و برای همه پرونده ها و زیر شاخه های ضمیمه اعمال می شود. اطلاعات رمزگذاری در superblock ذخیره می شود.

در حال حاضر ، جستجوی منفی به dcache کشیده نمی شود ، زیرا به هر حال باید فاقد اعتبار شوند ، زیرا ما نمی توانیم به پرونده های گمشده اعتماد کنیم.

این برای عملکرد بد است ، اما برای اصلاح نیاز به استفاده از لایه vfs دارد.

فعلاً می توانیم بدون آن زندگی کنیم ، دقیقاً مثل بقیه.

برای جلوگیری از برخورد با نام پرونده های موجود ، ویژگی "+ F" فقط در فهرستهای خالی در سیستم فایلها قابل تنظیم است، که در آن حالت پشتیبانی Unicode در نام پرونده و فهرست در مرحله نصب فعال است.

نام عناصر دایرکتوری که ویژگی "+ F" برای آنها فعال می شود به طور خودکار به حروف کوچک ترجمه می شوند و به این ترتیب در dcache منعکس می شوند، اما آنها بر روی دیسک به شکلی که در ابتدا توسط کاربر تعریف شده ذخیره می شوند.

هش های جدید دیسک به جای هدر رفتن مستقیم زنجیره ، به عنوان هش کل زنجیره موارد محاسبه می شوند.

یعنی علی رغم پردازش نام بدون توجه به مورد ، نام ها بدون از دست دادن اطلاعات مربوط به مورد کاراکترها نمایش داده می شوند و ذخیره می شوند (اما سیستم به شما اجازه نمی دهد نام پرونده ای را با همان کاراکترها ایجاد کنید ، اما در حالت دیگر).

همچنین به کد VFS اجازه می دهد تا به سرعت ورودی صحیح در حافظه پنهان را پیدا کند حتی اگر از یک رشته معادل در جستجوی قبلی استفاده شده باشد


محتوای مقاله به اصول ما پیوست اخلاق تحریریه. برای گزارش یک خطا کلیک کنید اینجا.

اولین کسی باشید که نظر

نظر خود را بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند با *

*

*

  1. مسئول داده ها: میگل آنخل گاتون
  2. هدف از داده ها: کنترل هرزنامه ، مدیریت نظرات.
  3. مشروعیت: رضایت شما
  4. ارتباط داده ها: داده ها به اشخاص ثالث منتقل نمی شوند مگر با تعهد قانونی.
  5. ذخیره سازی داده ها: پایگاه داده به میزبانی شبکه های Occentus (EU)
  6. حقوق: در هر زمان می توانید اطلاعات خود را محدود ، بازیابی و حذف کنید.