कर्नेल सिंहावलोकन

एंड्रॉइड कर्नेल अपस्ट्रीम लिनक्स लॉन्ग टर्म सपोर्टेड (एलटीएस) कर्नेल पर आधारित है। Google में, LTS गुठली को Android-विशिष्ट पैच के साथ संयोजित किया जाता है, जिसे Android सामान्य गुठली (ACKs) के रूप में जाना जाता है।

नए ACKs (संस्करण 5.4 और ऊपर) को GKI कर्नेल के रूप में भी जाना जाता है। GKI गुठली हार्डवेयर-अज्ञेय जेनेरिक कोर कर्नेल कोड और GKI मॉड्यूल को हार्डवेयर-विशिष्ट विक्रेता मॉड्यूल से अलग करने का समर्थन करती है।

जीकेआई कर्नेल एक चिप (एसओसी) और बोर्ड-विशिष्ट कोड पर सिस्टम युक्त हार्डवेयर-विशिष्ट विक्रेता मॉड्यूल के साथ इंटरैक्ट करता है। GKI कर्नेल और वेंडर मॉड्यूल के बीच की बातचीत कर्नेल मॉड्यूल इंटरफ़ेस (KMI) द्वारा सक्षम होती है, जिसमें वेंडर मॉड्यूल द्वारा आवश्यक कार्यों और वैश्विक डेटा की पहचान करने वाली प्रतीक सूची होती है। चित्र 1 GKI कर्नेल और वेंडर मॉड्यूल आर्किटेक्चर दिखाता है:

जीकेआई वास्तुकला
चित्र 1. GKI आर्किटेक्चर

कर्नेल शब्दावली

इस खंड में कर्नेल प्रलेखन में प्रयुक्त शब्द शामिल हैं।

कर्नेल प्रकार

Android सामान्य कर्नेल (ACK)
एक कर्नेल जो LTS कर्नेल का डाउनस्ट्रीम है और इसमें Android समुदाय के लिए रुचि के पैच शामिल हैं जिन्हें Linux मेनलाइन या लॉन्ग टर्म सपोर्टेड (LTS) कर्नेल में विलय नहीं किया गया है। नए ACKs (संस्करण 5.4 और ऊपर) को GKI कर्नेल के रूप में भी जाना जाता है क्योंकि वे हार्डवेयर एग्नॉस्टिक जेनेरिक कर्नेल कोड और हार्डवेयर एग्नॉस्टिक GKI मॉड्यूल के पृथक्करण का समर्थन करते हैं।
Android ओपन सोर्स प्रोजेक्ट (AOSP) कर्नेल
एंड्रॉइड कॉमन कर्नेल देखें।
फ़ीचर कर्नेल
एक कर्नेल जिसके लिए प्लेटफ़ॉर्म रिलीज़ सुविधाओं को लागू करने की गारंटी है। उदाहरण के लिए, Android 12 में दो फीचर कर्नेल android12-5.4 और android12-5.10 थे। Android 12 सुविधाओं को 4.19 गुठली में वापस नहीं लाया जा सकता है; फीचर सेट उस डिवाइस के समान होगा जो R पर 4.19 के साथ लॉन्च हुआ और S में अपग्रेड किया गया)।
सामान्य कोर कर्नेल
GKI कर्नेल का वह भाग जो सभी उपकरणों में समान है।
सामान्य कर्नेल छवि (GKI) कर्नेल
कोई भी नया (5.4 और ऊपर) ACK कर्नेल (वर्तमान में केवल aarch64)। इस कर्नेल के दो भाग होते हैं: कोर GKI कर्नेल जिसका कोड सभी उपकरणों में समान होता है और Google द्वारा विकसित GKI मॉड्यूल जिसे उपकरणों पर गतिशील रूप से लोड किया जा सकता है जहाँ लागू हो।
कर्नेल मॉड्यूल इंटरफ़ेस (KMI) कर्नेल
जीकेआई कर्नेल देखें।
कर्नेल लॉन्च करें
एक कर्नेल जो किसी दिए गए Android प्लेटफ़ॉर्म रिलीज़ के लिए डिवाइस लॉन्च करने के लिए मान्य है। उदाहरण के लिए, एंड्रॉइड 12 में, वैध लॉन्च कर्नेल 4.19, 5.4 और 5.10 थे।
लॉन्ग टर्म सपोर्टेड (LTS) कर्नेल
एक Linux कर्नेल जो 2 से 6 वर्षों के लिए समर्थित है। LTS कर्नेल प्रति वर्ष एक बार जारी किए जाते हैं और Google के प्रत्येक ACK का आधार होते हैं।

