लोडेबल कर्नेल मॉड्यूल

संगणना में, एक भारण करने योग्य कर्नेल  मापांक (एलकेएम) एक वस्तु  संचिका  है जिसमें एक   संचालन सिस्टम के चलने वाले कर्नेल (  संचालन सिस्टम), या तथाकथित   मूल कर्नेल के विस्तार के लिए    सांकेतिक अंक होता है। एलकेएम आमतौर पर नए  संगणक हार्डवेयर (उपकरण   संचालक के रूप में) और/या  संचिका सिस्टम के लिए या सिस्टम  आह्वान जोड़ने के लिए समर्थन जोड़ने के लिए उपयोग किया जाता है। जब एलकेएम द्वारा प्रदान की जाने वाली कार्यक्षमता की आवश्यकता नहीं होती है, तो इसे   संगणक भंडारण और अन्य संसाधनों को मुक्त करने के लिए भार रहित किया जा सकता है।

अधिकांश वर्तमान यूनिक्स प्रतिरूप प्रणालियाँ और माइक्रोसॉफ्ट विंडोज़ विभिन्न नामों के तहत भारण करने योग्य कर्नेल  मापांक का समर्थन करते हैं, जैसे कि स्वतंत्र बीडीएस में कर्नेल  भारण करने योग्य  मापांक (केएलडी), मैकओस में कर्नेल विस्तारण (केईएक्सटी) (हालाँकि तृतीय-पक्ष  मापांक के लिए समर्थन छोड़ा जा रहा है) ), ऐक्स में कर्नेल विस्तारण  मापांक, एचपी-यूएक्स में गतिशील रूप से  भारण करने योग्य कर्नेल  मापांक, विंडोज़ एनटी में कर्नेल-प्रणाली   संचालक और   वीएक्स कार्य में   आंकड़े प्राप्त  करने योग्य कर्नेल  मापांक (  डीकेएम)। उन्हें कर्नेल  भारण करने योग्य  मापांक (या केएलएम) के रूप में भी जाना जाता है, और केवल कर्नेल  मापांक (केएमओडी) के रूप में जाना जाता है।

श्रेष्ठता
भारण करने योग्य कर्नेल मापांक के बिना, एक   संचालन सिस्टम को   मूल कर्नेल में सीधे संकलित सभी संभावित प्रत्याशित कार्यक्षमता को शामिल करना होगा। उस कार्यक्षमता का अधिकांश उपयोग किए बिना स्मृति में रहता है, स्मृति को   अपक्षय कर देता है, और इसके लिए आवश्यक होगा कि उपयोगकर्ता हर बार   नवीन कार्यक्षमता की आवश्यकता होने पर   मूल कर्नेल को पुनर्निर्माण और    पुनःप्रारंभन करें।

असुविधा
एक स्थिर कर्नेल पर एक    वैकल्पिक् कर्नेल को प्राथमिकता देने की एक छोटी सी आलोचना तथाकथित विखंडन (    संगणना )     दंड   है।   मूल कर्नेल   सदैव अपने   स्थापित   नियमित द्वारा वास्तविक सन्निहित निकटवर्ती स्मृति में   अवेष्ठित  किया जाता है; इस प्रकार,   मूल कर्नेल    सांकेतिक अंक कभी खंडित नहीं होता है। एक बार जब सिस्टम उस स्थिति में होता है जिसमें  मापांक  व्यक्त जा सकते हैं, उदाहरण के लिए एक बार  संचिका  सिस्टम को माँउटेड (    संगणना ) कर दिया जाता है जिसमें  मापांक होते हैं, यह संभावना है कि कोई भी  नवीन कर्नेल    सांकेतिक अंक सम्मिलन कर्नेल को खंडित कर देगा, जिससे परिचय अधिक अनुवाद  सहदर्शी बफर प्रविष्टियों का उपयोग करके एक मामूली प्रदर्शन जुर्माना, जिससे अधिक टीएलबी छूट जाती है।

