मुझे निम्नलिखित उत्तर यहाँ मिला :
संक्षिप्त उत्तर यह है कि .ko फ़ाइल आपकी वस्तु फ़ाइल है जो कर्नेल द्वारा स्वचालित रूप से उत्पन्न डेटा संरचनाओं से जुड़ी है।
.O फ़ाइल आपके मॉड्यूल की ऑब्जेक्ट फ़ाइल है - आपकी सी फ़ाइलों को संकलित करने का परिणाम। कर्नेल बिल्ड सिस्टम तब कर्नेल मॉड्यूल का वर्णन करने वाली कुछ डेटा संरचनाओं के साथ स्वचालित रूप से एक और सी फ़ाइल बनाता है (your_module_kmod.c नाम दिया गया है), इस सी फ़ाइल को किसी अन्य ऑब्जेक्ट फ़ाइल में संकलित करें और अपनी ऑब्जेक्ट फ़ाइल और एक साथ निर्मित ऑब्जेक्ट फ़ाइल को .ko बनाने के लिए लिंक करें। फ़ाइल।
कर्नेल में लोडिंग कर्नेल मॉड्यूल के प्रभारी में गतिशील लिंकर, डेटा संरचना को खोजने के लिए उम्मीद करता है कि .co फ़ाइल में kmod ऑब्जेक्ट में लगाई गई कर्नेल को खोलेगा और उनके बिना आपका कर्नेल मॉड्यूल लोड नहीं कर पाएगा।
उस स्रोत से भी , tldp का हवाला देते हुए : 2.4 कर्नेल संस्करणों तक, यह ".o" था, और चूंकि यह ".ko" है।