Android कर्नेल, अपस्ट्रीम Linux के लंबे समय तक सहायता (एलटीएस) देने वाले कर्नेल पर आधारित है. Google में, एलटीएस कर्नेल को Android के लिए खास तौर पर बनाए गए पैच के साथ मिलाकर, Android कॉमन कर्नेल (एसीके) बनाए जाते हैं.
एसीके, kernel/common रिपॉज़िटरी से बनाए जाते हैं. यह रिपॉज़िटरी, अपस्ट्रीम Linux कर्नेल का सुपरसेट है. इसमें Android के लिए खास तौर पर बनाए गए पैच भी शामिल हैं.
5.10 और इससे ज़्यादा वर्शन वाले एसीके को *जेनेरिक कर्नेल इमेज (जीकेआई) कर्नेल* भी कहा जाता है. जीकेआई कर्नेल, हार्डवेयर से अलग जेनेरिक कोर कर्नेल कोड और जीकेआई मॉड्यूल को, हार्डवेयर के हिसाब से बनाए गए वेंडर मॉड्यूल से अलग करने की सुविधा देते हैं.
जीकेआई कर्नेल और वेंडर मॉड्यूल के बीच इंटरैक्शन, कर्नेल मॉड्यूल इंटरफ़ेस (केएमआई) की मदद से होता है. इसमें सिंबल की ऐसी सूचियां होती हैं जिनसे वेंडर मॉड्यूल के लिए ज़रूरी फ़ंक्शन और ग्लोबल डेटा की पहचान की जा सकती है. पहली इमेज में, जीकेआई कर्नेल और वेंडर मॉड्यूल का आर्किटेक्चर दिखाया गया है:

