कर्नेल के बारे में खास जानकारी

Android कर्नेल, अपस्ट्रीम Linux के लंबे समय तक सहायता वाले (एलटीएस) कर्नेल पर आधारित है. Google में, LTS कोर को Android के लिए खास तौर पर बनाए गए पैच के साथ जोड़कर, Android के लिए सामान्य कोर (ACKs) बनाए जाते हैं.

नए ACK (5.4 और इसके बाद के वर्शन) को GKI कर्नेल भी कहा जाता है. GKI कर्नेल, हार्डवेयर के हिसाब से काम करने वाले सामान्य कोर कर्नेल कोड और GKI मॉड्यूल को, हार्डवेयर के हिसाब से काम करने वाले वेंडर मॉड्यूल से अलग करने की सुविधा देते हैं.

GKI कर्नेल, हार्डवेयर के हिसाब से बनाए गए वेंडर मॉड्यूल के साथ इंटरैक्ट करता है. इन मॉड्यूल में चिप पर सिस्टम (SoC) और बोर्ड के हिसाब से कोड होता है. GKI कर्नेल और वेंडर मॉड्यूल के बीच इंटरैक्शन, कर्नेल मॉड्यूल इंटरफ़ेस (केएमआई) की मदद से होता है. इसमें वेंडर मॉड्यूल के लिए ज़रूरी फ़ंक्शन और ग्लोबल डेटा की पहचान करने वाली सिंबल सूचियां होती हैं. पहली इमेज में, GKI के kernel और वेंडर के मॉड्यूल के आर्किटेक्चर को दिखाया गया है:

GKI आर्किटेक्चर
पहली इमेज. जीकेआई आर्किटेक्चर

कर्नेल की ग्लॉसरी

इस सेक्शन में, कर्नेल के दस्तावेज़ में इस्तेमाल किए गए शब्दों के बारे में बताया गया है.

कर्नेल टाइप

Android Common Kernel (ACK)
ऐसा कर्नेल जो एलटीएस कर्नेल के बाद आता है और जिसमें Android कम्यूनिटी के लिए दिलचस्पी के ऐसे पैच शामिल होते हैं जिन्हें Linux के मुख्य या लंबे समय तक सहायता (एलटीएस) वाले कर्नेल में मर्ज नहीं किया गया है. नए ACK (5.4 और उसके बाद के वर्शन) को जीकेआई कर्नेल भी कहा जाता है, क्योंकि ये हार्डवेयर के हिसाब से काम न करने वाले सामान्य कर्नेल कोड और हार्डवेयर के हिसाब से काम न करने वाले जीकेआई मॉड्यूल को अलग करने की सुविधा देते हैं.
Android Open Source Project (AOSP) के लिए बनाया गया कर्नेल
Android Common Kernel देखें.
फ़ीचर कर्नेल
ऐसा कर्नेल जिसके लिए प्लैटफ़ॉर्म रिलीज़ की सुविधाओं के लागू होने की गारंटी होती है. उदाहरण के लिए, Android 12 में, दो फ़ीचर कर्नेल android12-5.4 और android12-5.10 थे. Android 12 की सुविधाओं को 4.19 कर्नेल पर बैकपोर्ट नहीं किया जा सकता. सुविधाओं का सेट, उस डिवाइस के जैसा होगा जिसे Android 11 पर 4.19 कर्नेल के साथ लॉन्च किया गया था और Android 12 में अपग्रेड किया गया था.
सामान्य कोर कर्नेल
GKI kernel का वह हिस्सा जो सभी डिवाइसों पर एक जैसा होता है.
सामान्य कर्नेल इमेज (जीकेआई) कर्नेल
5.4 और इसके बाद का कोई भी नया ACK kernel (फ़िलहाल सिर्फ़ aarch64). इस कर्नेल के दो हिस्से होते हैं: सभी डिवाइसों पर एक जैसा कोड वाला कोर GKI कर्नेल और Google के बनाए गए GKI मॉड्यूल, जिन्हें लागू होने पर डिवाइसों पर डाइनैमिक तौर पर लोड किया जा सकता है.
Kernel Module Interface (KMI) कर्नेल
GKI kernel देखें.
Launch Kernel
कोई ऐसा कर्नेल जो किसी Android प्लैटफ़ॉर्म रिलीज़ के लिए, डिवाइस लॉन्च करने के लिए मान्य हो. उदाहरण के लिए, Android 12 में, लॉन्च के लिए 4.19, 5.4, और 5.10 कर्नेल मान्य थे.
लंबे समय तक सहायता (एलटीएस) वाला कर्नेल
Linux का ऐसा कर्नेल जिसे दो से छह साल तक इस्तेमाल किया जा सकता है. एलटीएस कर्नेल हर साल एक बार रिलीज़ किए जाते हैं. ये Google के हर ACK के आधार होते हैं.

शाखा के टाइप

ACK KMI कर्नेल शाखा
वह शाखा जिसके लिए GKI केर्नेल बनाए गए हैं. उदाहरण के लिए, android12-5.10 और android13-5.15.
Android-mainline
Android की सुविधाओं के लिए मुख्य डेवलपमेंट ब्रैंच. जब किसी नए LTS कर्नेल को अपस्ट्रीम के तौर पर एलान किया जाता है, तो उससे जुड़े नए जीकेआई कर्नेल को android-mainline से ब्रैंच किया जाता है.
Linux mainline
यह अपस्ट्रीम Linux कर्नेल के लिए मुख्य डेवलपमेंट ब्रैंच है. इसमें एलटीएस कर्नेल भी शामिल हैं.

अन्य शर्तें

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

अगला चैलेंज क्या है?