USB ड्राइव को प्लग इन करने पर क्या होता है?


21

कर्नेल स्थान से उपयोगकर्ता स्थान पर USB घटनाओं का प्रवाह क्या है? जब मैं USB ड्राइव में प्लग करता हूं, तो मुझे अपने डेस्कटॉप पर एक पॉपअप मिलता है - उन घटनाओं का क्रम क्या होता है जो नए USB ड्राइव का पता लगाने से लेकर उसे माउंट करने और उस पॉपअप को दिखाने तक ले जाती हैं?

जवाबों:


6

यह udevआधुनिक लिनक्स सिस्टम द्वारा दिया गया है। udevडेमॉन प्रणाली के साथ शुरू में खोज करेंगे /etc/udev/rules.dऔर /lib/udev/rules.dऔर कर्नेल घटनाओं के लिए मिलान नियम चलेंगे। एक यूएसबी ड्राइव डालने से एक घटना शुरू udevहो जाएगी , एक मिलान नियम की खोज करेगा और इसे निष्पादित करेगा।

नियम स्वयं निर्धारित करेंगे कि आपका सिस्टम क्या करता है। हाल के वर्षों में, udevHAL को सूचित किया गया है, जो DBUS के माध्यम से अनुप्रयोगों को सचेत करेगा। यह दृष्टिकोण अब एकीकृत udevसमाधान के पक्ष में अप्रचलित है , जो मुझे लगता है कि इसमें सीधे या डब-सेंड के माध्यम udevdसे संचार शामिल होगा ।dbus

आप के udevमाध्यम से गतिविधियों की निगरानी कर सकते हैं udevadm monitor


2

मुझे अभी तक इस पर पूरा भरोसा नहीं है, इसलिए इसे नमक के दाने और अधिक शोध के साथ लें।

यह कर्नेल हॉटप्लग सबसिस्टम से शुरू होता है। डिवाइस सेटअप होने के बाद, यह हॉटप्लग इवेंट्स (यदि एक द्वारा सेट किया गया था echo hotplug_handler > /proc/sys/kernel/hotplug) को संभालने के लिए या तो यूजरस्पेस प्रोग्राम जो भी कॉल करता है, या kobject_uevent netlink सॉकेट पर एक डेटा पैकेट भेजता है। जब कर्नेल हॉटप्लग हैंडलर लॉन्च करता है, तो यह कुछ पर्यावरण चर स्थापित करता है। जब कर्नेल डेटापेट भेजता है, तो इसमें कुंजी = मान जोड़े शामिल होते हैं। यदि आप चाहते हैं, तो आप एक स्क्रिप्ट को सेटअप कर सकते हैं जो सिर्फ पर्यावरण को लॉग करता है और इसे हैंडलर के रूप में सेट करता है (आपके उत्पादन प्रणाली पर नहीं, निश्चित रूप से - एक परीक्षण सेटअप)।

आमतौर पर, udv को हैंडलर के रूप में सेटअप किया जाता है, और घटनाओं को कैसे संभालना है, इसके बारे में कई नियम सेटअप होंगे। वहां से, यह अन्य कार्यक्रमों को लॉन्च कर सकता है जो अन्य चीजें करते हैं (जैसे मुद्दा डब संदेश)। ब्याज के विशेष वितरण पर ये udv नियम अत्यधिक निर्भर हैं।

इस थ्रेड में बहुत सी जानकारी है जहां कोई व्यक्ति कुछ दस्तावेज लिखने की कोशिश कर रहा है - ध्यान दें कि पहला संदेश सटीक नहीं है; पढ़ते रहिये।


2
एक बार यह सटीक था, लेकिन अब लंबे समय के लिए नहीं: udevनेटलिंक सॉकेट पर timevents के लिए आधुनिक सुनता है। (पुराने तरीके में
क्रमिकता

चूंकि मैं लिनक्स ( udv , hotplug ) के इस हिस्से में नया हूं, इसलिए मैं आपके द्वारा वर्णित प्रत्येक पंक्ति पर विचार करना चाहूंगा। तो क्या आप कर्नेल हॉटप्लग सबसिस्टम के साथ शुरू होने पर विस्तार से बता सकते हैं ।
सेन

@ कुशल: उत्तर के लिए धन्यवाद। क्या आप घटनाओं के अनुक्रम की व्याख्या कर सकते हैं।
सेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.