पहली इमेज. जीकेआई कर्नेल और वेंडर मॉड्यूल का आर्किटेक्चर.
कर्नेल की शब्दावली
यहां कर्नेल के दस्तावेज़ों में इस्तेमाल किए जाने वाले शब्दों के बारे में बताया गया है.
कर्नेल के टाइप
- Android कॉमन कर्नेल (एसीके)
- यह एलटीएस कर्नेल का डाउनस्ट्रीम कर्नेल है. इसमें Android कम्यूनिटी के लिए ज़रूरी पैच शामिल होते हैं. इन पैच को Linux मेनलाइन या लंबे समय तक सहायता देने वाले जीकेआई कर्नेल में मर्ज नहीं किया गया है.
5.10 और इससे ज़्यादा वर्शन वाले कर्नेल को जेनेरिक कर्नेल इमेज (जीकेआई) कर्नेल भी कहा जाता है.
Android 12 की सुविधाओं को 4.19 कर्नेल में बैकपोर्ट नहीं किया जा सकता. सुविधाओं का सेट, Android 11 पर 4.19 के साथ लॉन्च हुए और Android 12 पर अपग्रेड किए गए डिवाइस जैसा होगा.
- जेनेरिक कर्नेल इमेज (जीकेआई) कर्नेल
5.10 और इससे ज़्यादा वर्शन वाला कोई भी एसीके कर्नेल(सिर्फ़ aarch64). जीकेआई कर्नेल के ये दो हिस्से होते हैं:
जेनेरिक कर्नेल - जीकेआई कर्नेल का वह हिस्सा जो सभी डिवाइसों के लिए एक जैसा होता है.
जीकेआई मॉड्यूल - Google के बनाए गए कर्नेल मॉड्यूल. इन्हें, ज़रूरत के हिसाब से डिवाइसों पर डाइनैमिक तरीके से लोड किया जा सकता है. ये मॉड्यूल, जीकेआई कर्नेल के आर्टफ़ैक्ट के तौर पर बनाए जाते हैं. इन्हें जीकेआई के साथ,
system_dlkm_staging_archive.tar.gzआर्काइव के तौर पर डिलीवर किया जाता है. जीकेआई मॉड्यूल को Google, कर्नेल बिल्ड टाइम की जोड़ी का इस्तेमाल करके साइन करता है. ये सिर्फ़ उस जीकेआई कर्नेल के साथ काम करते हैं जिसके साथ इन्हें बनाया गया है.
- कर्नेल मॉड्यूल इंटरफ़ेस (केएमआई) कर्नेल
जीकेआई कर्नेल देखें.
- लंबे समय तक सहायता (एलटीएस) देने वाला कर्नेल
यह Linux कर्नेल है, जिसे दो से छह साल तक सहायता मिलती है. एलटीएस कर्नेल साल में एक बार रिलीज़ किए जाते हैं. ये Google के हर Android Common Kernels की बुनियाद होते हैं.
ब्रांच के टाइप
- एसीके केएमआई कर्नेल ब्रांच
- यह वह ब्रांच है जिसके लिए जीकेआई कर्नेल बनाए जाते हैं. ब्रांच के नाम, कर्नेल वर्शन के मुताबिक होते हैं. जैसे,
android15-6.6. - Android-mainline
- यह Android की सुविधाओं के लिए, डेवलपमेंट की मुख्य ब्रांच है. जब अपस्ट्रीम में कोई नया एलटीएस कर्नेल घोषित किया जाता है, तो android-mainline से, उससे जुड़ा नया जीकेआई कर्नेल ब्रांच किया जाता है.
Linux mainline :यह अपस्ट्रीम Linux कर्नेल के लिए, डेवलपमेंट की मुख्य ब्रांच है. इसमें एलटीएस कर्नेल भी शामिल हैं.
अन्य शब्द
- सर्टिफ़ाइड बूट इमेज
- यह कर्नेल, बाइनरी फ़ॉर्म (
boot.img) में डिलीवर किया जाता है और इसे डिवाइस पर फ़्लैश किया जाता है. इस इमेज को सर्टिफ़ाइड माना जाता है, क्योंकि इसमें एम्बेड किए गए सर्टिफ़िकेट शामिल होते हैं. इससे Google यह पुष्टि कर सकता है कि डिवाइस में Google से सर्टिफ़ाइड कर्नेल है. - डाइनैमिक तरीके से लोड किया जा सकने वाला कर्नेल मॉड्यूल (डीएलकेएम)
- यह एक ऐसा मॉड्यूल है जिसे डिवाइस की ज़रूरत के हिसाब से, डिवाइस बूट होने के दौरान डाइनैमिक तरीके से लोड किया जा सकता है. जीकेआई और वेंडर मॉड्यूल, दोनों ही डीएलकेएम के टाइप हैं. डीएलकेएम,
.koफ़ॉर्म में रिलीज़ किए जाते हैं. ये ड्राइवर हो सकते हैं या कर्नेल की अन्य सुविधाएं दे सकते हैं. - जीकेआई प्रोजेक्ट
- यह Google का एक प्रोजेक्ट है. इसका मकसद, कर्नेल फ़्रैगमेंटेशन की समस्या को हल करना है. इसके लिए, कॉमन कोर कर्नेल की सुविधाओं को, लोड किए जा सकने वाले मॉड्यूल में, वेंडर के हिसाब से बनाए गए SoC और बोर्ड सपोर्ट से अलग किया जाता है.
जेनेरिक कर्नेल इमेज (जीकेआई) :यह Google से सर्टिफ़ाइड बूट इमेज है. इसमें एसीके सोर्स ट्री से बनाया गया जीकेआई कर्नेल शामिल होता है. इसे Android पर चलने वाले डिवाइस के बूट पार्टिशन पर फ़्लैश किया जा सकता है.
- कर्नेल मॉड्यूल इंटरफ़ेस (केएमआई)
- यह जीकेआई कर्नेल और वेंडर मॉड्यूल के बीच एक इंटरफ़ेस है. इसकी मदद से, वेंडर मॉड्यूल को जीकेआई कर्नेल से अलग अपडेट किया जा सकता है. इस इंटरफ़ेस में, कर्नेल के फ़ंक्शन और ग्लोबल डेटा शामिल होते हैं. इनकी पहचान, पार्टनर के हिसाब से सिंबल की सूचियों का इस्तेमाल करके, वेंडर/ओईएम की डिपेंडेंसी के तौर पर की गई है.
- वेंडर मॉड्यूल
- यह हार्डवेयर के हिसाब से बनाया गया मॉड्यूल है. इसे पार्टनर ने बनाया है. इसमें SoC और डिवाइस के हिसाब से बनाई गई सुविधाएं शामिल होती हैं. वेंडर मॉड्यूल, डाइनैमिक तरीके से लोड किया जा सकने वाला कर्नेल मॉड्यूल का एक टाइप है.
अगला कदम क्या है
अगर आपको Android कर्नेल डेवलपमेंट के बारे में कुछ भी नहीं पता, तो यहां से शुरुआत करें:
- लंबे समय तक स्टेबल रहने वाले कर्नेल - अपस्ट्रीम एलटीएस कर्नेल के बारे में बैकग्राउंड जानकारी. ये कर्नेल, एसीके में शामिल किए जाते हैं.
- Android कॉमन कर्नेल - एसीके के बारे में बैकग्राउंड जानकारी.
अगर आपको जीकेआई कर्नेल डेवलपमेंट के बारे में कुछ भी नहीं पता, तो जीकेआई डेवलपमेंट के बारे में जानकारी देने वाला लेख पढ़ें.