نظرة عامة على وحدات النواة (Kernel)

هناك نوعان من وحدات النواة kernel: غير المرتبطة بالأجهزة وحدات GKI والأجهزة الخاصة بالأجهزة وحدات المورّد تقدّم هذه الصفحة نظرة عامة على كِلا النوعَين من الوحدات.

وحدات GKI

تُستخدم وحدات صورة النواة (GKI) العامة لإرسال نواة لا تتطلّب التشغيل. إمكانات منفصلة عن النواة الأساسية العامة. باستخدام وحدات GKI، يمكنك: اختيار إمكانات نواة معيّنة لاستخدامها، وغالبًا ما يقلّل حجم صورة النواة واستهلاك الذاكرة في وقت التشغيل. ويجعل انخفاض الحجم GKI مناسبًا تمامًا أجهزة Android Go وغير ذلك من أشكال الأجهزة المقيَّدة بمواردها

توفّر وحدات GKI آلية للسماح للمورّدين بدمج الميزات الرئيسية بعد إنجاز التحديثات في خوارزمية KMI. رمز برمجي مضمَّن بدون إنشاء صورة أخرى، في حين أن الرمز الذي يتم إرساله يمكن استبدالها بوحدة أخرى.

تستخدم وحدات GKI البنية الأساسية لتوقيع الكيرنل (النواة) خلال وقت الإصدار بغرض تمييز بين GKI والوحدات الأخرى في وقت التشغيل. يُسمح بتحميل الوحدات غير الموقَّعة. طالما أنها تستخدم فقط الرموز التي تظهر في القائمة المسموح بها أو مقدَّمة من جهات أخرى الوحدات غير الموقعة.

هناك نوعان منطقيان من وحدات GKI، وهما وحدة GKI المحمية. ووحدة GKI غير المحمية.

وحدة GKI المحمية

تقدّم Google وحدة GKI المحمية، ولا يتم فرض قيود عليها بأي شكل من الأشكال. كما لو أنه تم إنشاؤه باستخدام النواة بعد التحميل. بالإضافة إلى ذلك، وتتمتع وحدات GKI المحمية بالخصائص التالية:

  • يمكن لوحدات GKI المحمية الوصول إلى رموز النواة التي لا تخصّ KMI المتاحة لوحدات المورّدين أو وحدات GKI غير المحمية.
  • يمكن لوحدات GKI المحمية تصدير الرموز التي تصبح جزءًا من واجهة KMI. طالما يتم الاستشهاد بهذه الرموز في قائمة رموز.
  • لا يمكن لوحدات المورِّدين تجاوز وحدات GKI المحمية.

وحدة GKI المحمية هي الفئة التلقائية لوحدات GKI. جميع أجهزة GKI تعتبر الوحدات محمية في وقت تجمّد خوارزمية KMI.

وحدة GKI غير محمية

يمكن إلغاء وحدة GKI غير المحمية من خلال وحدة المورّد. بعد تجميد KMI، قد تتم إعادة تصنيف وحدة GKI المحمية على أنّها غير محمية إذا كان فريق GKI إلى أنّ المورّدين بحاجة إلى إلغاء طريقة التنفيذ التلقائية بإصدار يتضمّن ميزات جديدة من إصدار نظام التشغيل Linux الرئيسي في التاريخ التالي إصدار GKI، تتم إعادة تصنيف الوحدات غير المحمية على أنّها محمية بعد يصل الرمز الأولي إلى النواة المشتركة في Android (ACK). وحدات GKI غير المحمية السمات الشخصية التالية:

  • وحدات GKI غير المحمية لديها أذونات الوصول نفسها إلى الرموز التي تم تصديرها كالمورّد الوحدات.
  • لا يمكن لوحدات GKI غير المحمية تصدير الرموز التي تم تصديرها من خلال GKI المحمي. الوحدات.
  • يجب أن تحتفظ وحدات GKI غير المحمية بأيّ واجهات KMI كما لو كانت جزءًا من النواة الأساسية.
  • يمكن أن تتجاهل وحدات المورِّدين وحدات GKI غير المحمية.

وحدات المورّدين

يوفّر الشركاء وحدة خاصة بالمورّد لتطبيق منظومة المنظومة على الرقاقة (SoC) والتطبيقات الخاصة بالجهاز. والإمكانات. أي وحدة نواة حالية لا يتم تقديمها كجزء من يمكن تقديم نواة GKI كوحدة للمورد.

ونظرًا لأن أحد الأهداف الأساسية لمشروع GKI هو تقليل الكود الخاص بالأجهزة في النواة الأساسية، يمكن للبائعين توقع أن يتم تحديث واجهة برمجة التطبيقات GKI على وحدات تدير الأجهزة الخاصة بها بوضوح. بالنسبة على سبيل المثال، يمكن للبائع ABC Inc. أن يتوقع أن تكون هناك تكوينات مثل لن يتم تفعيل CONFIG_ABC_SOC_SUPPORT كميزة مدمجة أو قابلة للتحميل. وحدات GKI بدون دعمها.

إذا كان هناك برنامج تشغيل نواة أو إطار عمل في ACK، ولكن لم يتم تقديمه كجزء من نواة GKI، يمكن للبائعين تعديل برنامج التشغيل وتقديمه كمورد واحدة. لا يُنصح باستخدام هذا النوع من التعديلات مع الوحدات التي لا يستخدمها المورّد. لأنه قد يتم تقديم الإمكانيات نفسها باستخدام نواة GKI في الإصدار المستقبلي. عندما تحتوي نواة GKI على إمكانات يوفّرها المورّد فلن يتم تحميل وحدة البائع. على سبيل المثال: لم يتم ضبط CONFIG_GREYBUS على GKI في Android 11، لذلك يمكن للبائعين تسليم وحدات موردي الحافلة الرمادية. ومع ذلك، قد يكون CONFIG_GREYBUS يمكن تفعيلها كوحدة أو وحدة مدمجة في GKI في Android 12، ومن هذه الحالة لن يتم تحميل وحدات مورد Gredbus. من أفضل الممارسات استخدام الإصدار الرئيسي من برامج التشغيل غير المتعلقة بالموردين إذا تم تسليمها البائع.

يمكنك عرض وحدات المورّدين في vendor أو vendor_boot . يجب أن تكون الوحدات المطلوبة في وقت مبكر من عملية التشغيل في vendor_boot. هناك تكلفة وقت التشغيل مرتبطة بوحدات التحميل من vendor_boot.