शाखाओं के प्रकार

एसीके केएमआई कर्नेल शाखा
वह शाखा जिसके लिए GKI गुठली बनाई जाती है। उदाहरण के लिए, android12-5.10 और android13-5.15।
Android-मेनलाइन
Android सुविधाओं के लिए प्राथमिक विकास शाखा। जब एक नया एलटीएस कर्नेल अपस्ट्रीम घोषित किया जाता है, तो संबंधित नया जीकेआई कर्नेल एंड्रॉइड-मेनलाइन से ब्रांच किया जाता है।
लिनक्स मेनलाइन
एलटीएस कर्नेल सहित अपस्ट्रीम लिनक्स कर्नेल के लिए प्राथमिक विकास शाखा।

अन्य निबंधन

प्रमाणित बूट छवि
कर्नेल बाइनरी फॉर्म ( boot.img ) में डिलीवर होता है और डिवाइस पर फ्लैश होता है। यह छवि इस अर्थ में प्रमाणित है कि इसमें एम्बेड किए गए प्रमाणपत्र हैं ताकि Google यह सत्यापित कर सके कि डिवाइस Google द्वारा प्रमाणित कर्नेल के साथ आता है।
गतिशील रूप से लोड करने योग्य कर्नेल मॉड्यूल (डीएलकेएम)
एक मॉड्यूल जिसे डिवाइस की जरूरतों के आधार पर डिवाइस बूट के दौरान गतिशील रूप से लोड किया जा सकता है। GKI और वेंडर मॉड्यूल दोनों प्रकार के DLKM हैं। DLKMs .ko फॉर्म में जारी किए जाते हैं और ड्राइवर हो सकते हैं या अन्य कर्नेल कार्यक्षमता प्रदान कर सकते हैं।
जीकेआई परियोजना
लोड करने योग्य मॉड्यूल में विक्रेता-विशिष्ट एसओसी और बोर्ड समर्थन से सामान्य कोर कर्नेल कार्यक्षमता को अलग करके कर्नेल विखंडन को संबोधित करने वाली एक Google परियोजना।
सामान्य कर्नेल छवि (GKI)
Google द्वारा प्रमाणित एक बूट इमेज जिसमें ACK सोर्स ट्री से निर्मित GKI कर्नेल होता है और Android डिवाइस के बूट पार्टीशन में फ्लैश करने के लिए उपयुक्त होता है।
केएमआई
GKI कर्नेल और विक्रेता मॉड्यूल के बीच एक इंटरफ़ेस जो विक्रेता मॉड्यूल को GKI कर्नेल से स्वतंत्र रूप से अद्यतन करने की अनुमति देता है। इस इंटरफ़ेस में कर्नेल फ़ंक्शंस और वैश्विक डेटा शामिल हैं जिन्हें प्रति-भागीदार प्रतीक सूचियों का उपयोग करके विक्रेता/OEM निर्भरता के रूप में पहचाना गया है।
जीकेआई मॉड्यूल
Google द्वारा बनाए गए कर्नेल मॉड्यूल, जहां लागू हो, उपकरणों पर गतिशील रूप से लोड किए जा सकते हैं। ये मॉड्यूल GKI कर्नेल की कलाकृतियों के रूप में बनाए गए हैं और GKI के साथ system_dlkm_staging_archive.tar.gz संग्रह के रूप में वितरित किए गए हैं। GKI मॉड्यूल Google द्वारा कर्नेल बिल्ड टाइम कुंजी जोड़ी का उपयोग करके हस्ताक्षरित हैं और केवल GKI कर्नेल के साथ संगत हैं जिसके साथ वे बनाए गए हैं।
विक्रेता मॉड्यूल
एक पार्टनर द्वारा विकसित एक हार्डवेयर-विशिष्ट मॉड्यूल और जिसमें एसओसी और डिवाइस-विशिष्ट कार्यक्षमता शामिल है। एक विक्रेता मॉड्यूल गतिशील रूप से लोड करने योग्य कर्नेल मॉड्यूल का एक प्रकार है।

आगे क्या होगा?

  • यदि आप Android कर्नेल विकास के लिए नए हैं, तो आप निम्न को पढ़कर प्रारंभ करना चाहेंगे:
  • यदि आप GKI कर्नेल विकास के लिए नए हैं, तो GKI विकास पढ़कर प्रारंभ करें।
  • यदि आप 4.19 या पुराने के कर्नेल संस्करण का उपयोग कर रहे हैं और संबंधित दस्तावेज़ों की तलाश कर रहे हैं, तो पिछला कर्नेल (<= 4.19) सिंहावलोकन अनुभाग देखें।
