জেনেরিক কার্নেল ইমেজ (GKI) প্রকল্প

একটি পণ্য কার্নেল , যা একটি ডিভাইস কার্নেল বা OEM কার্নেল নামেও পরিচিত, সেই কার্নেল যা আপনি আপনার ডিভাইসে পাঠান৷ GKI-এর আগে, পণ্য কার্নেল আপস্ট্রিম কার্নেল পরিবর্তনের একটি সিরিজ থেকে উদ্ভূত হয়েছিল। চিত্র 1 দেখায় কিভাবে কার্নেল সংযোজন একটি পণ্য কার্নেল (OEM/ডিভাইস কার্নেল) প্রদান করে:

প্রাক-GKI পণ্য কার্নেল নির্মাণ

চিত্র 1. প্রাক-GKI পণ্য কার্নেল নির্মাণ।

  1. kernel.org থেকে লিনাক্স লং টার্ম সাপোর্টেড (এলটিএস) কার্নেলটি অ্যান্ড্রয়েড-নির্দিষ্ট প্যাচ দিয়ে পরিবর্তিত হয়েছে যার ফলে একটি অ্যান্ড্রয়েড কমন কার্নেল (ACK) হয়েছে।
  2. এসিকে বিক্রেতাদের দ্বারা সংশোধন করা হয়েছিল যারা তাদের সিস্টেম-অন-এ-চিপ (এসওসি) এর জন্য সমর্থন যোগ করেছে। বিক্রেতারা কর্মক্ষমতা বা পাওয়ার অপ্টিমাইজেশান যোগ করতে পারে। ফলস্বরূপ কার্নেলকে বলা হয় ভেন্ডর কার্নেল
  3. অবশেষে, বিক্রেতা কার্নেলটি OEMs দ্বারা অতিরিক্ত ডিভাইস ড্রাইভার এবং তাদের প্রয়োজনীয় মনে করা কাস্টমাইজেশন সহ আরও সংশোধন করা হয়েছিল। ফলস্বরূপ কার্নেলকে পণ্য কার্নেল বলা হয়।

এই সমস্ত পরিবর্তনের ফলে কার্নেল কোডের 50% পর্যন্ত গাছের বাইরের কোড হতে পারে এবং আপস্ট্রিম লিনাক্স কার্নেল বা ACKs থেকে নয়। GKI-এর আগে, প্রায় প্রতিটি ডিভাইসে একটি কাস্টম কার্নেল ছিল যার ফলে কার্নেল ফ্র্যাগমেন্টেশন হত।

খণ্ডিতকরণের খরচ

কার্নেল ফ্র্যাগমেন্টেশনের Android সম্প্রদায়ের উপর বেশ কিছু নেতিবাচক প্রভাব রয়েছে।

নিরাপত্তা আপডেট শ্রম নিবিড় হয়

অ্যান্ড্রয়েড সিকিউরিটি বুলেটিনে (ASB) উদ্ধৃত নিরাপত্তা প্যাচগুলি অবশ্যই প্রতিটি ডিভাইস কার্নেলে ব্যাকপোর্ট করতে হবে। যাইহোক, কার্নেল ফ্র্যাগমেন্টেশনের কারণে, ক্ষেত্রের মধ্যে অ্যান্ড্রয়েড ডিভাইসগুলিতে নিরাপত্তা সংশোধনগুলি প্রচার করা নিষিদ্ধভাবে ব্যয়বহুল।

দীর্ঘমেয়াদী সমর্থিত আপডেটগুলি মার্জ করা কঠিন৷

লং-টার্ম সাপোর্টেড (LTS) রিলিজে নিরাপত্তা সংশোধন এবং অন্যান্য জটিল বাগ সংশোধন অন্তর্ভুক্ত রয়েছে। LTS রিলিজের সাথে আপ টু ডেট থাকা নিরাপত্তা সমাধান প্রদানের সবচেয়ে কার্যকর উপায় বলে প্রমাণিত হয়েছে। Pixel ডিভাইসগুলিতে, এটি আবিষ্কৃত হয়েছে যে ASB-তে রিপোর্ট করা কার্নেল নিরাপত্তা সংক্রান্ত সমস্যাগুলির 90% ইতিমধ্যেই আপ টু ডেট থাকা ডিভাইসগুলির জন্য ঠিক করা হয়েছে।

