यदि आप डिवाइस फ़ाइल को हटाते हैं तो क्या होता है?


21

मैं मोटे तौर पर / देव के तहत स्थित फाइलों के बारे में जानता हूं।

मुझे पता है कि दो प्रकार (वर्ण / ब्लॉक) हैं, इन फ़ाइलों तक पहुंच कर्नेल में एक ड्राइवर के साथ संचार करता है।

मैं जानना चाहता हूं कि क्या होता है अगर मैं एक को हटाता हूं - विशेष रूप से दोनों प्रकार की फ़ाइल के लिए। यदि मैं एक ब्लॉक डिवाइस फ़ाइल को हटाता हूं, तो कहो /dev/sda, क्या प्रभाव है - यदि कोई है - क्या यह है? क्या मैंने अभी डिस्क को अनमाउंट किया है?

इसी तरह, अगर मैं हटाता हूं तो /dev/mouse/mouse0- क्या होता है? क्या माउस काम करना बंद कर देता है? क्या यह अपने आप बदल जाता है?

क्या मैं इन फ़ाइलों को हटा भी सकता हूँ? अगर मेरे पास वीएम सेट अप होता है, तो मैं कोशिश करूँगा।


1
मैंने SVR4 सिस्टम पर एक बार डिलीट / देव / शून्य किया। बुरा विचार। मेरे सिस्टम को फिर से बूट करने के लिए थोड़ा काम लिया।
ब्रैड लनाम

जवाबों:


30

वे बस (विशेष) फाइलें हैं। वे केवल वास्तविक डिवाइस के लिए "संकेत" के रूप में सेवा करते हैं। (यानी कर्नेल के अंदर ड्राइवर मॉड्यूल।)

यदि कुछ कमांड / सेवा पहले से ही उस फ़ाइल को खोलती है, तो उसके पास पहले से ही डिवाइस है और वह काम करना जारी रखेगा।

यदि कुछ कमांड / सेवा एक नया कनेक्शन खोलने की कोशिश करती है, तो वह "फ़ाइल नहीं मिली" के कारण उस फ़ाइल तक पहुंचने और विफल होने का प्रयास करेगी।

आमतौर पर उन फाइलों को पॉपुलेट किया जाता है udev, जो उन्हें सिस्टम स्टार्टअप पर और यूएसबी डिवाइस में प्लगिंग जैसी विशेष घटनाओं पर स्वचालित रूप से बनाता है, लेकिन आप मैन्युअल रूप से उपयोग करने वालों को भी बना सकते हैं mknod


3
यह वास्तव में इस सवाल का जवाब नहीं देता ...
Gogeta70

"आमतौर पर उन फ़ाइलों को udev द्वारा आबाद किया जाता है" आमतौर पर, लेकिन लिनक्स पर। वहाँ makedevकमांड है जो आमतौर पर काम करता है, और इसके विपरीत udevयह अधिकांश यूनिक्स की तरह ओएस के बीच मौजूद है।
सेर्गेई कोलोडियाज़नी

1
@ Gogeta70 इस सवाल का कौन सा हिस्सा अनुत्तरित छोड़ देता है?
रुस्लान

@RonJohn प्रश्न टैग है linuxऔरudev
माइकल Mrozek

1
@RonJohn हाँ, लेकिन एक "लेकिन" के साथ। उबंटू हैक्स पुस्तक जो 06 जैसे शो है से है /etc/init.d/makedevFreeBSD पुस्तिका का उल्लेख है MAKEDEV 4.2BSD में छपी (1983 से)। मुझे लगता है कि 1983 में यह सिर्फ MAKEDEVinit के माध्यम से स्वचालित बनाने के लिए तार्किक होगा जैसा कि 06
Sergiy Kolodyazhnyy

8

डिवाइस फ़ाइलें वास्तव में कर्नेल डिवाइस तालिका में प्रविष्टि के लिए एक फाइलसिस्टम उर्फ ​​हैं। यदि आप "ls -l" के साथ / dev फ़ाइलों को देखते हैं, तो आप देखेंगे कि उनके पास एक प्रमुख डिवाइस नंबर और एक मामूली डिवाइस नंबर है। यदि आप फ़ाइलों को फाइल सिस्टम से हटाते हैं, तो आप हमेशा कर्नेल डिवाइस तालिका में प्रविष्टि के लिए विशेष फ़ाइल को रिलेक्स करने के लिए उपयुक्त टूल का उपयोग करके उन्हें फिर से बना सकते हैं - mknod (1) देखें।


3

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

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