लिनक्स
लिनक्स में भारण करने योग्य कर्नेल  मापांक किसके द्वारा  भारण (और भार रहित) किए जाते हैं   आज्ञा। वे में स्थित हैं   या   और उनका विस्तार हो गया है   (कर्नेल  उद्देश्य ) संस्करण 2.6 के बाद से ( विगत  संस्करणों ने   विस्तार)।      अधिकार   भारित कर्नेल  मापांक को सूचीबद्ध करता है। आपातकालीन मामलों में, जब सिस्टम सामानधानी करने में विफल रहता है उदा। टूटे हुए  मापांक, विशिष्ट  मापांक को कर्नेल सामानधानी पैरामीटर सूची को संशोधित करके सक्षम या अक्षम किया जा सकता है (उदाहरण के लिए, यदि ज़ीएनयू ज़ीआरयूबी का उपयोग करके, ज़ीआरयूबी प्रारंभ मेनू में 'ई' दबाकर, फिर कर्नेल पैरामीटर  रेखा को संपादित करके)।

अनुज्ञप्ति मुद्दे
लिनक्स अनुरक्षकों की अनुमान में,  एलकेएम कर्नेल का व्युत्पन्न कार्य है. लिनक्स अनुरक्षक  स्वत्वाधिकारी सॉफ्टवेयर  मापांक के वितरण को सहन करते हैं, लेकिन प्रतीकों को केवल जीएनयू   सामान्य   सार्वजनिक   अनुज्ञप्ति (  ज़ीपीएल)  मापांक के लिए उपलब्ध के रूप में चिह्नित करने की अनुमति दें।

स्वत्वाधिकारी या गैर-जीपीएल-संगत मापांक  भारण करने से '  अभिमिश्रण'   चिन्हक स्थापित हो जाएगा    संचालन  कर्नेल में - जिसका अर्थ है कि अनुभव की गई किसी भी समस्या या दोष या त्रुटि की अनुरक्षकों द्वारा परीक्षण किए जाने की संभावना कम होगी।   एलकेएम प्रभावी रूप से   संचालन  कर्नेल का   भाग  बन जाते हैं, इसलिए कर्नेल आंकड़े संरचनाओं को दूषित कर सकते हैं और ऐसे दोष या त्रुटि उत्पन्न कर सकते हैं जिनकी परीक्षण नहीं की जा सकती है यदि  मापांक वास्तव में   स्वत्वाधिकारी है।

लिनक्सेंट विवाद
2004 में, लिनक्सेंट, एक परामर्श संगठन जो भारण करने योग्य कर्नेल  मापांक के रूप में   स्वत्वाधिकारी उपकरण   संचालक अवमुक्त   करती है, ने अपने में एक शून्य वर्ण का दुरुपयोग करने का प्रयास किया। , जैसा कि निम्नलिखित    सांकेतिक अंक में दिखाई देता है:

कर्नेल द्वारा उपयोग किए गए श्रृंखला  समानता    सांकेतिक अंक ने उस समय यह निर्धारित करने का प्रयास किया कि क्या  मापांक ज़ीपीएल  संंवृत हो गया था जब यह एक शून्य वर्ण तक पहुंच गया था, इसलिए यह सोचकर मूर्ख बनाया गया कि  मापांक अपने   अनुज्ञप्ति को  मात्र   ज़ीपीएल घोषित कर रहा है।

फ्रीबीएसडी
स्वतंत्र बीडीएस के लिए कर्नेल मापांक भीतर संग्रहीत हैं     संचालन सिस्टम के साथ वितरित  मापांक के लिए, या आमतौर पर   स्वतंत्र बीडीएस पोर्ट या स्वतंत्र बीडीएस पोर्ट#पैकेज से स्थापित  मापांक के लिए, या   स्वत्वाधिकारी या अन्यथा बाइनरी-ओनली  मापांक के लिए। स्वतंत्र बीडीएस कर्नेल  मापांक में आमतौर पर विस्तारण होता है. एक बार मशीन सामानधानी हो जाने के बाद, उन्हें इसके साथ भारण किया जा सकता है    अधिकार, अनलोडेड  , और के साथ सूचीबद्ध है. कर्नेल शुरू होने से पहले मापांक को लोडर से भी  भारण किया जा सकता है, या तो स्वचालित रूप से (के माध्यम से  ) या हाथ से।

मैकोज़
मैकओस में कुछ भारण करने योग्य कर्नेल  मापांक स्वचालित रूप से  भारण किए जा सकते हैं।  भारण करने योग्य कर्नेल  मापांक को इसके द्वारा भी  भारण किया जा सकता है   आज्ञा। द्वारा सूचीबद्ध किया जा सकता है   आज्ञा।  भारण करने योग्य कर्नेल  मापांक विस्तारण के साथ बंडल (मैकओस) में स्थित हैं. संचालन सिस्टम के साथ दिए गए मॉड्यूल्स को स्टोर किया जाता है  निर्देशिका; तीसरे पक्ष द्वारा आपूर्ति किए गए  मापांक विभिन्न अन्य निर्देशिकाओं में हैं।