যাইহোক, ডিভাইস কার্নেলের সমস্ত কাস্টম পরিবর্তনের সাথে, LTS ফিক্সগুলিকে ডিভাইস কার্নেলে মার্জ করা কঠিন।

অ্যান্ড্রয়েড প্ল্যাটফর্ম রিলিজ আপগ্রেড বাধা দেয়

ফ্র্যাগমেন্টেশন নতুন অ্যান্ড্রয়েড বৈশিষ্ট্যগুলির জন্য কঠিন করে তোলে যার জন্য ক্ষেত্রের ডিভাইসগুলিতে কার্নেল পরিবর্তনগুলি যোগ করা প্রয়োজন৷ অ্যান্ড্রয়েড ফ্রেমওয়ার্ক কোডকে অবশ্যই ধরে নিতে হবে যে পাঁচটির মতো কার্নেল সংস্করণ সমর্থিত এবং নতুন প্ল্যাটফর্ম প্রকাশের জন্য কোনও কার্নেল পরিবর্তন করা হয়নি (অ্যান্ড্রয়েড 10 3.18, 4.4, 4.9, 4.14 এবং 4.19 কার্নেল সমর্থন করে, যা কিছু ক্ষেত্রে করা হয়নি 2017 সালে Android 8 থেকে নতুন বৈশিষ্ট্য সহ উন্নত করা হয়েছে)।

আপস্ট্রিম লিনাক্সে কার্নেল পরিবর্তনগুলি অবদান রাখা কঠিন

কার্নেলের সমস্ত পরিবর্তনের সাথে, বেশিরভাগ ফ্ল্যাগশিপ ডিভাইসগুলি কার্নেল সংস্করণ সহ শিপ করা হয় যা ইতিমধ্যে কমপক্ষে 18 মাস পুরানো। উদাহরণস্বরূপ, 4.14 কার্নেলটি kernel.org দ্বারা 2017 সালের নভেম্বরে প্রকাশিত হয়েছিল এবং 2019 সালের বসন্তে 4.14 কার্নেল ব্যবহার করে প্রথম অ্যান্ড্রয়েড ফোন পাঠানো হয়েছিল।

আপস্ট্রিম কার্নেল রিলিজ এবং পণ্যগুলির মধ্যে এই দীর্ঘ বিলম্বের ফলে অ্যান্ড্রয়েড সম্প্রদায়ের জন্য আপস্ট্রিম কার্নেলে প্রয়োজনীয় বৈশিষ্ট্য এবং ড্রাইভারগুলি খাওয়ানো কঠিন হয়ে পড়ে।

ফ্র্যাগমেন্টেশন ফিক্সিং: জেনেরিক কার্নেল ইমেজ

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

  • GKI কার্নেল ACK উৎস থেকে তৈরি করা হয়েছে।
  • GKI কার্নেল হল একটি একক-কারনেল বাইনারি প্লাস যুক্ত লোডযোগ্য মডিউল প্রতি আর্কিটেকচার, প্রতি LTS রিলিজ (বর্তমানে শুধুমাত্র arm64 android11-5.4 এবং android12-5.4 এর জন্য)।
  • GKI কার্নেলটি সমস্ত Android প্ল্যাটফর্ম রিলিজের সাথে পরীক্ষা করা হয় যা সংশ্লিষ্ট ACK-এর জন্য সমর্থিত। একটি GKI কার্নেল সংস্করণের জীবনকালের জন্য কোনো বৈশিষ্ট্য অবমূল্যায়ন নেই।
  • GKI কার্নেল একটি নির্দিষ্ট LTS-এর মধ্যে ড্রাইভারদের কাছে একটি স্থিতিশীল KMI প্রকাশ করে।
  • GKI কার্নেলে SoC-নির্দিষ্ট বা বোর্ড-নির্দিষ্ট কোড থাকে না।

GKI আর্কিটেকচারের একটি চিত্রের জন্য, কার্নেল ওভারভিউ পড়ুন।