,

एंड्रॉइड कर्नेल अपस्ट्रीम लिनक्स लॉन्ग टर्म सपोर्टेड (एलटीएस) कर्नेल पर आधारित है। Google में, LTS गुठली को Android-विशिष्ट पैच के साथ संयोजित किया जाता है, जिसे Android सामान्य गुठली (ACKs) के रूप में जाना जाता है।

नए ACKs (संस्करण 5.4 और ऊपर) को GKI कर्नेल के रूप में भी जाना जाता है। GKI गुठली हार्डवेयर-अज्ञेय जेनेरिक कोर कर्नेल कोड और GKI मॉड्यूल को हार्डवेयर-विशिष्ट विक्रेता मॉड्यूल से अलग करने का समर्थन करती है।

जीकेआई कर्नेल एक चिप (एसओसी) और बोर्ड-विशिष्ट कोड पर सिस्टम युक्त हार्डवेयर-विशिष्ट विक्रेता मॉड्यूल के साथ इंटरैक्ट करता है। GKI कर्नेल और वेंडर मॉड्यूल के बीच की बातचीत कर्नेल मॉड्यूल इंटरफ़ेस (KMI) द्वारा सक्षम होती है, जिसमें वेंडर मॉड्यूल द्वारा आवश्यक कार्यों और वैश्विक डेटा की पहचान करने वाली प्रतीक सूची होती है। चित्र 1 GKI कर्नेल और वेंडर मॉड्यूल आर्किटेक्चर दिखाता है:

जीकेआई वास्तुकला
चित्र 1. GKI आर्किटेक्चर

कर्नेल शब्दावली

इस खंड में कर्नेल प्रलेखन में प्रयुक्त शब्द शामिल हैं।

कर्नेल प्रकार

Android सामान्य कर्नेल (ACK)
एक कर्नेल जो LTS कर्नेल का डाउनस्ट्रीम है और इसमें Android समुदाय के लिए रुचि के पैच शामिल हैं जिन्हें Linux मेनलाइन या लॉन्ग टर्म सपोर्टेड (LTS) कर्नेल में विलय नहीं किया गया है। नए ACKs (संस्करण 5.4 और ऊपर) को GKI कर्नेल के रूप में भी जाना जाता है क्योंकि वे हार्डवेयर एग्नॉस्टिक जेनेरिक कर्नेल कोड और हार्डवेयर एग्नॉस्टिक GKI मॉड्यूल के पृथक्करण का समर्थन करते हैं।
Android ओपन सोर्स प्रोजेक्ट (AOSP) कर्नेल
एंड्रॉइड कॉमन कर्नेल देखें।
फ़ीचर कर्नेल
एक कर्नेल जिसके लिए प्लेटफ़ॉर्म रिलीज़ सुविधाओं को लागू करने की गारंटी है। उदाहरण के लिए, Android 12 में दो फीचर कर्नेल android12-5.4 और android12-5.10 थे। Android 12 सुविधाओं को 4.19 गुठली में वापस नहीं लाया जा सकता है; फीचर सेट उस डिवाइस के समान होगा जो R पर 4.19 के साथ लॉन्च हुआ और S में अपग्रेड किया गया)।
सामान्य कोर कर्नेल
GKI कर्नेल का वह भाग जो सभी उपकरणों में समान है।
सामान्य कर्नेल छवि (GKI) कर्नेल
कोई भी नया (5.4 और ऊपर) ACK कर्नेल (वर्तमान में केवल aarch64)। इस कर्नेल के दो भाग होते हैं: कोर GKI कर्नेल जिसका कोड सभी उपकरणों में समान होता है और Google द्वारा विकसित GKI मॉड्यूल जिसे उपकरणों पर गतिशील रूप से लोड किया जा सकता है जहाँ लागू हो।
कर्नेल मॉड्यूल इंटरफ़ेस (KMI) कर्नेल
जीकेआई कर्नेल देखें।
कर्नेल लॉन्च करें
एक कर्नेल जो किसी दिए गए Android प्लेटफ़ॉर्म रिलीज़ के लिए डिवाइस लॉन्च करने के लिए मान्य है। उदाहरण के लिए, एंड्रॉइड 12 में, वैध लॉन्च कर्नेल 4.19, 5.4 और 5.10 थे।
लॉन्ग टर्म सपोर्टेड (LTS) कर्नेल
एक Linux कर्नेल जो 2 से 6 वर्षों के लिए समर्थित है। LTS कर्नेल प्रति वर्ष एक बार जारी किए जाते हैं और Google के प्रत्येक ACK का आधार होते हैं।