नेटवेयर
नेटवेयर कर्नेल मापांक को  नेटवेयर  भारण करने योग्य  मापांक (एनएलएम) कहा जाता है। एनएलएम को  भारण  अधिकार  के माध्यम से नेटवेयर कर्नेल में डाला जाता है, और भार रहित  अधिकार  के माध्यम से हटाया जाता है;    अधिकार  वर्तमान में  भारण किए गए कर्नेल  मापांक को सूचीबद्ध करता है। एनएलएम नेटवेयर सर्वर पर निर्दिष्ट किसी भी वैध खोज पथ में रह सकते हैं, और उनके पास है    संचिका  नाम विस्तारण के रूप में।

वीएक्सवर्क्स
एक  आंकड़े प्राप्त  करने योग्य कर्नेल  मापांक (  डीकेएम) प्रकार की परियोजना एक .out  संचिका  उत्पन्न करने के लिए बनाई जा सकती है जिसे बाद में ld  अधिकार  का उपयोग करके कर्नेल स्थान पर  भारण किया जा सकता है। यह   आंकड़े प्राप्त  करने योग्य कर्नेल  मापांक unld  अधिकार  का उपयोग करके भार रहित किया जा सकता है।

सोलारिस
सोलारिस के पास एक विन्यास योग्य कर्नेल मापांक  भारण पथ है, जो इसके लिए तयशुदा है. अधिकांश कर्नेल मापांक उपनिर्देशिकाओं के अंतर्गत रहते हैं  ; जिन्हें सिस्टम को उस बिंदु तक सामानधानी करने के लिए आवश्यक नहीं माना जाता है जो init प्रारंभ कर सकते हैं अक्सर (लेकिन   सदैव नहीं) में पाए जाते हैं. DEBUG कर्नेल बिल्ड करते समय सिस्टम सक्रिय रूप से मापांक को भार रहित करने का प्रयास करता है।

बाइनरी संगतता
लिनक्स कर्नेल मापांक के लिए एक स्थिर एपीआई या अनुप्रयोग बाइनरी इंटरफ़ेस प्रदान नहीं करता है। इसका अर्थ है कि विभिन्न कर्नेल संस्करणों के बीच आंतरिक संरचना और कार्य में अंतर हैं, जो संगतता समस्याओं का कारण बन सकता है। उन समस्याओं का मुकाबला करने के प्रयास में, प्रतीक संस्करण आंकड़े को    भारण करने योग्य निष्पादन योग्य और लिंक करने योग्य प्रारूप  मापांक का खंड।  मापांक  भारण करने से पहले इस वर्जनिंग जानकारी की  समानता   संचालन  कर्नेल से की जा सकती है; यदि संस्करण असंगत हैं, तो  मापांक  भारण नहीं होगा।

अन्य  संचालन सिस्टम, जैसे Solaris (  संचालन सिस्टम), स्वतंत्र बीडीएस, मैकओस, और माइक्रोसॉफ्ट विंडोज़ कर्नेल API और एप्लिकेशन बाइनरी इंटरफ़ेस को अपेक्षाकृत स्थिर रखते हैं, इस प्रकार इस समस्या से बचते हैं। उदाहरण के लिए, कर्नेल संस्करण 6.0 के विरुद्ध संकलित स्वतंत्र बीडीएस कर्नेल  मापांक किसी अन्य स्वतंत्र बीडीएस 6.x संस्करण पर पुनर्संकलन के बिना काम करेगा, उदा। 6.4। हालांकि, वे अन्य प्रमुख संस्करणों के साथ संगत नहीं हैं और उन्हें स्वतंत्र बीडीएस 7.x के साथ उपयोग करने के लिए पुनः संकलित किया जाना चाहिए, क्योंकि API और ABI संगतता केवल एक शाखा के भीतर ही बनाए रखी जाती है।