GKI হল একটি জটিল পরিবর্তন যা Android 11 প্ল্যাটফর্ম রিলিজে v5.4 কার্নেল থেকে শুরু করে বিভিন্ন পর্যায়ে রোল আউট হয়েছে।

বর্তমানে দুটি GKI পর্যায় রয়েছে:

  • GKI 1.0 Android 11-এ 5.4 কার্নেল সহ ডিভাইসগুলির জন্য চালু করা হয়েছিল। GKI 1.0 5.4 কার্নেল সহ প্রেরিত সমস্ত ডিভাইসে প্রযোজ্য, এমনকি Android 12 বা Android 13 এর সাথে লঞ্চ করা সমস্ত ডিভাইসে।
  • GKI 2.0 Android 12-এ 5.10 কার্নেল সহ ডিভাইসগুলির জন্য চালু করা হয়েছিল এবং 5.10 বা তার পরবর্তী কার্নেল সহ সমস্ত ডিভাইসের জন্য এটি নতুন মানদণ্ড।

GKI 1.0

GKI 1.0-এ, কার্নেল সংস্করণ 5.4 সহ লঞ্চ করা ডিভাইসগুলিকে অবশ্যই GKI পরীক্ষায় উত্তীর্ণ হতে হবে (Android 11 এবং পরবর্তী প্ল্যাটফর্ম রিলিজ)। GKI 1.0 লক্ষ্যগুলির মধ্যে নিম্নলিখিতগুলি অন্তর্ভুক্ত রয়েছে:

  • GKI কার্নেলের সাথে পণ্য কার্নেল প্রতিস্থাপন করার সময় ভেন্ডর টেস্ট স্যুট (VTS) বা Compatibility Test Suite (CTS) এ রিগ্রেশন এড়িয়ে চলুন।
  • AOSP সাধারণ কার্নেলের সাথে তাদের কার্নেল আপ টু ডেট রাখার অংশীদারের বোঝা কমিয়ে দিন।
  • নতুন অ্যান্ড্রয়েড রিলিজের সাথে আপগ্রেড এবং লঞ্চ করার জন্য ডিভাইসগুলির জন্য কার্নেলগুলিতে মূল Android পরিবর্তনগুলি অন্তর্ভুক্ত করুন৷
  • অ্যান্ড্রয়েড ইউজারস্পেস ভাঙবেন না।
  • লোডযোগ্য মডিউল হিসাবে কোর কার্নেল থেকে হার্ডওয়্যার-নির্দিষ্ট উপাদানগুলি পৃথক করুন।

GKI 1.0 ডকুমেন্টেশনের জন্য, GKI 1.0 বিভাগটি দেখুন।

GKI 2.0

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

  • GKI কার্নেলের সাথে পণ্য কার্নেল প্রতিস্থাপন করার সময় উল্লেখযোগ্য কর্মক্ষমতা বা পাওয়ার রিগ্রেশন প্রবর্তন করবেন না।
  • বিক্রেতা জড়িত না হয়ে কার্নেল নিরাপত্তা সংশোধন এবং বাগ সংশোধন করতে অংশীদারদের সক্ষম করুন৷
  • ডিভাইসগুলির জন্য প্রধান কার্নেল সংস্করণ আপডেট করার খরচ হ্রাস করুন (উদাহরণস্বরূপ, v5.10 থেকে 2021 LTS কার্নেল পর্যন্ত)।
  • আপগ্রেড করার জন্য একটি পরিষ্কার প্রক্রিয়া সহ কার্নেল সংস্করণ আপডেট করে আর্কিটেকচার প্রতি একটি একক GKI কার্নেল বাইনারি বজায় রাখুন।

GKI 2.0 অ্যান্ড্রয়েড কার্নেলের সবচেয়ে বর্তমান অবস্থার প্রতিনিধিত্ব করে। GKI 1.0 এর বাইরে কার্নেল ডকুমেন্টেশন এবং পূর্ববর্তী কার্নেল (<=4.19) উপবিভাগগুলি GKI 2.0 আর্কিটেকচার প্রতিফলিত করে।