कर्नेल मॉड्यूल: .o बनाम .ko


10

ऐसा लगता है कि कर्नेल मॉड्यूल वाली फ़ाइलों को कहा जाता है .o, कम से कम यह है कि मैं इस तरह के एक ट्यूटोरियल को देखते समय आंकड़ा करता हूं । हालाँकि, मेरे डेबियन निचोड़ बॉक्स पर, इन फ़ाइलों को कहा जाता है .ko

क्या यह वितरण (या इसके बाद के संस्करण) पर निर्भर करता है कि क्या फाइलों को बुलाया जाता है , .oया .koवे कमोबेश एक ही हैं, अन्यथा?

जवाबों:


11

मुझे निम्नलिखित उत्तर यहाँ मिला :

संक्षिप्त उत्तर यह है कि .ko फ़ाइल आपकी वस्तु फ़ाइल है जो कर्नेल द्वारा स्वचालित रूप से उत्पन्न डेटा संरचनाओं से जुड़ी है।

.O फ़ाइल आपके मॉड्यूल की ऑब्जेक्ट फ़ाइल है - आपकी सी फ़ाइलों को संकलित करने का परिणाम। कर्नेल बिल्ड सिस्टम तब कर्नेल मॉड्यूल का वर्णन करने वाली कुछ डेटा संरचनाओं के साथ स्वचालित रूप से एक और सी फ़ाइल बनाता है (your_module_kmod.c नाम दिया गया है), इस सी फ़ाइल को किसी अन्य ऑब्जेक्ट फ़ाइल में संकलित करें और अपनी ऑब्जेक्ट फ़ाइल और एक साथ निर्मित ऑब्जेक्ट फ़ाइल को .ko बनाने के लिए लिंक करें। फ़ाइल।

कर्नेल में लोडिंग कर्नेल मॉड्यूल के प्रभारी में गतिशील लिंकर, डेटा संरचना को खोजने के लिए उम्मीद करता है कि .co फ़ाइल में kmod ऑब्जेक्ट में लगाई गई कर्नेल को खोलेगा और उनके बिना आपका कर्नेल मॉड्यूल लोड नहीं कर पाएगा।

उस स्रोत से भी , tldp का हवाला देते हुए : 2.4 कर्नेल संस्करणों तक, यह ".o" था, और चूंकि यह ".ko" है।


3

यह एक पुराना हाउटो (ट्यूटोरियल) लगता है, तथ्यों में यह 2005 में लिखा गया था। जब लिनक्स कर्नेल 2.4.x था तो मॉड्यूल में .o एक्सटेंशन था, जबकि 2.6 में वे बन गए।।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.