मकनॉड कमांड किसके लिए प्रयोग किया जाता है?


51

मैंने बस अपने मुख्य ओएस के रूप में उबंटू का उपयोग करना शुरू कर दिया था और मैं उन चीजों के बारे में सीखना चाहता था जो मुझे नहीं करना चाहिए, और लोगों द्वारा अतीत में किए गए बुरे कामों से सीखना चाहिए। मुझे इन ईमेलों के बारे में डरावनी कहानियों के बारे में पता चला है जो UNIX & Linux sys व्यवस्थापक ने अपने सिस्टम पर किए थे जब वे नए थे। उनमें से कई मेकानॉड कमांड का उपयोग दोनों डिस्टोरी के लिए करते हैं और एक समस्या को ठीक करते हैं। मैंने पहले कभी इस कमांड के बारे में नहीं सुना है और उबंटू के भीतर का मैन पेज बहुत मददगार नहीं है। तो मेरा प्रश्न यह है कि इस कमांड का उपयोग किस लिए किया जाता है, और ऐसे कुछ उदाहरण क्या हैं, जहां यह दिन-प्रतिदिन के उपयोग के लिए उपयोगी है?

जवाबों:


47

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

तो हाँ, एक पूरी तरह से आपदा के मामले में /devवर्चुअल फाइलसिस्टम को लोड न करने और / या udevअसफल रूप से असफल होने के कारण, mknodकिसी चीज़ को वापस पाने के लिए कम से कम अल्पविकसित उपकरण के पेड़ को फिर से साफ़ करने के लिए उपयोग किया जा सकता है ... लेकिन हाँ, यह है कि सीसडमिन हॉरर कहानी का समय। व्यक्तिगत रूप से, मैं एक बचाव यूएसबी स्टिक या सीडी की सिफारिश करता हूं।

नामित पाइप बनाने के अलावा, मैं इसके लिए एक दिन के संभावित दैनिक उपयोग के बारे में नहीं सोच सकता कि एक अंतिम उपयोगकर्ता को खुद के साथ चिंता करने की आवश्यकता होगी - और यहां तक ​​कि 'डे टू डे यूज़' की परिभाषा को भी बढ़ा रहा है।


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

1
लेकिन udevलिनक्स विशिष्ट है, यह नहीं है? शायद अन्य यूनिक्स जैसे सिस्टम अभी भी मैन्युअल रूप से डिवाइस बनाते हैं?
फहीम मीठा

2
@ चिह्न एर, नहीं। वर्चुअल डिवाइस फाइलें बनाना यह है कि सॉफ्टवेयर को अपने चालक के माध्यम से डिवाइस के साथ संवाद कैसे करना चाहिए । चालक कर्नेल में हुक बनाता है; mknod डिवाइस फाइल बनाता है जो हुक को एक डिवाइस फाइल से जोड़ता है जिसे सॉफ्टवेयर बाद में कनेक्ट कर सकता है।
शादुर

@ फहीम मुझे यकीन नहीं है; FreeBSD का उपयोग करने लगता है devfsऔर / या devdमेरे पास कोई व्यक्तिगत अनुभव नहीं है। मुझे संदेह है कि अन्य यूनियनों ने हालांकि डिवाइस नोड्स बनाने की प्रक्रिया को स्वचालित करने के लिए अपने तरीके से काम किया है।
शादुर

@मार्क उदाहरण के लिए, अलसा /dev/sndप्रत्येक बिट साउंड हार्डवेयर के विभिन्न तत्वों के अनुरूप नोड्स की एक श्रृंखला उत्पन्न करता है, जिसका वह पता लगाता है और समर्थन करता है। सॉफ़्टवेयर जो ध्वनि का उपयोग करता है, उन उपकरणों का उपयोग ध्वनि उत्पन्न करने के लिए कर सकता है बिना यह जाने कि वे किस साउंड कार्ड से बात कर रहे हैं।
शादुर

7

आप इसके साथ एक नामित पाइप बना सकते हैं।

मैं इसे पढ़ने के लिए एक कार्यक्रम के साथ उपयोग करता हूं, और इसमें लिखने के लिए एक और।

प्रक्रियाओं के बीच संवाद करना आसान बनाता है।

अन्यथा, आप उन डिवाइस फ़ाइलों को बना सकते हैं, जो मौजूद नहीं हैं।

इसके अलावा: http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=/com.ibm.aix.cmds/doc/aixcmds3.mknod.htm


