2012-11-15 14 views
10

Part1:डिवाइस ड्राइवर कोड कहां है? कर्नेल स्पेस या उपयोगकर्ता स्पेस?

लिनक्स/यूनिक्स वहाँ विशेषज्ञों के लिए

, आप कृपया मुझे के बारे में डिवाइस ड्राइवर को समझने में मदद कर सके। जैसा कि मैंने समझा, ड्राइवर एक कोड का एक टुकड़ा है जो सीधे हार्डवेयर के साथ इंटरैक्ट करता है और डिवाइस तक पहुंचने के लिए कुछ एपिस का खुलासा करता है। मेरा सवाल यह है कि कोड का यह टुकड़ा कहां चलाता है, उपयोगकर्ता स्थान या कर्नेल स्पेस?

मुझे पता है कि कर्नेल स्पेस में निष्पादित कोड में कुछ अतिरिक्त विशेषाधिकार हैं जैसे कि किसी मेमोरी लोकेशन को एक्सेस करना (अगर मैं गलत हूं तो सही है)। अगर हम किसी तृतीय पक्ष ड्राइवर को स्थापित करते हैं और यदि यह कर्नेल स्पेस में चलता है, तो क्या यह पूरे सिस्टम के लिए हानिकारक नहीं होगा? यह ओएस कैसे संभालता है?

Part2:

यूएसबी डिवाइस का एक उदाहरण लेते हैं (कैमरा, कुंजीपटल ..), कैसे प्रणाली इन उपकरणों को पहचानता है की सुविधा देता है? सिस्टम कैसे पता चलता है कि कौन सा चालक स्थापित करना है? डेटा को पढ़ने और लिखने के लिए ड्राइवर को डिवाइस का पता कैसे पता चलता है?

(यदि यह यहाँ जवाब देने के लिए बहुत बड़ा है, कृपया कुछ अच्छे प्रलेखन या ट्यूटोरियल का लिंक प्रदान .., मैं कोशिश की है और इन के लिए उत्तर नहीं मिल सके। कृपया मदद)

+0

पढ़ने की सलाह देते हैं आप दो अलग-अलग करने के लिए इस सवाल का विभाजित करना चाहिए। – SomeWittyUsername

+1

लिनक्स डिवाइस ड्राइवर विकास के अपने पुराने दिनों में, कर्नेल के अंदर संकलित डिवाइस ड्राइवर और 100% कर्नेल स्पेस निष्पादित किया गया। आजकल कर्नल खुद को छोटी गाड़ी डिवाइस ड्राइवरों से बचाने लगते हैं और यहां तक ​​कि उन्हें बाधित भी करते हैं। लेकिन अगर मैं अकादमिक परीक्षाओं पर सवाल करता हूं तो मैं "कर्नेल स्पेस" को उत्तर के रूप में ले जाऊंगा। –

+0

यूएसबी डिवाइस का पता लगाने के बारे में, डिवाइस को पहचानने के लिए वीआईडी ​​और पीआईडी ​​का उपयोग किया जाता है। –

उत्तर

16

भाग 1

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

मैकोज़क्स और विंडो एनटी कर्नेल पर देखी गई प्रवृत्ति उपयोगकर्ता-स्थान ड्राइवर है। माइक्रोसॉफ्ट ने कुछ समय के लिए Windows Userspace Driver Framework दबाया है, और मैकॉक्स ने लंबे समय तक फायरवायर और यूएसबी ड्राइवरों के लिए उपयोगकर्ता-स्पेस एपीआई प्रदान किए हैं, और कई यूएसबी परिधीय के लिए क्लास-अनुरूप ड्राइवर हैं। MacOSX पर तृतीय पक्ष कर्नेल-मोड डिवाइस ड्राइवर स्थापित करना बहुत असामान्य है।

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

लिनक्स ग्राफिक्स ड्राइवर कम से कम कर्नेल-निवासी भाग के साथ उपयोगकर्ता-स्थान में लागू किए गए हैं, और Fuse उपयोगकर्ता-स्थान में फाइलिंग सिस्टम के कार्यान्वयन की अनुमति देता है।

भाग 2

यूएसबी, फायरवायर, एमसीआई (और यह भी पीसीआई-ई) सभी गणन तंत्र है जिसके माध्यम से एक बस ड्राइवर एक ड्राइवर के लिए डिवाइस से मेल कर सकते हैं। अभ्यास में इसका मतलब है कि सभी डिवाइस मेटाडेटा का खुलासा करते हैं कि वे क्या हैं।

मेटाडेटा के भीतर एक डिवाइस आईडी, वेंडरिड और डिवाइस द्वारा प्रदान किए जाने वाले कार्यों का विवरण और क्लास आईडी से जुड़ा हुआ है। क्लास आईडी सामान्य Class Drivers की सुविधा प्रदान करते हैं।

संकल्पनात्मक रूप से, ऑपरेटिंग सिस्टम एक ड्राइवर को खोजने का प्रयास करेगा जो विशेष रूप से वेंडोरिड और डिवाइसआईडी का समर्थन करता है, और उसके बाद कक्षा आईडी का समर्थन करने वाले व्यक्ति को वापस आ जाता है।

ड्राइवरों के लिए मिलान डिवाइस Linux Device Model के दिल में एक मूल अवधारणा है, और मिलान के लिए उपयोग किए जाने वाले सटीक मिलान मानदंड विशिष्ट बस चालक में match() फ़ंक्शन है।

एक बार डिवाइस ड्राइवर किसी डिवाइस से बंधे होते हैं, तो यह पढ़ने और लिखने के लिए बस-चालक (या इसके द्वारा दी गई जानकारी को संबोधित करने) का उपयोग करता है। पीसीआई और फायरवायर के मामले में, यह एक स्मृति मैप किए गए आईओ पते है। यूएसबी के लिए यह बस संबोधित जानकारी।

Linux Documentation tree लिनक्स डिवाइस मॉडल के डिजाइन में कुछ अंतर्दृष्टि प्रदान करता है, लेकिन वास्तव में प्रवेश-स्तर पढ़ने नहीं है।

मैं भी Linux Device Driver (3rd Edition)

संबंधित मुद्दे