Android تزايدي FS

كيف يسمح نظام الملفات الافتراضي في Android ببدء تشغيل اللعبة بشكل أسرع

نظام الملفات التزايدي بواسطة Google

تعمل Google على نوع جديد من نظام الملفات يسمح بتنفيذ الثنائيات قبل تحميل حزمة كاملة. بأخذ تطوير تطبيقات Android كمثال ، عليك حاليًا الانتظار حتى يتم إرسال الملف الثنائي بالكامل إما إلى المحاكي أو جهاز الاختبار الحقيقي الخاص بك لتصحيح الأخطاء. يعمل نظام الملفات التزايدي على تقصير هذا التأخير بشكل كبير عن طريق السماح بتنفيذ الملف الثنائي قبل إرسال الحزمة بأكملها. يبدو هذا معقدًا للغاية ، وهذا ما هو عليه ، ولكن لا يزال بإمكاننا إلقاء نظرة عليه لفهم أفضل لما سيكون على الأرجح ميزة افتراضية في Android 12 والإصدارات الأحدث.

نظام ملفات افتراضي يسمى "incfs"

حل نظام الملفات الافتراضي من Google ، والذي سيتم استخدامه في أول تكرار له حصريًا لملفات APK و AABs التي يتم تحميلها من متجر Play ، هو طبقة تقع أعلى نظام الملفات الحقيقي. لتوضيح البنية بشكل أفضل ، أستخدم بعض الشرائح التي أنشأتها Google لإجراء محادثة تقنية. يمكنك العثور على الرابط في الملحق في نهاية هذه الصفحة.

Image ee3856bcadf8

Image 8372e503efa4

بالعودة إلى الموضوع ، يمكن اعتبار نظام الملفات التزايدية من Google بمثابة ذاكرة تخزين مؤقت ، حيث تشير الكيانات التي تم إنشاؤها مباشرةً إلى الملفات في نظام الملفات الحقيقي. تم دمج الكود نفسه بعمق في نظام التشغيل كوحدة نمطية kernel - والذي يبدو منطقيًا نظرًا لوضعه منخفض المستوى في الهيكل العام.

ميزة نظام الملفات الافتراضي

تكمن ميزة مثل FS الظاهري في أنك لست ملزمًا بحدود نظام ملفات حقيقي ، حيث لا يمكن أن تحدث القراءة والتنفيذ اللاحق للبرنامج إلا في حالة توفر الحزمة الكاملة - من أول بايت إلى آخر بايت. مع "نظام الملفات الإضافي" ، يتم مسح هذا القيد تقنيًا. ولكن مع هذه الميزة القوية تأتي مجموعة كبيرة من الجوانب المعقدة التي يجب مراعاتها.

أخذها من مهندس Google ، فإن التحدي الكبير هو المعالجة الصحيحة لعمليات الكتابة. نظام الملفات الافتراضي له حالته الخاصة فيما يتعلق بالقراءات المعلقة ، ولكن لا يزال يتعين عليه الحفاظ على تكامل البيانات للملفات المحملة.

Image b66896f09bca

تتم معالجة التحدي من خلال إنشاء فهرس مخصص في "incfs". يرتبط كل ملف حقيقي بشكل مباشر بكيان في نظام الملفات الافتراضي ، حتى عند إعادة تسمية الملف الأصلي.

Image f14b7aa11bdd

اختصار آخر يسمى "ioctl"

يشير هذا الاختصار إلى "التحكم في الإدخال / الإخراج" ويؤدي إلى إنشاء مثل هذا الملف الفهرس في نظام الملفات التزايدي من Google. يأتي "ioctl" من نظام التشغيل وتفسيره الفني خارج نطاق هذه المقالة. إذا كنت تريد قراءة المزيد ، فهناك رابط في الملحق أيضًا.

من المثير للاهتمام أيضًا: أن "incfs" لديها آلية تسجيل مضمنة. سيتم استخدام هذه الميزة لتحديد أداء العالم الحقيقي لتنفيذها لمزيد من التحسينات.

الاستخدام العملي

كانت بداية هذه الميزة في مايو 2019 ، عندما بدأ بعض مهندسي Google في إجراء تغييرات على Linux kernel. سمح لهم وضعه هناك باستخدامه ببساطة في مشروع Android Open Source Project (AOSP) ، وهو الجزء المفتوح المصدر من Android والأساس الرئيسي لنظام التشغيل هذا ، حيث تم إنشاء AOSP على Linux Kernel أيضًا.

لم يكن المساهمون في Linux سعداء للغاية ، حيث تم بالفعل اتباع طرق مماثلة لتحسين نظام الملفات ، مثل FUSE أو OverlayFS. ومع ذلك ، من وجهة نظر Google ، لم تكن هذه التطبيقات ذات أداء كافٍ تقريبًا على أجهزة Android منخفضة الجودة. أدى ذلك إلى تطوير نظام الملفات التزايدي.

بالنسبة للتكرار الأول ، سيتم استخدامه للألعاب التي يتم تنزيلها من Play Store بدءًا من Android 12 لتقصير الوقت الذي يستغرقه تشغيل اللعبة بالفعل. تفترض هذه الميزة الرائعة حقًا نظام الملفات التزايدي ، ولكن أيضًا بعض المنطق المدمج في Android لتحديد كيفية بدء هذه الألعاب بشكل مباشر مبكرًا - دون أي تغييرات من قبل المطور ، وفقًا لـ Google.

الاقتراحات

ذات صلة

ملحق

اللغات