जब आप उत्तर सही थे, तो शादुर ने एक उत्तर दिया, जो सभी स्तरों के पाठकों के लिए स्पष्ट था, इसलिए मुझे लगता है कि इस प्रश्न के उत्तर की तलाश कर रहे लोगों के लिए यह सबसे अच्छा है।
मार्क टॉमलिन

मुझे पता है, मैंने सिर्फ एक व्यावहारिक दृष्टिकोण से समझाने की कोशिश की थी जैसा कि मैं करता हूं। mknodनामित पाइप बनाने की तुलना में कुछ और के लिए उपयोग करना दुर्लभ से अधिक है।
पोलीमोन

5

ओरेकल एएसएम डिस्कग्रुप बनाने के लिए कच्चे उपकरणों पर काम करने वाले डीआरबीए के रूप में, हम नियमित रूप mknodसे उपकरणों को लिंक करने के लिए उपयोग करते हैं ।

उपरोक्त उत्तर मेरे लिए बहुत उपयोगी थे क्योंकि हम सिस्टम के व्यवस्थापक नहीं हैं। मैं सिर्फ यह बताना चाहता था कि यह स्टोरेज एडिंस के दृष्टिकोण से उपयोग करने के लिए दुर्लभ हो सकता है, mknodलेकिन ओरेकल एएसएम के दृष्टिकोण से इसका सामान्य उपयोग है। (हो सकता है कि कोई हमारे लिए बेहतर तरीका लेकर आ सकता है?)


1
मैं लिनक्स पर ASM चला रहा हूं और mknod चलाने का कोई कारण नहीं है। मेरे पास कुछ udev स्क्रिप्ट हैं जो सहानुभूति बनाती हैं, लेकिन यह सुनिश्चित नहीं करती हैं कि आपको mknod की क्या आवश्यकता है ... जब तक आप लिनक्स पर नहीं हैं। बेशक।
derobert

@JayJee को सलाह दी जाती है कि आधुनिक लिनक्स सिस्टम पर, यदि आप बदलाव या परिवर्धन /devकरते हैं mknod, तो अगली बार सिस्टम के रीबूट होने पर वे परिवर्तन दूर हो जाएंगे। आपको एक स्क्रिप्ट या एक udevनियम फ़ाइल लिखने की आवश्यकता होगी जो उन्हें लगातार बनाए रखने के लिए बूट समय पर आपके लिए परिवर्तन / परिवर्धन करेगी।
टेल्कोएम

3

IMHO, यहां तक ​​कि नामित पाइप बनाने के लिए, mkfifo कमांड mknod से बेहतर होगा। एक, यह नाम में स्व वर्णनात्मक है, दूसरा, यह umask सेटिंग्स को ओवरराइड करने के लिए -m विकल्प देता है।


1
... और पाइप नाम के एक दशक बाद तक इसका अस्तित्व नहीं था; mknod foo pजब हमने इसका एकमात्र तरीका सीखा था।

मैंने हाल ही में जब तक मैं कोरुटिल्स के माध्यम से देख रहा था, तब तक मैक्नॉड के बारे में कभी नहीं सुना था। मैंने हमेशा सिर्फ mkfifo का उपयोग किया है ...
छह

0

कमांड "mknod" को यूनिक्स (tm) संस्करण 4 में AT & T द्वारा लाइसेंसधारियों के लिए जारी किया गया था। मैं आपको यह सलाह देना चाहता हूं कि इसकी प्रतिलिपि प्राप्त करने के लिए समय और धन खर्च करना उचित है

बेल सिस्टम तकनीकी जर्नल, 57: 6. जुलाई-अगस्त 1978 पीपी 1905-1929। UNIX टाइम-शेयरिंग सिस्टम। (रिची, डीएम; थॉम्पसन, के।)

वह मुद्दा, और विशेष रूप से वह लेख, आपको कई मौलिक अवधारणाओं की सराहना की ओर ले जाएगा, जो सुरुचिपूर्ण, कॉम्पैक्ट, तेज, स्थिर, सुरक्षित और बहुमुखी ऑपरेटिंग सिस्टम के निर्माण की अनुमति देता है जो यूनिक्स (टीएम) था। अब उपलब्ध हैं कि विभिन्न प्रणालियों अभी भी काफी बहुमुखी हैं ;-)

मैं उनमें से कुछ का उल्लेख करने की कोशिश करूँगा।

