के बीच अंतर मैं सरल लिनक्स मॉड्यूल mod.c. लिख रहा हूं। जब मैं mod.c फ़ाइल संकलित करता हूं, तो यह दो आउटपुट फ़ाइल mod.o और mod.ko बनाता है। तो मैं बस जानना चाहता हूं, mod.o और mod.ko फ़ाइल के बीच क्या अंतर है?.o और .ko फ़ाइल
उत्तर
संक्षिप्त उत्तर यह है कि .ko फ़ाइल आपकी ऑब्जेक्ट फ़ाइल कर्नेल द्वारा आवश्यक कुछ कर्नेल स्वचालित रूप से जेनरेट की गई डेटा संरचनाओं से जुड़ी है।
.o फ़ाइल आपके मॉड्यूल की ऑब्जेक्ट फ़ाइल है - आपकी सी फ़ाइल को संकलित करने का नतीजा। कर्नेल बिल्ड सिस्टम तब स्वचालित रूप से कर्नेल मॉड्यूल (your_module_kmod.c नामक) का वर्णन करने वाले कुछ डेटा संरचनाओं के साथ एक और सी फ़ाइल बनाता है, इस सी फ़ाइल को किसी अन्य ऑब्जेक्ट फ़ाइल में संकलित करें और अपनी ऑब्जेक्ट फ़ाइल और ऑब्जेक्ट फ़ाइल को बनाने के लिए एक साथ बनाया गया है। को फ़ाइल।
गिरी लोड हो रहा है कर्नेल मॉड्यूल के प्रभार में है कि में गतिशील लिंकर, डेटा संरचना गिरी .ko फ़ाइल में kmod वस्तु में डाल को खोजने के लिए उम्मीद है और न बिना अपने कर्नेल मॉड्यूल लोड करने के लिए सक्षम हो जाएगा उन्हें।
लिनक्स 2.6 से पहले, एक उपयोगकर्ता अंतरिक्ष कार्यक्रम ELF वस्तु (ओ) फ़ाइल की व्याख्या और, चल रहा कर्नेल में यह जोड़ने समाप्त द्विआधारी छवि पैदा करने के सभी कार्य करते हैं। कार्यक्रम उस छवि को कर्नेल में पास करेगा और कर्नेल मेमोरी में चिपकने से थोड़ा अधिक करेगा। लिनक्स 2.6 में, कर्नेल लिंकिंग करता है। उपयोगकर्ता स्थान प्रोग्राम ईएलएफ ऑब्जेक्ट फ़ाइल की सामग्री को कर्नेल पर सीधे पास करता है। इसके लिए काम करने के लिए, ईएलएफ ऑब्जेक्ट छवि में अतिरिक्त जानकारी होनी चाहिए। इस विशेष प्रकार की ईएलएफ ऑब्जेक्ट फ़ाइल की पहचान करने के लिए, हम ".o" के बजाय प्रत्यय ".ko" ("कर्नेल ऑब्जेक्ट") के साथ फ़ाइल को नामित करते हैं। 0oउदाहरण के लिए, सीरियल डिवाइस ड्राइवर जो लिनक्स 2.4 में फ़ाइल में रहता था लिनक्स 2.6 में serial.o फ़ाइल serial.ko में रहता है।
- 1. बाइनरी फ़ाइल I/O
- 2. फ़ाइल I/O
- 3. * .o फ़ाइल क्या है?
- 4. बेसिक पायथन फ़ाइल खोज और I/O
- 5. फ़ाइल I/O: एक फ़ाइल से पढ़ना और अन्य (जावा)
- 6. डी फ़ाइल I/O फ़ंक्शन
- 7. आईफोन कमांड लाइन यूनिट टेस्ट (और फ़ाइल I/O)
- 8. crt0.o और crt1.o - क्या अंतर है?
- 9. लिनक्स कर्नेल मॉड्यूल में फ़ाइल I/O
- 10. सी # I/O - System.IO.File और StreamWriter/StreamReader
- 11. .o ऑब्जेक्ट फ़ाइल और .so लाइब्रेरी फ़ाइल के बीच क्या अंतर है?
- 12. wget -O?
- 13. अपाचे कॉमन्स I/O
- 14. गैर-अवरुद्ध (घटना संचालित I/O) बनाम अवरुद्ध I/O
- 15. मैं फ़ाइल I/O कैसे प्रोफाइल कर सकता हूं?
- 16. स्थिर लिंकिंग के लिए .o से .a फ़ाइल क्यों बनाएं?
- 17. लिनक्स के तहत C++ .o फ़ाइल की जांच कैसे करें?
- 18. रुबी फ़ाइल I/O में EOFError क्या है?
- 19. सी मानक I/O बनाम यूनिक्स I/O मूल बातें
- 20. .o फ़ाइलें बनाम .a फ़ाइलें
- 21. लूपिंग AVAudioPlayer w/o गैप
- 22. Google I/O
- 23. लिनक्स I/O शेड्यूलर
- 24. जावा I/O स्ट्रीम
- 25. चेतावनी: -Wuninitialized बिना -O
- 26. आलसी में आलस्य और I/O कैसे काम करते हैं?
- 27. मैक्रो संकेत I/O पिन
- 28. PHP सॉकेट I/O तरीके
- 29. जेपीए w/o एप्लिकेशन सर्वर
- 30. विम के स्टार्टअप संदेश को अक्षम करना (vimdiff, vim -o -O ones)
मुझे लगता है कि .ko 2.6 कर्नेल ऑब्जेक्ट फ़ाइलें हैं जबकि। 2.4 हैं। इसके बारे में यहां और पढ़ें: http://tldp.org/HOWTO/Module-HOWTO/linuxversions.html – smichak