जब कर्नेल एक नए उपकरण का पता लगाता है, तो यह प्रोग्राम चलाता है modprobe
और इसे एक नाम देता है जो डिवाइस की पहचान करता है। अधिकांश उपकरणों को एक वेंडर और मॉडल के लिए पंजीकृत संख्याओं के माध्यम से पहचाना जाता है, जैसे पीसीआई या यूएसबी पहचानकर्ता। modprobe
कार्यक्रम मॉड्यूल उर्फ तालिका सलाह भी लेता है फ़ाइल जो उस विशेष डिवाइस के लिए ड्राइवर शामिल हैं के नाम खोजने के लिए। एक समान सिद्धांत उन ड्राइवरों के लिए लागू होता है जो हार्डवेयर डिवाइस नहीं हैं, जैसे कि फाइल सिस्टम और क्रिप्टोग्राफिक एल्गोरिदम। अधिक जानकारी के लिए, देखें कि रिबूट के बाद डेबियन सीरियल पीसीआईघड़ी कार्ड का पता नहीं लगाता है/lib/modules/VERSION/modules.alias
एक बार modprobe ने पहचान लिया कि किस मॉड्यूल फ़ाइल ( .ko
) में अनुरोधित ड्राइवर है, यह मॉड्यूल फ़ाइल को कर्नेल में लोड करता है: मॉड्यूल कोड को गतिशील रूप से कर्नेल में लोड किया जाता है। यदि मॉड्यूल सफलतापूर्वक लोड किया जाता है, तो यह सूची में से दिखाई देगा lsmod
।
मॉड्यूल की स्वचालित लोडिंग तब होती है जब कर्नेल नए हॉटप्लगबल हार्डवेयर का पता लगाता है, जैसे कि जब आप USB परिधीय कनेक्ट करते हैं। ऑपरेटिंग सिस्टम उन सभी हार्डवेयरों की गणना करने का एक पास भी करता है जो स्टार्टअप के दौरान सिस्टम पर मौजूद हैं, ताकि बूट समय पर मौजूद बाह्य उपकरणों के लिए ड्राइवरों को लोड किया जा सके।
मैन्युअल रूप से modprobe
या insmod
कमांड के साथ मॉड्यूल को लोड करने का अनुरोध करना भी संभव है । अधिकांश वितरणों में एक स्टार्टअप स्क्रिप्ट शामिल होती है जो सूचीबद्ध मॉड्यूल को लोड करती है /etc/modules
। मॉड्यूल लोड होने के लिए एक और तरीका है यदि वे मॉड्यूल की निर्भरता हैं: यदि मॉड्यूल A मॉड्यूल B पर निर्भर करता है, तो modprobe A
A लोड करने से पहले B को लोड करता है।
एक बार एक मॉड्यूल लोड होने के बाद, यह स्पष्ट रूप से अनलोड किए जाने तक लोड रहता है, भले ही उस ड्राइवर का उपयोग करने वाले सभी डिवाइस काट दिए गए हों। बहुत समय पहले, अप्रयुक्त मॉड्यूल को स्वचालित रूप से अनलोड करने के लिए एक तंत्र था, लेकिन इसे हटा दिया गया था, अगर मुझे सही याद है, जब udv दृश्य पर आया था। मुझे संदेह है कि स्वचालित मॉड्यूल उतारना एक सामान्य विशेषता नहीं है क्योंकि जिन प्रणालियों को इसकी आवश्यकता होती है वे ज्यादातर डेस्कटॉप पीसी होते हैं जिनकी वैसे भी बहुत सारी मेमोरी होती है (चालक कोड के पैमाने पर)।
/etc/modules
।rt2800usb
के आउटपुट में हैlsmod
, और इसका मतलब यह है कि मैंने बूट करने से पहले अपने डिवाइस को अपने कंप्यूटर से कनेक्ट किया है?