Kernel की जानकारी

इस पेज पर, हर कर्नल रिलीज़ की मुख्य सुविधाओं के बारे में खास जानकारी दी गई है. साथ ही, ज़्यादा जानकारी के लिंक भी दिए गए हैं.

कर्नल 6.12 की नई सुविधाएं

इस सेक्शन में, कर्नल 6.12 की नई सुविधाओं के बारे में बताया गया है.

मेमोरी के बंटवारे की प्रोफ़ाइलिंग

मेमोरी के इस्तेमाल को समझने के लिए, यह जानना ज़रूरी है कि मेमोरी कहां-कहां इस्तेमाल की जाती है. कर्नल 6.12 में, मेमोरी असाइन करने का नया एट्रिब्यूशन सिस्टम शामिल है. इसे मेमोरी असाइन करने की प्रोफ़ाइलिंग (कॉन्फ़िगरेशन में CONFIG_MEM_ALLOC_PROFILING) कहा जाता है. मेमोरी ऐलोकेशन प्रोफ़ाइलिंग की मदद से, हर ऐलोकेशन को एक यूनीक सोर्स लाइन के लिए एट्रिब्यूट किया जाता है. इससे ऐलोकेशन से जुड़ी समस्याओं का तुरंत पता लगाया जा सकता है. इसके अलावा, मेमोरी के बंटवारे की प्रोफ़ाइल बनाने की सुविधा:

  • इसका इस्तेमाल इंजीनियरिंग फ़ेज़ के दौरान किया जाता है. हालांकि, यह स्टैंडर्ड GKI इमेज में उपलब्ध है.

  • इसे sysctl.vm.mem_profiling बूट पैरामीटर का इस्तेमाल करके चालू किया जा सकता है.

  • यह कर्नल में मौजूद और लोड किए गए, दोनों तरह के मॉड्यूल के लिए काम करता है.

ज़ीरो-कॉपी और मल्टीशॉट रीड के साथ io_uring की सुविधा तेज़ी से काम करती है

कर्नल 6.12 में, statsd और logd मॉड्यूल, sendfile ज़ीरो-कॉपी का इस्तेमाल करते हैं. इससे उनकी परफ़ॉर्मेंस बेहतर होती है.

इसके अलावा, इस कर्नल वर्शन में मल्टीशॉट रीड की सुविधा लागू की गई है. इसकी मदद से, एक ही रीड ऑपरेशन में कई डेटा को एक साथ वापस पाया जा सकता है. इससे परफ़ॉर्मेंस बेहतर होती है.

Berkeley Packet Filter (BPF) की बेहतर सुविधाएं और सहायता

BPF टूलचेन को कर्नल 6.12 में, CO-RE और कई नई सुविधाओं के साथ काम करने के लिए ट्रांसफ़र कर दिया गया है. इसके अलावा, एक नया बीपीएफ़ लोडर, एओएसपी में शामिल प्रोग्राम के लिए मॉडर्न बीपीएफ़ का इस्तेमाल करने की सुविधा देता है.

प्रॉक्सी एक्ज़ीक्यूशन

प्रॉक्सी एक्ज़ीक्यूशन की मदद से, शेड्यूलर ज़्यादा प्राथमिकता वाली प्रोसेस से सीपीयू साइकल उधार ले सकता है. इससे कम प्राथमिकता वाली प्रोसेस के लॉक को ठीक किया जा सकता है. इस सुविधा से, प्राथमिकता पलटने की समस्याओं को कम किया जा सकता है.

कर्नेल 6.6 की नई सुविधाएं

इस सेक्शन में, कर्नल 6.6 की नई सुविधाओं के बारे में बताया गया है.

Rust के साथ काम करता है

कई कर्नल 6.6 प्रोजेक्ट में Rust का इस्तेमाल किया जाता है.

हर वर्चुअल मेमोरी एरिया (वीएमए) के लिए लॉक

कर्नल 6.6, mmap_sem (पहले इसे mmap_lock के नाम से जाना जाता था) के साथ होने वाली समस्याओं को हल करने के लिए, हर वर्चुअल मेमोरी एरिया लॉक का इस्तेमाल करता है. इस वजह से, ज़्यादा थ्रेड का इस्तेमाल करने वाले ऐप्लिकेशन के लॉन्च होने में लगने वाला समय 20% तक कम हो सकता है.

EEVDF शेड्यूलर, सीएफ़एस की जगह लेता है

EEVDF, पूरी तरह से निष्पक्ष शेड्यूलर (सीएफ़एस) की जगह लेता है, ताकि कम और ज़्यादा समय तक चलने वाले टास्क के बीच सीपीयू ऐक्सेस को बेहतर तरीके से बैलेंस किया जा सके.

रीड कॉपी अपडेट (आरसीयू) कॉलबैक से बिजली की खपत कम हुई

RCU_LAZY विकल्प, टाइमर पर आधारित आरसीयू कॉलबैक बैचिंग के तरीके का इस्तेमाल करता है, ताकि बैटरी की बचत की जा सके. अगर सिस्टम पर कम लोड है या वह इस्तेमाल में नहीं है, तो इस विकल्प से बिजली की खपत 5% से 10% तक कम हो सकती है.

ज़ेडआरएएम मेमोरी को बेहतर तरीके से कंप्रेस करना

CONFIG_ZRAM_MULTI_COMP नई बिल्ड सेटिंग की मदद से, ZRAM तीन में से किसी एक वैकल्पिक एल्गोरिदम का इस्तेमाल करके, पेजों को फिर से कंप्रेस कर सकता है. रीकंप्रेशन की इस प्रोसेस से, कंप्रेस की गई मेमोरी और कम हो जाती है. इससे, चालू टास्क के लिए ज़्यादा खाली जगह मिल जाती है.

