কার্নেল মডিউল ওভারভিউ

সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।

কার্নেল মডিউল দুই ধরনের আছে: হার্ডওয়্যার অজ্ঞেয়বাদী GKI মডিউল এবং হার্ডওয়্যার-নির্দিষ্ট ভেন্ডর মডিউল । এই পৃষ্ঠাটি উভয় ধরনের মডিউলের একটি ওভারভিউ প্রদান করে।

GKI মডিউল

কিছু GKI কার্নেল কার্যকারিতা মডিউলগুলিতে বিতরণ করা হয় যাতে কার্যকারিতার প্রয়োজন হয় না এমন ডিভাইসগুলিতে GKI কার্নেল মেমরি ফুটপ্রিন্ট কমাতে। এই স্থাপত্যটি KMI ফ্রিজ মাইলস্টোনের পরে বিক্রেতাদের নতুন আপস্ট্রিম বৈশিষ্ট্যগুলিকে অন্তর্ভুক্ত করার অনুমতি দেওয়ার জন্য একটি ব্যবস্থাও সরবরাহ করে। GKI মডিউলগুলি কার্নেল বিল্ড টাইম কী জোড়া ব্যবহার করে Google দ্বারা স্বাক্ষরিত হয় এবং শুধুমাত্র GKI এর সাথে সামঞ্জস্যপূর্ণ। GKI কার্নেল এবং GKI মডিউলগুলির মধ্যে কোন ABI স্থায়িত্ব নেই, তাই রানটাইমের সময় সঠিকভাবে মডিউল লোড করার জন্য কার্নেল এবং GKI মডিউলগুলিকে একসাথে তৈরি এবং আপডেট করতে হবে।

দুটি যৌক্তিক ধরনের GKI মডিউল রয়েছে: সুরক্ষিত GKI মডিউল এবং অরক্ষিত GKI মডিউল

সুরক্ষিত GKI মডিউল

একটি সুরক্ষিত GKI মডিউল Google দ্বারা বিতরণ করা হয়, এটি কোনোভাবেই সীমাবদ্ধ নয় এবং লোড করার পরে কার্নেলের সাথে তৈরি করা হয় এমন আচরণ করে। উপরন্তু, সুরক্ষিত GKI মডিউলগুলির নিম্নলিখিত বৈশিষ্ট্য রয়েছে:

  • সুরক্ষিত GKI মডিউলগুলির অ-KMI কার্নেল চিহ্নগুলিতে অ্যাক্সেস রয়েছে যা বিক্রেতা মডিউল বা অরক্ষিত GKI মডিউলগুলিতে উপলব্ধ নয়৷
  • সুরক্ষিত GKI মডিউলগুলি সেই চিহ্নগুলি রপ্তানি করতে পারে যা KMI পৃষ্ঠের অংশ হয়ে ওঠে যতক্ষণ না সেই চিহ্নগুলিকে একটি প্রতীক তালিকায় উদ্ধৃত করা হয়৷
  • সুরক্ষিত GKI মডিউল বিক্রেতা মডিউল দ্বারা ওভাররাইড করা যাবে না।

একটি সুরক্ষিত GKI মডিউল হল GKI মডিউলের ডিফল্ট ক্লাস। সমস্ত GKI মডিউল কেএমআই ফ্রিজের সময় সুরক্ষিত বলে মনে করা হয়।

অরক্ষিত GKI মডিউল

একটি অরক্ষিত GKI মডিউল একটি বিক্রেতা মডিউল দ্বারা ওভাররাইড করা যেতে পারে। KMI ফ্রিজ করার পরে, একটি সুরক্ষিত GKI মডিউল অরক্ষিত হিসাবে পুনরায় শ্রেণীবদ্ধ করা হতে পারে যদি GKI টিম সিদ্ধান্ত নেয় যে বিক্রেতাদের একটি সংস্করণের সাথে ডিফল্ট বাস্তবায়নকে ওভাররাইড করতে হবে যাতে আপস্ট্রিম লিনাক্সের নতুন বৈশিষ্ট্যগুলি অন্তর্ভুক্ত থাকে। পরবর্তী GKI রিলিজে, একটি অ্যান্ড্রয়েড কমন কার্নেলে (ACK) আপস্ট্রিম কোড অবতরণ করার পরে অরক্ষিত মডিউলগুলিকে সুরক্ষিত হিসাবে পুনরায় শ্রেণীবদ্ধ করা হয়। অরক্ষিত GKI মডিউলগুলির নিম্নলিখিত বৈশিষ্ট্য রয়েছে:

  • অরক্ষিত GKI মডিউলগুলি বিক্রেতা মডিউলগুলির মতো রপ্তানি করা প্রতীকগুলিতে একই অ্যাক্সেস রয়েছে৷
  • অরক্ষিত GKI মডিউল সুরক্ষিত GKI মডিউল দ্বারা রপ্তানি করা প্রতীক রপ্তানি করতে পারে না।
  • অরক্ষিত GKI মডিউলগুলিকে অবশ্যই যেকোন KMI ইন্টারফেসগুলিকে মূল কার্নেলের অংশ হিসাবে সংরক্ষণ করতে হবে৷
  • অরক্ষিত GKI মডিউল বিক্রেতা মডিউল দ্বারা ওভাররাইড করা যেতে পারে।