सुरक्षा
जबकि भारण करने योग्य कर्नेल  मापांक चालू कर्नेल को संशोधित करने का एक सुविधाजनक तरीका है, हमलावरों द्वारा उनकी प्रक्रिया (    संगणना ) या कम्प्यूटर  संचिका का पता लगाने से रोकने के लिए एक समझौता प्रणाली पर इसका दुरुपयोग किया जा सकता है, जिससे उन्हें सिस्टम पर नियंत्रण बनाए रखने की अनुमति मिलती है। कई  rootkit  एलकेएम का इस तरह से उपयोग करते हैं। ध्यान दें कि, अधिकांश   संचालन सिस्टम पर,  मापांक किसी भी तरह से विशेषाधिकार उन्नयन में मदद नहीं करते हैं, क्योंकि एलकेएम को  भारण करने के लिए उन्नत विशेषाधिकार की आवश्यकता होती है; वे केवल हमलावर के लिए सेंधमारी को छुपाना आसान बनाते हैं।

लिनक्स
लिनक्स sysctl विकल्प के माध्यम से मापांक लोडिंग को अक्षम करने की अनुमति देता है. एक प्रारंभिक रैमडिस्क सिस्टम सामानधानी पर मशीन के लिए आवश्यक विशिष्ट मापांक को  भारण कर सकता है और फिर  मापांक लोडिंग को अक्षम कर सकता है। यह सुरक्षा को एक अखंड कर्नेल के समान बनाता है। यदि कोई हमलावर initramfs को बदल सकता है, तो वे कर्नेल बाइनरी को बदल सकते हैं।

मैकोज़
OS X Yosemite और बाद के रिलीज में, एक कर्नेल विस्तारण को    सांकेतिक अंक हस्ताक्षर |    सांकेतिक अंक-हस्ताक्षरित एप्पल डेवलपर प्रमाणपत्र के साथ होना चाहिए जो इसके लिए एक विशेष पात्रता रखता है। ऐसा डेवलपर प्रमाणपत्र केवल अनुरोध पर Apple द्वारा प्रदान किया जाता है और स्वचालित रूप से Apple डेवलपर सदस्यों को नहीं दिया जाता है। यह सुविधा, जिसे kextsigning कहा जाता है, डिफ़ॉल्ट रूप से सक्षम है और यह कर्नेल को बूटिंग रोकने का निर्देश देती है यदि अहस्ताक्षरित कर्नेल विस्तारण मौजूद हैं। OS X El Capitan|OS X El Capitan और बाद में रिलीज, यह सिस्टम इंटीग्रिटी प्रोटेक्शन का   भाग  है।

मैकओस के पुराने संस्करणों में, या यदि केईएक्सटी हस्ताक्षर अक्षम है, कर्नेल विस्तारण बंडल में भारण करने योग्य कर्नेल  मापांक को गैर-रूट उपयोगकर्ताओं द्वारा  भारण किया जा सकता है यदि OSBundleAllowUserLoad गुण बंडल की संपत्ति सूची में True पर सेट है। हालाँकि, यदि निष्पादन योग्य    सांकेतिक अंक  संचिका  सहित बंडल की कोई भी  संचिका  रूट और ग्रुप व्हील के स्वामित्व में नहीं है, या समूह या अन्य द्वारा लिखने योग्य है, तो कर्नेल  भारण करने योग्य  मापांक को  भारण करने का प्रयास विफल हो जाएगा।

सोलारिस
कर्नेल मापांक में वैकल्पिक रूप से एक क्रिप्टोग्राफ़िक हस्ताक्षर ELF अनुभाग हो सकता है जो सत्यापित सामानधानी नीति सेटिंग्स के आधार पर  भारण पर सत्यापित होता है। कर्नेल यह लागू कर सकता है कि  मापांक क्रिप्टोग्राफ़िक रूप से विश्वसनीय प्रमाणपत्रों के एक सेट द्वारा हस्ताक्षरित हैं; कुछ SPARC आधारित प्लेटफॉर्म पर ILOM में OS के बाहर विश्वसनीय प्रमाणपत्रों की सूची रखी जाती है। उपयोक्तास्थान द्वारा शुरू किया गया कर्नेल  मापांक लोडिंग विश्वसनीय पथ से तभी संभव है जब सिस्टम सक्षम अपरिवर्तनीय वैश्विक क्षेत्र सुविधा के साथ चल रहा हो।

यह भी देखें

 * नेटवेयर भारण करने योग्य  मापांक