कर्नल 6.1 की नई सुविधाएं

इस सेक्शन में, कर्नल 6.1 की नई सुविधाओं के बारे में बताया गया है.

कर्नेल कंट्रोल फ़्लो इंटिग्रिटी (केसीएफ़आई) की मदद से, बेहतर सुरक्षा

केसीएफ़आई, कंट्रोल फ़्लो इंटिग्रिटी (सीएफ़आई) की जगह लेता है. इससे रनटाइम की लागत कम हो जाती है और बिल्ड-टाइम की लागत नहीं लगती. रनटाइम की कम लागत की वजह से, KCFI को CFI की तुलना में ज़्यादा जगहों पर चालू किया जा सकता है. खास तौर पर, ट्रेसपॉइंट और वेंडर हुक.

KCFI के अलावा, कर्नल 6.1 में कई सुरक्षा सुविधाएं भी जोड़ी गई हैं. जैसे, memcpy की सीमाओं की सख्ती से जांच करना और स्पेकुलेशन अटैक को कम करना.

केसीएफ़आई के बारे में ज़्यादा जानने के लिए, कर्नेल कंट्रोल फ़्लो इंटिग्रिटी लेख पढ़ें.

मल्टी-जनरेशनल एलआरयू (एमजीएलआरयू)

MGLRU को कर्नल 6.1 में जोड़ा गया है, ताकि मेमोरी मैनेजमेंट को बेहतर बनाया जा सके. इसके लिए, यह बेहतर तरीके से पता लगाया जा सकता है कि कौनसे पेज असल में इस्तेमाल किए जा रहे हैं. इस सुधार की वजह से, सिस्टम में मेमोरी की कमी होने पर ऐप्लिकेशन को रोकने की ज़रूरत कम हो जाती है. इस अपडेट से उपयोगकर्ता अनुभव भी बेहतर होता है, क्योंकि डिवाइस की परफ़ॉर्मेंस बेहतर होती है.

MGLRU को लागू करने में, RCU-safe maple ट्री के लिए भी सहायता शामिल है. इसका इस्तेमाल कुछ मामलों में, रेड-ब्लैक ट्री (rbtree) को बदलने के लिए किया जा सकता है. RCU-safe मैपल ट्री का इस्तेमाल करने से, परफ़ॉर्मेंस बेहतर होती है. इसकी वजह यह है कि इसका फ़ुटप्रिंट कम होता है और इसमें लॉक नहीं होता है.

एमजीएलआरयू के बारे में ज़्यादा जानने के लिए, मल्टी-जेन एलआरयू देखें.

समय-निर्धारण

शेड्यूलर को बनाए रखना और उसे अपडेट करना, कर्नल को बेहतर बनाने के लिए एक अहम पहलू है. कर्नेल 6.1 में ये अपडेट शामिल हैं:

  • क्लस्टर के हिसाब से शेड्यूल करने की सुविधा जोड़ी गई है. इससे परफ़ॉर्मेंस बेहतर होती है, क्योंकि यह सुविधा उन कोर पर माइग्रेट करती है जो L2 कैश मेमोरी शेयर करती हैं.
  • ज़रूरत से ज़्यादा एनर्जी मार्जिन वाले अनुमानित तरीके को हटाया गया. कुछ माइग्रेशन को सीमित करके, यह अपडेट ऊर्जा के इस्तेमाल को 5% तक बेहतर बनाता है.
  • वेकअप में लगने वाले समय को कम करने के लिए, लोड बैलेंसिंग को बेहतर बनाया गया.
  • RCU के ग्रेस पीरियड को रीयलटाइम kthread में ले जाया गया. इस अपडेट से, आरसीयू से जुड़ी लेटेन्सी आउटलायर में काफ़ी कमी आई है.

ग्राफ़िक्स

कर्नल 6.1 में, सिंक फ़ाइलों को एक्सपोर्ट और इंपोर्ट करने के लिए, dma-buf के नए तरीके शामिल हैं. ये तरीके, Vulcan Video API की ज़रूरत के मुताबिक हैं.

futex_waitv() के नए तरीके से, एक साथ कई फ़्यूटेक्स का इंतज़ार करके, गेम को अन्य प्लैटफ़ॉर्म से पोर्ट करना आसान हो जाता है.

डीबग करने वाले टूल

कर्नेल कोड में रेस की पहचान करने के लिए, डीबग बिल्ड में कर्नेल कॉन्करेंसी सैनिटाइज़र (केसीएसएएन) का इस्तेमाल करें.

इसके अलावा, कर्नल में शुरू नहीं की गई वैल्यू का पता लगाने के लिए, कर्नल मेमोरी सैनिटाइज़र (केएमएसएएन) का इस्तेमाल करें.

ARM64 के साथ काम करने की सुविधा में सुधार

6.1 कर्नेल में, ARM64 आर्किटेक्चर के लिए कई सुधार किए गए हैं. इनमें ये शामिल हैं:

  • ARMv8.6 टाइमर एक्सटेंशन के लिए सहायता
  • QARMA3 पॉइंटर-ऑथेंटिकेशन एल्गोरिदम के लिए सहायता
  • ARMv9 Scalable Matrix Extension (SME) के लिए शुरुआती सहायता
  • वैकल्पिक सुविधा के पैच में सुधार किए गए हैं. इससे कर्नल इमेज का साइज़ कम हो गया है