বিক্রেতা মডিউল

SoC এবং ডিভাইস-নির্দিষ্ট কার্যকারিতা বাস্তবায়নের জন্য অংশীদারদের দ্বারা একটি বিক্রেতা মডিউল সরবরাহ করা হয়। যেকোন বিদ্যমান কার্নেল মডিউল যা GKI কার্নেলের অংশ হিসাবে বিতরণ করা হয় না একটি বিক্রেতা মডিউল হিসাবে বিতরণ করা যেতে পারে।

যেহেতু GKI প্রকল্পের প্রাথমিক লক্ষ্যগুলির মধ্যে একটি হল কোর কার্নেলে হার্ডওয়্যার-নির্দিষ্ট কোড ছোট করা, বিক্রেতারা আশা করতে পারেন যে GKI কার্নেলে এমন মডিউল অন্তর্ভুক্ত হবে না যা স্পষ্টভাবে তাদের নিজস্ব হার্ডওয়্যার পরিচালনা করছে। উদাহরণস্বরূপ, বিক্রেতা ABC Inc, আশা করতে পারে যে CONFIG_ABC_SOC_SUPPORT এর মতো CONFIG_ABC_SOC_SUPPORT তাদের সমর্থন ছাড়া অন্তর্নির্মিত বা লোডযোগ্য GKI মডিউল হিসাবে সক্রিয় করা হবে না৷

যদি ACK-এ একটি কার্নেল ড্রাইভার বা ফ্রেমওয়ার্ক বিদ্যমান থাকে, কিন্তু GKI কার্নেলের অংশ হিসাবে বিতরণ করা না হয়, তাহলে বিক্রেতারা ড্রাইভারটিকে সংশোধন করতে পারে এবং এটি একটি বিক্রেতা মডিউল হিসাবে সরবরাহ করতে পারে। এই ধরনের পরিবর্তনগুলি অ-বিক্রেতা-নির্দিষ্ট মডিউলগুলির জন্য নিরুৎসাহিত করা হয় কারণ একই কার্যকারিতা ভবিষ্যতে রিলিজে GKI কার্নেলের সাথে সরবরাহ করা যেতে পারে। যখন GKI কার্নেলে একটি ভেন্ডর মডিউল দ্বারা প্রদত্ত কার্যকারিতা থাকে, তখন ভেন্ডর মডিউল লোড হবে না। উদাহরণস্বরূপ, Android 11-এ CONFIG_GREYBUS এর জন্য সেট করা নেই, তাই বিক্রেতারা greybus ভেন্ডর মডিউল সরবরাহ করতে পারে। যাইহোক, Android 12-এ CONFIG_GREYBUS একটি GKI বিল্ট-ইন বা মডিউল হিসাবে সক্ষম হতে পারে, এই ক্ষেত্রে গ্রেবাস বিক্রেতা মডিউলগুলি লোড করা হবে না। একটি সর্বোত্তম অনুশীলন হল অ-বিক্রেতা-নির্দিষ্ট ড্রাইভারের আপস্ট্রিম সংস্করণ ব্যবহার করা যদি সেগুলি বিক্রেতা মডিউল হিসাবে বিতরণ করা হয়।

আপনি vendor বা vendor_boot ছবিতে বিক্রেতা মডিউল সরবরাহ করতে পারেন। বুট প্রক্রিয়ার প্রথম দিকে প্রয়োজনীয় মডিউল অবশ্যই vendor_boot এ থাকতে হবে। vendor_boot থেকে মডিউল লোড করার সাথে যুক্ত একটি বুট-টাইম খরচ আছে।