शाखाओं के प्रकार

एसीके केएमआई कर्नेल शाखा
वह शाखा जिसके लिए GKI गुठली बनाई जाती है। उदाहरण के लिए, android12-5.10 और android13-5.15।
Android-मेनलाइन
Android सुविधाओं के लिए प्राथमिक विकास शाखा। जब एक नया एलटीएस कर्नेल अपस्ट्रीम घोषित किया जाता है, तो संबंधित नया जीकेआई कर्नेल एंड्रॉइड-मेनलाइन से ब्रांच किया जाता है।
लिनक्स मेनलाइन
एलटीएस कर्नेल सहित अपस्ट्रीम लिनक्स कर्नेल के लिए प्राथमिक विकास शाखा।

अन्य निबंधन

प्रमाणित बूट छवि
कर्नेल बाइनरी फॉर्म ( boot.img ) में डिलीवर होता है और डिवाइस पर फ्लैश होता है। यह छवि इस अर्थ में प्रमाणित है कि इसमें एम्बेड किए गए प्रमाणपत्र हैं ताकि Google यह सत्यापित कर सके कि डिवाइस Google द्वारा प्रमाणित कर्नेल के साथ आता है।
गतिशील रूप से लोड करने योग्य कर्नेल मॉड्यूल (डीएलकेएम)
एक मॉड्यूल जिसे डिवाइस की जरूरतों के आधार पर डिवाइस बूट के दौरान गतिशील रूप से लोड किया जा सकता है। GKI और वेंडर मॉड्यूल दोनों प्रकार के DLKM हैं। DLKMs .ko फॉर्म में जारी किए जाते हैं और ड्राइवर हो सकते हैं या अन्य कर्नेल कार्यक्षमता प्रदान कर सकते हैं।
जीकेआई परियोजना
लोड करने योग्य मॉड्यूल में विक्रेता-विशिष्ट एसओसी और बोर्ड समर्थन से सामान्य कोर कर्नेल कार्यक्षमता को अलग करके कर्नेल विखंडन को संबोधित करने वाली एक Google परियोजना।
सामान्य कर्नेल छवि (GKI)
Google द्वारा प्रमाणित एक बूट इमेज जिसमें ACK सोर्स ट्री से निर्मित GKI कर्नेल होता है और Android डिवाइस के बूट पार्टीशन में फ्लैश करने के लिए उपयुक्त होता है।
केएमआई
GKI कर्नेल और विक्रेता मॉड्यूल के बीच एक इंटरफ़ेस जो विक्रेता मॉड्यूल को GKI कर्नेल से स्वतंत्र रूप से अद्यतन करने की अनुमति देता है। इस इंटरफ़ेस में कर्नेल फ़ंक्शंस और वैश्विक डेटा शामिल हैं जिन्हें प्रति-भागीदार प्रतीक सूचियों का उपयोग करके विक्रेता/OEM निर्भरता के रूप में पहचाना गया है।
जीकेआई मॉड्यूल
Google द्वारा बनाए गए कर्नेल मॉड्यूल, जहां लागू हो, उपकरणों पर गतिशील रूप से लोड किए जा सकते हैं। ये मॉड्यूल GKI कर्नेल की कलाकृतियों के रूप में बनाए गए हैं और GKI के साथ system_dlkm_staging_archive.tar.gz संग्रह के रूप में वितरित किए गए हैं। GKI मॉड्यूल Google द्वारा कर्नेल बिल्ड टाइम कुंजी जोड़ी का उपयोग करके हस्ताक्षरित हैं और केवल GKI कर्नेल के साथ संगत हैं जिसके साथ वे बनाए गए हैं।
विक्रेता मॉड्यूल
एक पार्टनर द्वारा विकसित एक हार्डवेयर-विशिष्ट मॉड्यूल और जिसमें एसओसी और डिवाइस-विशिष्ट कार्यक्षमता शामिल है। एक विक्रेता मॉड्यूल गतिशील रूप से लोड करने योग्य कर्नेल मॉड्यूल का एक प्रकार है।

आगे क्या होगा?

  • यदि आप Android कर्नेल विकास के लिए नए हैं, तो आप निम्न को पढ़कर प्रारंभ करना चाहेंगे:
  • यदि आप GKI कर्नेल विकास के लिए नए हैं, तो GKI विकास पढ़कर प्रारंभ करें।
  • यदि आप 4.19 या पुराने के कर्नेल संस्करण का उपयोग कर रहे हैं और संबंधित दस्तावेज़ों की तलाश कर रहे हैं, तो पिछला कर्नेल (<= 4.19) सिंहावलोकन अनुभाग देखें।