लिनक्स ड्राइवर कैसे काम करते हैं और मैं उन्हें कहाँ ढूँढता हूँ? (esp। एनआईसी चालक)


12

मैं सोच रहा हूं कि लिनक्स के तहत एक ड्राइवर कैसे काम करता है। क्या ड्राइवर एकल फ़ाइल है जिसे संपादित किया जा सकता है? क्या उपयोग में वर्तमान ड्राइवरों की सूची है या प्रत्येक डिवाइस के लिए उन्हें खोजने के लिए एक अलग जगह है?

मुझे अपने नेटवर्क एडेप्टर के ड्राइवर के बारे में जानने में विशेष रुचि है।

यदि आप जानते हैं कि कुछ अच्छे दस्तावेज कहां हैं, तो मुझे भी पढ़ना अच्छा लगेगा।

जवाबों:


7

ड्राइवर किसी भी अन्य कार्यक्रम के समान हैं, उन्हें कई स्रोत फ़ाइलों में शामिल किया जा सकता है। लिनक्स डिवाइस ड्राइवरों को सीधे कर्नेल या कर्नेल मॉड्यूल में संकलित किया जा सकता है। कर्नेल मॉड्यूल को गतिशील रूप से लोड किए जाने में सक्षम होने का लाभ है (यानी आपको उनका उपयोग करने के लिए एक नए कर्नेल को संकलित करने की आवश्यकता नहीं है)।

आप स्पष्ट रूप से हमेशा लिनक्स स्रोत कोड को देख सकते हैं, लेकिन यह एक चुनौतीपूर्ण काम हो सकता है। हालाँकि, जैसा कि लिनक्स ड्राइवरों में कुछ भी फाइलें हैं। इसका मतलब है कि अन्य प्रोग्राम VFS इंटरफ़ेस के माध्यम से उन्हें एक्सेस करते हैं। उदाहरण के लिए, आप CDROM को ioctl()इसके डिवाइस फ़ाइल का उपयोग करके कॉल के माध्यम से नियंत्रित कर सकते हैं ।

मैं अत्यधिक लिनक्स डिवाइस ड्राइवर्स की जाँच करने की सलाह दूंगा । यह स्वतंत्र रूप से उपलब्ध है और आपके सवालों का जवाब देगा। विशेष रूप से, आप अध्याय 2 के माध्यम से पढ़ सकते हैं जो आपको दिखाता है कि एक सरल "हैलो, कर्नेल" मॉड्यूल कैसे बनाया जाए। यह आपके द्वारा पूछे जाने की तुलना में कहीं अधिक हो सकता है, लेकिन आप उन बिट्स और टुकड़ों को पढ़ सकते हैं, जिनमें आप रुचि रखते हैं। ; P


3

लिनक्स ड्राइवर कर्नेल के साथ निर्मित होते हैं, जो एक मॉड्यूल के रूप में या उसके साथ संकलित किए जाते हैं। वैकल्पिक रूप से, ड्राइवर को एक स्रोत ट्री में कर्नेल हेडर के खिलाफ बनाया जा सकता है। आप टाइप करके वर्तमान में स्थापित कर्नेल मॉड्यूल की एक सूची देख सकते हैं lsmodऔर यदि स्थापित है, तो उपयोग करके बस के माध्यम से जुड़े अधिकांश उपकरणों पर एक नज़र डालें lspci

यदि वर्तमान कर्नेल संस्करण में आपके NIC के लिए ड्राइवर समर्थन नहीं है, तो आपको विक्रेताओं को ड्राइवर ढूंढने की आवश्यकता होगी और आपको स्रोत से कर्नेल मॉड्यूल संकलित करने की आवश्यकता होगी (आपके कर्नेल हेडर के विरुद्ध)।


1

अधिकांश समय यदि आपका एनआईसी जैसा कुछ दिखाई नहीं दे रहा है तो आपको स्वचालित रूप से हार्डवेयर निर्माता की साइट पर जाने की आवश्यकता है, और यह देखने के लिए देखें कि क्या उनके पास एक लिनक्स संस्करण है।

अधिक सामान्य शब्दों में, लिनक्स चालक पुस्तकालयों या मॉड्यूल का रूप लेते हैं।

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