The Linux Kernel Driver Interface पढ़ें।
यह समझाने की कोशिश करने के लिए लिखा जा रहा है कि लिनक्स में बाइनरी कर्नेल इंटरफ़ेस क्यों नहीं है, और न ही इसमें एक स्थिर कर्नेल इंटरफ़ेस है। कृपया महसूस करें कि यह आलेख _in kernel_ इंटरफेस का वर्णन करता है, कर्नेल को इंटरफेस के लिए कर्नेल नहीं। उपयोगकर्ता इंटरफ़ेस इंटरफ़ेस के लिए कर्नेल वह है जो अनुप्रयोग प्रोग्राम का उपयोग करता है, syscall इंटरफ़ेस। वह इंटरफ़ेस समय के साथ _very_ स्थिर है, और टूट नहीं जाएगा। मेरे पास पुराने प्रोग्राम हैं जो पूर्व 0.9something कर्नेल पर बनाए गए थे जो अभी भी नवीनतम 2.6 कर्नेल रिलीज पर ठीक काम करता है। यह इंटरफ़ेस वह है जो उपयोगकर्ता और एप्लिकेशन प्रोग्रामर स्थिर होने पर भरोसा कर सकते हैं। स्वतंत्रता किसी भी समय में गिरी कार्यान्वयन विवरण और एपीआई बदलने के लिए उन्हें बहुत तेजी से और बेहतर विकसित करने के लिए अनुमति देता है :
यह लिनक्स कर्नेल डेवलपर्स के एक बड़े हिस्से को देखते दर्शाता है।
रिलीज से रिलीज होने के समान-कर्नेल इंटरफेस को रखने के वादे के बिना, बाइनरी कर्नेल मॉड्यूल जैसे वीएमवेयर के कई कर्नेल पर भरोसेमंद काम करने का कोई तरीका नहीं है।
उदाहरण के तौर पर, यदि कुछ संरचनाएं नए कर्नेल रिलीज (बेहतर प्रदर्शन या अधिक सुविधाओं या किसी भी अन्य कारण के लिए) पर बदलती हैं, तो बाइनरी वीएमवेयर मॉड्यूल पुरानी संरचना लेआउट का उपयोग करके विनाशकारी क्षति का कारण बन सकता है। स्रोत से फिर से मॉड्यूल को संकलित करने से नए संरचना लेआउट को कैप्चर किया जाएगा, और इस प्रकार काम करने का एक बेहतर मौका खड़ा होगा - हालांकि फ़ील्ड हटा दिए गए हैं या नाम बदल दिए गए हैं या अलग-अलग उद्देश्यों को दिए गए हैं।
एक समारोह अपने तर्क सूची में परिवर्तन, या का नाम बदले जाने या अन्यथा भी एक ही स्रोत कोड काम करेंगे से फिर कंपाइल नहीं अब उपलब्ध नहीं बनाया है, तो। मॉड्यूल को नए कर्नेल को अनुकूलित करना होगा। चूंकि सभी को (स्रोत) होना चाहिए और (कोई भी जो ढूंढ सकता है) फिट करने के लिए इसे संशोधित करने में सक्षम है।"एंड-नोड्स पर पुश वर्क" नेटवर्किंग और फ्री सॉफ़्टवेयर दोनों में एक आम विचार है: चूंकि संसाधन [फ्रिंग्स पर]/[लिनक्स कर्नेल के बाहर के डेवलपर्स के] सीमित संसाधनों [रीढ़ की हड्डी के] से बड़े हैं/[लिनक्स डेवलपर्स के], पूर्व में काम करने के लिए व्यापार बंद करने के लिए व्यापार बंद कर दिया जाता है।
दूसरी तरफ, माइक्रोसॉफ्ट ने निर्णय लिया है कि उन्हें जितना संभव हो सके बाइनरी ड्राइवर संगतता को सुरक्षित रखना होगा - उनके पास कोई विकल्प नहीं है, क्योंकि वे मालिकाना दुनिया में खेल रहे हैं। एक तरह से, यह बाहरी डेवलपर्स के लिए बहुत आसान बनाता है, जो अब आगे बढ़ने वाले लक्ष्य का सामना नहीं करते हैं, और अंतिम उपयोगकर्ताओं के लिए जिन्हें कभी भी कुछ भी बदलना नहीं पड़ता है। नकारात्मक स्तर पर, यह माइक्रोसॉफ्ट को पीछे की संगतता बनाए रखने के लिए मजबूर करता है, जो माइक्रोसॉफ्ट के डेवलपर्स के लिए समय लेने वाली (सबसे अच्छी) है और (सबसे खराब) अक्षम है, बग का कारण बनता है, और आगे की प्रगति को रोकता है।