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_lock (पहले इसे mmap_sem कहा जाता था) के साथ होने वाली समस्याओं को हल करने के लिए, हर वर्चुअल मेमोरी एरिया लॉक का इस्तेमाल करता है. इसलिए, ज़्यादा थ्रेड का इस्तेमाल करने वाले ऐप्लिकेशन के लॉन्च होने में लगने वाला समय 20% तक कम हो सकता है.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ग्राफ़िक्स

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

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

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

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

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

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

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

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