1) सेटिड और सेटगिड बिट्स और कैसे कहा गया बिट्स का उपयोग उपयोगकर्ताओं को विश्वसनीय और अविश्वसनीय विशेषाधिकार वाले डोमेन में अलग करने की अनुमति देता है। होप स्प्रिंग्स शाश्वत है कि विश्वसनीय उपयोगकर्ताओं को सिस्टम को "# सीडी /" पर कमांड करने की संभावना कम होगी; rm -rf * .o ”, विशेषाधिकार और“ विनाश का स्थान ”के दोनों अनुचित उपयोग पर ध्यान दें। यह भी ध्यान दें कि एक उद्धृत वाक्यांश के साथ वाक्य का अंतिम सिरा पूर्ण-विराम और समापन उद्धरण चिह्न के क्रम को निर्धारित करता है। अंग्रेजी व्याकरण बेकार (एफएम)। dmr और ken ने जनता को अर्ध-पेटेंट दान दिया, उन्हें आशीर्वाद दिया।

2) फ़ाइलों के रूप में एक ही नाम स्थान के माध्यम से डिवाइस का उपयोग। यहां वह जगह है जहां संस्थापकों द्वारा सोची गई गतिविधियों को करने के लिए अन्य सरल साधनों के साथ संयुक्त एक छोटे से उपकरण का सरल लालित्य शक्तिशाली हो जाता है।

3) डेटा स्पेस में एक फाइल एक स्ट्रिंग है। संरचना कार्यक्रम अंतरिक्ष में कार्यक्रमों द्वारा लगाया जाता है और जटिल स्विस-सेना-चाकू कार्यक्रम के लिए कसकर बाध्य नहीं है। Apple (R), Microsoft (R), और IBM (R) में बेहतर उत्पाद हो सकते थे और उनमें से अधिकांश BSTJ को पढ़ते थे।

4) स्टडिन, स्टडआउट, स्टेडर।

5) गोले, व्याख्यात्मक कमांड प्रोसेसर, सरल उपकरणों को आसानी से कॉम करने में सक्षम।

6) केवल आंतरिक छोरों में कोड का अनुकूलन करें, अपना सीमित समय और पैसा खर्च करें जहां यह मायने रखता है।

7) भाषा अनुवाद प्रोसेसर में i / o सिंटैक्स एम्बेड न करें।

सी। <फोरट्रान

8) KISS।

9) "यह आसान करने के लिए डिजाइन करने के लिए आसान है एक बहु-उपयोगकर्ता टाइमशेयरिंग ayaeem सिस्टम एक्सटेंशन को दूसरे राउंड की तुलना में एक अच्छे रियल-टाइम सिस्टम पर लागू करें", मुझे, RSX-11D के लिए एक टाइमशेयरिंग एक्सटेंशन, छोटे उपकरणों का उपयोग करके लागू किया गया, जो MACRO में लिखा गया है 11 जब अपरिहार्य है, अन्यथा उच्च स्तर की भाषाएं पीआर स्क्रिप्ट बहुत अच्छी थी, 248k बाइट पीडीपी -11 // 45 (16k ठोस राज्य मेमोरी बाकी कोर) पर 16 उपयोगकर्ता। FOCAL, BASIC, FORTRAN IV, C, MACRO-11, लिंक संपादन, कार्यक्रम निष्पादन, बैच, इंटरएक्टिव और नियंत्रण / एकाधिक वैज्ञानिक प्रयोगों के डेटा अधिग्रहण के साथ LAB-11 और A / D के लिए रचनात्मक अनुकूलित इंटरफेस का उपयोग करके समवर्ती कार्यक्रम विकास। डी / ए, उच्च संकल्प घड़ियों, ...

9600baud CRTs या 120cps प्रिंटर 30cps DECwriters के साथ कोई अवलोकन योग्य परेशान देरी संपादन। 300 एलपीएम प्रिंटर के साथ थोड़ा झटकेदार स्टैकटो। आरजेई के लिए UT200 और 2780। आरएक्सएक्स -11 एम, आरएसएक्स -11 एम +, आईएएस और वीएमएस के शुरुआती संस्करणों की तुलना में फास्टर प्रोग्राम विकास।

एक वास्तविक समय-साझाकरण शेड्यूलर को एक प्राथमिकता के खुश विशेषताओं का उपयोग करके एक वास्तविक समय के कार्य के रूप में कार्यान्वित किया गया है, एटीएल को एक डॉक्यू के रूप में लागू किया गया है।

यूनिक्स किस्में आजकल तेजी से चमक रही हैं, लेकिन केवल इसलिए कि सीपीयू तीन सेकंड में एक अनंत लूप कर सकते हैं। टीएफसी।


कृपया मुझे टाइपिंग की गलतियाँ माफ करें। iPhone और पार्किंसंस एक साथ अच्छा नहीं खेलते हैं। C <FORTRAN <COBOL <PL / 1, लेफ्टिस बेहतर है।
k6mrm
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.