डिवाइस फ़ाइल: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 4: Line 4:
यूनिक्स जैसे [[ऑपरेटिंग सिस्टम|ऑपरेटिंग प्रणाली]] में, डिवाइस फ़ाइल या विशेष फ़ाइल [[डिवाइस ड्राइवर]] के लिए [[इंटरफ़ेस (कंप्यूटर विज्ञान)]] है जो [[फाइल सिस्टम|फाइल प्रणाली]] में दिखाई देती है जैसे कि यह सामान्य [[कम्प्यूटर फाइल]] हो। डॉस, ओएस/2, और [[Windows|विंडोज]] में भी विशेष फ़ाइलें हैं। ये विशेष फाइलें मानक इनपुट/आउटपुट [[सिस्टम कॉल|प्रणाली कॉल]] के माध्यम से अपने डिवाइस ड्राइवर का उपयोग करके एप्लिकेशन प्रोग्राम को डिवाइस के साथ इंटरैक्ट करने [[की]] अनुमति देती हैं। मानक प्रणाली कॉल का उपयोग करना कई प्रोग्रामिंग कार्यों को सरल करता है, और डिवाइस सुविधाओं और कार्यों को ध्यान किए बिना संगत उपयोगकर्ता-स्थान इनपुट/आउटपुट प्रणाली की ओर जाता है।
यूनिक्स जैसे [[ऑपरेटिंग सिस्टम|ऑपरेटिंग प्रणाली]] में, डिवाइस फ़ाइल या विशेष फ़ाइल [[डिवाइस ड्राइवर]] के लिए [[इंटरफ़ेस (कंप्यूटर विज्ञान)]] है जो [[फाइल सिस्टम|फाइल प्रणाली]] में दिखाई देती है जैसे कि यह सामान्य [[कम्प्यूटर फाइल]] हो। डॉस, ओएस/2, और [[Windows|विंडोज]] में भी विशेष फ़ाइलें हैं। ये विशेष फाइलें मानक इनपुट/आउटपुट [[सिस्टम कॉल|प्रणाली कॉल]] के माध्यम से अपने डिवाइस ड्राइवर का उपयोग करके एप्लिकेशन प्रोग्राम को डिवाइस के साथ इंटरैक्ट करने [[की]] अनुमति देती हैं। मानक प्रणाली कॉल का उपयोग करना कई प्रोग्रामिंग कार्यों को सरल करता है, और डिवाइस सुविधाओं और कार्यों को ध्यान किए बिना संगत उपयोगकर्ता-स्थान इनपुट/आउटपुट प्रणाली की ओर जाता है।


== सिंहावलोकन ==
== अवलोकन ==
डिवाइस फ़ाइलें आमतौर पर मानक उपकरणों (जैसे प्रिंटर और सीरियल पोर्ट) के लिए सरल इंटरफेस प्रदान करती हैं, लेकिन उन उपकरणों पर विशिष्ट विशिष्ट संसाधनों तक पहुंचने के लिए भी उपयोग किया जा सकता है, जैसे कि [[डिस्क विभाजन]]इसके अतिरिक्त, उपकरण फ़ाइलें [[संसाधन (कंप्यूटर विज्ञान)]] तक पहुँचने के लिए उपयोगी होती हैं जिनका किसी वास्तविक उपकरण से कोई संबंध नहीं होता है, जैसे [[डेटा सिंक]] और यादृच्छिक संख्या जनरेटर।
डिवाइस फ़ाइलें सामान्यतः मानक उपकरणों (जैसे प्रिंटर और सीरियल पोर्ट) के लिए सरल इंटरफेस प्रदान करती हैं, किंतु उन उपकरणों पर विशिष्ट अद्वितीय संसाधनों तक पहुंचने के लिए भी उपयोग की जा सकती हैं, जैसे कि [[डिस्क विभाजन]] हैं। इसके अतिरिक्त, डिवाइस फ़ाइलें उन प्रणाली [[संसाधन (कंप्यूटर विज्ञान)|संसाधनों (कंप्यूटर विज्ञान)]] तक पहुँचने के लिए उपयोगी होती हैं जिनका किसी वास्तविक उपकरण से कोई संबंध नहीं होता है, जैसे [[डेटा सिंक]] और यादृच्छिक संख्या जनरेटर है।


यूनिक्स जैसे ऑपरेटिंग प्रणाली में दो सामान्य प्रकार की डिवाइस फाइलें होती हैं, जिन्हें कैरेक्टर स्पेशल फाइल्स और ब्लॉक स्पेशल फाइल्स के रूप में जाना जाता है। उनके बीच का अंतर यह है कि ऑपरेटिंग प्रणाली और हार्डवेयर द्वारा कितना डेटा पढ़ा और लिखा जाता है। इन्हें एक साथ [[नामित पाइप]]ों के विपरीत 'डिवाइस विशेष फ़ाइलें' कहा जा सकता है, जो डिवाइस से कनेक्ट नहीं हैं लेकिन सामान्य फ़ाइलें भी नहीं हैं।
यूनिक्स जैसे ऑपरेटिंग प्रणाली में दो सामान्य प्रकार की डिवाइस फाइलें होती हैं, जिन्हें कैरेक्टर स्पेशल फाइल्स और ब्लॉक स्पेशल फाइल्स के रूप में जाना जाता है। इनके मध्य का अंतर यह है कि ऑपरेटिंग प्रणाली और हार्डवेयर द्वारा कितना डेटा पढ़ा और लिखा जाता है। इन्हें एक साथ [[नामित पाइप|नामित पाइपों]] के विपरीत 'डिवाइस विशेष फ़ाइलें' कहा जा सकता है, जो डिवाइस से कनेक्ट नहीं हैं किंतु सामान्य फ़ाइलें भी नहीं हैं।


[[MS-DOS]] ने यूनिक्स से विशेष फाइलों की अवधारणा को उधार लिया लेकिन उनका नाम बदलकर डिवाइस कर दिया।<ref name="kb90239"/>क्योंकि MS-DOS के शुरुआती संस्करण एक निर्देशिका (फ़ाइल प्रणाली) पदानुक्रम का समर्थन नहीं करते थे, उपकरणों को उनके नाम [[आरक्षित शब्द]] बनाकर नियमित फ़ाइलों से अलग किया गया था, उदाहरण के लिए: कुख्यात <code>CON</code>. इन्हें सीपी/एम के साथ संगतता की डिग्री के लिए चुना गया था और अभी भी पिछड़े संगतता के लिए आधुनिक विंडोज़ में मौजूद हैं।
[[MS-DOS|एमएस-डॉस]] ने यूनिक्स से विशेष फाइलों की अवधारणा को उधार ली थी किंतु उनका नाम परिवर्तित करके डिवाइस कर दिया।<ref name="kb90239"/>क्योंकि एमएस-डॉस के प्रारंभिक संस्करण निर्देशिका (फ़ाइल प्रणाली) पदानुक्रम का समर्थन नहीं करते थे, उपकरणों को उनके नाम [[आरक्षित शब्द]] बनाकर नियमित फ़ाइलों से भिन्न किया गया था, उदाहरण के लिए: इन्फमोउस <code>CON</code> हैं। इन्हें सीपी/एम के साथ संगतता की डिग्री के लिए चयन किया गया था और अभी भी पिछड़े संगतता के लिए आधुनिक विंडोज़ में उपस्थित हैं।


कुछ यूनिक्स जैसी प्रणालियों में, अधिकांश डिवाइस फ़ाइलों को पारंपरिक रूप से माउंटेड [[वर्चुअल फाइल सिस्टम|वर्चुअल फाइल प्रणाली]] के हिस्से के रूप में प्रबंधित किया जाता है <code>/dev</code>, संभवतः एक नियंत्रित डेमॉन से जुड़ा हुआ है, जो रन टाइम पर हार्डवेयर जोड़ने और हटाने की निगरानी करता है, डिवाइस फ़ाइल प्रणाली में संबंधित परिवर्तन करता है यदि वह कर्नेल द्वारा स्वचालित रूप से नहीं किया जाता है, और विशेष डिवाइस की जरूरतों को पूरा करने के लिए प्रणाली या यूजर स्पेस में स्क्रिप्ट्स को आमंत्रित करता है। [[FreeBSD]], [[DragonFly BSD]] और [[डार्विन (ऑपरेटिंग सिस्टम)|डार्विन (ऑपरेटिंग प्रणाली)]] के पास एक समर्पित फ़ाइल प्रणाली ''devfs'' है; इस फाइल प्रणाली द्वारा [[कर्नेल स्थान]] में डिवाइस नोड्स को स्वचालित रूप से प्रबंधित किया जाता है। लिनक्स में एक समान '' devfs '' कार्यान्वयन हुआ करता था, लेकिन बाद में इसे छोड़ दिया गया, और फिर संस्करण 2.6.17 के बाद से हटा दिया गया;<ref>{{cite web |last1=Kroah-Hartman |first1=Greg |title=[PATCH] devfs: Remove devfs from the kernel tree |url=https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/fs/devfs?id=d8deac5094988c7ad1127ee61f52c59a952fcabb |website=Linux kernel source tree |access-date=2021-06-12 |date=2005-06-20}}</ref> लिनक्स अब मुख्य रूप से एक [[ उपयोक्ता स्थान ]] कार्यान्वयन का उपयोग करता है जिसे [[udev]] के रूप में जाना जाता है, लेकिन इसके कई रूप हैं।
कुछ यूनिक्स जैसी प्रणालियों में, अधिकांश डिवाइस फ़ाइलों को [[वर्चुअल फाइल सिस्टम|वर्चुअल फाइल प्रणाली]] के भाग के रूप में प्रबंधित किया जाता है जो परंपरागत रूप से <code>/dev</code>, पर आरोहित होता है, संभवतः नियंत्रित डेमॉन से जुड़ा हुआ है, जो रन टाइम पर हार्डवेयर जोड़ने और विस्थापित करने का निरीक्षण करता है, डिवाइस फ़ाइल प्रणाली में संबंधित परिवर्तन करता है यदि यह स्वचालित रूप से कर्नेल द्वारा नहीं किया जाता है, और संभवतः विशेष डिवाइस की आवश्यकताओं को पूर्ण करने के लिए प्रणाली या उपयोगकर्ता स्थान में स्क्रिप्ट को प्रारम्भ करता है। [[FreeBSD|फ्रीबीएसडी]], [[DragonFly BSD|ड्रेगनफ्लाईबीएसडी]] और [[डार्विन (ऑपरेटिंग सिस्टम)|डार्विन (ऑपरेटिंग प्रणाली)]] के पास समर्पित फ़ाइल प्रणाली ''devfs'' है; इस फाइल प्रणाली द्वारा [[कर्नेल स्थान]] में डिवाइस नोड्स को स्वचालित रूप से प्रबंधित किया जाता है। लिनक्स में एक समान ''devfs ''कार्यान्वयन हुआ करता था, किंतु पश्चात में इसे छोड़ दिया गया, और फिर संस्करण 2.6.17 के पश्चात से विस्थापित कर दिया गया;<ref>{{cite web |last1=Kroah-Hartman |first1=Greg |title=[PATCH] devfs: Remove devfs from the kernel tree |url=https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/fs/devfs?id=d8deac5094988c7ad1127ee61f52c59a952fcabb |website=Linux kernel source tree |access-date=2021-06-12 |date=2005-06-20}}</ref> लिनक्स अब मुख्य रूप से[[ उपयोक्ता स्थान | उपयोगकर्ता स्थान]] कार्यान्वयन का उपयोग करता है जिसे [[udev]] के रूप में जाना जाता है, किंतु इसके कई संस्करण हैं।


यूनिक्स प्रणाली में जो [[चुरोट]] प्रक्रिया अलगाव का समर्थन करता है, जैसे कि [[सोलारिस कंटेनर]], आमतौर पर प्रत्येक चेरोट वातावरण को स्वयं की आवश्यकता होती है <code>/dev</code>; ये आरोह बिंदु वैश्विक फ़ाइल प्रणाली ट्री में विभिन्न नोड्स पर होस्ट OS पर दिखाई देंगे। के चेरोट उदाहरणों में पॉप्युलेट किए गए डिवाइस नोड्स को प्रतिबंधित करके <code>/dev</code>, हार्डवेयर आइसोलेशन को चेरोट वातावरण द्वारा लागू किया जा सकता है (एक प्रोग्राम हार्डवेयर के साथ दखल नहीं दे सकता है जिसे वह न तो देख सकता है और न ही नाम दे सकता है - यूनिक्स फ़ाइल प्रणाली अनुमतियों की तुलना में [[अभिगम नियंत्रण]] का एक और भी मजबूत रूप)।
यूनिक्स प्रणाली में जो [[चुरोट|क्रोट]] प्रक्रिया भिन्नता का समर्थन करता है, जैसे कि [[सोलारिस कंटेनर]], सामान्यतः प्रत्येक क्रोट वातावरण को स्वयं <code>/dev</code>की आवश्यकता होती है; ये आरोह बिंदु वैश्विक फ़ाइल प्रणाली ट्री में विभिन्न नोड्स पर होस्ट ओएस पर दिखाई देंगे। <code>/dev</code> के क्रोट पॉप्युलेट किए गए डिवाइस नोड्स को प्रतिबंधित करके, हार्डवेयर भिन्नता को क्रोट वातावरण द्वारा प्रारम्भ किया जा सकता है (प्रोग्राम हार्डवेयर के साथ हस्तक्षेप नहीं कर सकता है जिसे वह न तो देख सकता है और न ही नाम दे सकता है- यूनिक्स फ़ाइल प्रणाली अनुमतियों की तुलना में [[अभिगम नियंत्रण]] का एक और भी स्थिर रूप)।


MS-DOS प्रत्येक डिवाइस फ़ाइल को विशेष रूप से खुला बनाकर हार्डवेयर डिवाइस विवाद को प्रबंधित करता है ([[टर्मिनेट-एंड-स्टे-रेजिडेंट प्रोग्राम]] देखें)। पहले से उपयोग में आने वाले डिवाइस तक पहुंचने का प्रयास करने वाला एप्लिकेशन खुद को डिवाइस फ़ाइल नोड खोलने में असमर्थ पाएगा। यूनिक्स और लिनक्स में समवर्ती पहुंच के संबंध में विभिन्न प्रकार के डिवाइस ड्राइवर सिमेंटिक्स लागू किए गए हैं।<ref>{{cite book |last=Corbet |first=Jonathan |last2= Kroah-Hartman |first2=Greg |last3=Rubini |first3=Alessandro |date=2005 |title=Linux Device Drivers, 3rd Edition |section=Access Control on a Device File|url=http://www.makelinux.net/ldd3/chp-6-sect-6.shtml |publisher=[[O'Reilly Media|O'Reilly]] |access-date=28 April 2017 |quote=The next step beyond a single-open device is to let a single user open a device in multiple processes but allow only one user to have the device open at a time.}}</ref>
एमएस-डॉस प्रत्येक डिवाइस फ़ाइल को विशेष रूप से विवृत बनाकर हार्डवेयर डिवाइस विवाद को प्रबंधित करता है ([[टर्मिनेट-एंड-स्टे-रेजिडेंट प्रोग्राम]] देखें)। पहले से उपयोग में आने वाले डिवाइस तक पहुंचने का प्रयास करने वाला एप्लिकेशन स्वयं  को डिवाइस फ़ाइल नोड विवृत करने में असमर्थ पाएगा। यूनिक्स और लिनक्स में समवर्ती पहुंच के संबंध में विभिन्न प्रकार के डिवाइस ड्राइवर सिमेंटिक्स प्रारम्भ किए गए हैं।<ref>{{cite book |last=Corbet |first=Jonathan |last2= Kroah-Hartman |first2=Greg |last3=Rubini |first3=Alessandro |date=2005 |title=Linux Device Drivers, 3rd Edition |section=Access Control on a Device File|url=http://www.makelinux.net/ldd3/chp-6-sect-6.shtml |publisher=[[O'Reilly Media|O'Reilly]] |access-date=28 April 2017 |quote=The next step beyond a single-open device is to let a single user open a device in multiple processes but allow only one user to have the device open at a time.}}</ref>




== यूनिक्स और यूनिक्स जैसी प्रणालियाँ ==
== यूनिक्स और यूनिक्स जैसी प्रणालियाँ ==
[[File:Simplified Structure of the Linux Kernel.svg|thumb|लिनक्स कर्नेल की एक सरलीकृत संरचना। फाइल प्रणाली I/O सबप्रणाली के हिस्से के रूप में कार्यान्वित किए जाते हैं।]]डिवाइस नोड्स उन संसाधनों के अनुरूप हैं जो एक ऑपरेटिंग प्रणाली के कर्नेल (कंप्यूटर साइंस) ने पहले ही आवंटित कर दिए हैं। यूनिक्स उन संसाधनों की एक बड़ी संख्या और एक छोटी संख्या द्वारा पहचान करता है,<ref>{{cite book |title=यूनिक्स प्रोग्रामिंग पर्यावरण|page=[https://archive.org/details/unixprogramminge0000kern/page/66 66] |author-first1=Brian W. |author-last1=Kernighan |author-link1=Brian W. Kernighan |author-first2=Rob |author-last2=Pike |author-link2=Rob Pike |publisher=[[Prentice-Hall]] |date=1984 |isbn=0-13-937681-X |url-access=registration |url=https://archive.org/details/unixprogramminge0000kern/page/66 }}</ref> दोनों एक [[नोड (कंप्यूटर विज्ञान)]] की संरचना के हिस्से के रूप में संग्रहीत हैं। इन नंबरों का असाइनमेंट अलग-अलग [[ऑपरेटिंग सिस्टम|ऑपरेटिंग प्रणाली]] और अलग-अलग [[ कंप्यूटर मंच ]] पर विशिष्ट रूप से होता है। आम तौर पर, प्रमुख संख्या डिवाइस ड्राइवर की पहचान करती है और छोटी संख्या एक विशेष डिवाइस की पहचान करती है (संभवतः कई में से) जिसे ड्राइवर नियंत्रित करता है:<ref>{{cite web |author=Neil Brown |title=Ghosts of Unix Past: a historical search for design patterns |website=Linux Weekly News |date=October 27, 2010 |access-date=30 March 2014 |url=https://lwn.net/Articles/411845/}}</ref> इस मामले में, प्रणाली ड्राइवर को माइनर नंबर दे सकता है। हालाँकि, डायनेमिक नंबर आवंटन की उपस्थिति में, यह मामला नहीं हो सकता है (उदाहरण के लिए FreeBSD 5 और ऊपर)।
[[File:Simplified Structure of the Linux Kernel.svg|thumb|लिनक्स कर्नेल की एक सरलीकृत संरचना। फाइल प्रणाली I/O सबप्रणाली के भाग के रूप में कार्यान्वित किए जाते हैं।]]डिवाइस नोड्स उन संसाधनों के अनुरूप होते हैं जो ऑपरेटिंग प्रणाली के कर्नेल (कंप्यूटर साइंस) ने पहले ही आवंटित कर दिए हैं। यूनिक्स उन संसाधनों की प्रमुख संख्या और छोटी संख्या द्वारा पहचान करता है,<ref>{{cite book |title=यूनिक्स प्रोग्रामिंग पर्यावरण|page=[https://archive.org/details/unixprogramminge0000kern/page/66 66] |author-first1=Brian W. |author-last1=Kernighan |author-link1=Brian W. Kernighan |author-first2=Rob |author-last2=Pike |author-link2=Rob Pike |publisher=[[Prentice-Hall]] |date=1984 |isbn=0-13-937681-X |url-access=registration |url=https://archive.org/details/unixprogramminge0000kern/page/66 }}</ref> दोनों [[नोड (कंप्यूटर विज्ञान)]] की संरचना के भाग के रूप में संग्रहीत हैं। इन नंबरों का असाइनमेंट भिन्न-भिन्न [[ऑपरेटिंग सिस्टम|ऑपरेटिंग प्रणाली]] और भिन्न-भिन्न [[ कंप्यूटर मंच |कंप्यूटर प्लेटफॉर्म]] पर विशिष्ट रूप से होता है। सामान्यतः, प्रमुख संख्या डिवाइस ड्राइवर की पहचान करती है और छोटी संख्या विशेष डिवाइस (संभवतः कई में से) की पहचान करती है जिसे ड्राइवर नियंत्रित करता है:<ref>{{cite web |author=Neil Brown |title=Ghosts of Unix Past: a historical search for design patterns |website=Linux Weekly News |date=October 27, 2010 |access-date=30 March 2014 |url=https://lwn.net/Articles/411845/}}</ref> इस स्थिति में, प्रणाली ड्राइवर को माइनर नंबर दे सकता है। चूँकि, डायनेमिक नंबर आवंटन की उपस्थिति में, यह विषय नहीं हो सकता है (उदाहरण के लिए फ्रीबीएसडी 5 और ऊपर)।


अन्य विशेष फ़ाइल प्रकारों की तरह, कंप्यूटर प्रणाली मानक प्रणाली कॉल का उपयोग करके डिवाइस नोड्स तक पहुँचता है और उन्हें नियमित कंप्यूटर फ़ाइलों की तरह व्यवहार करता है। दो मानक प्रकार की डिवाइस फ़ाइलें मौजूद हैं; दुर्भाग्य से उनके नाम ऐतिहासिक कारणों से प्रति-सहज हैं, और परिणामस्वरूप दोनों के बीच अंतर की व्याख्या अक्सर गलत होती है।
अन्य विशेष फ़ाइल प्रकारों की तरह, कंप्यूटर प्रणाली मानक प्रणाली कॉल का उपयोग करके डिवाइस नोड्स तक पहुँचता है और उन्हें नियमित कंप्यूटर फ़ाइलों की तरह व्यवहार करता है। दो मानक प्रकार की डिवाइस फ़ाइलें उपस्थित हैं; दुर्भाग्य से उनके नाम ऐतिहासिक कारणों से प्रति-सहज हैं, और परिणामस्वरूप दोनों के मध्य अंतर की व्याख्या अक्सर गलत होती है।


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


चरित्र उपकरणों को कभी-कभी कच्चे उपकरणों के रूप में जाना जाता है ताकि इस तथ्य के आस-पास के भ्रम से बचा जा सके कि ब्लॉक-आधारित हार्डवेयर के एक टुकड़े के लिए एक चरित्र डिवाइस को आम तौर पर संरेखित ब्लॉकों को पढ़ने और लिखने के लिए प्रोग्राम की आवश्यकता होगी।
चरित्र उपकरणों को कभी-कभी कच्चे उपकरणों के रूप में जाना जाता है ताकि इस तथ्य के आस-पास के भ्रम से बचा जा सके कि ब्लॉक-आधारित हार्डवेयर के एक टुकड़े के लिए एक चरित्र डिवाइस को सामान्यतः संरेखित ब्लॉकों को पढ़ने और लिखने के लिए प्रोग्राम की आवश्यकता होगी।


===ब्लॉक डिवाइस ===
===ब्लॉक डिवाइस ===
विशेष फ़ाइलों को ब्लॉक करें या डिवाइस को ब्लॉक करें, हार्डवेयर डिवाइस को बफ़र्ड एक्सेस प्रदान करें, और उनकी बारीकियों से कुछ अमूर्तता प्रदान करें।<ref>{{cite web|title=IEEE Std 1003.1, 2013 Edition|url=http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_79|access-date=24 April 2014}}</ref> चरित्र उपकरणों के विपरीत, ब्लॉक डिवाइस हमेशा प्रोग्रामर को किसी भी आकार (एकल अक्षर/बाइट सहित) और किसी भी संरेखण के ब्लॉक को पढ़ने या लिखने की अनुमति देगा। नकारात्मक पक्ष यह है कि क्योंकि ब्लॉक डिवाइस बफ़र किए जाते हैं, प्रोग्रामर को यह नहीं पता होता है कि कर्नेल के बफ़र्स से लिखित डेटा को वास्तविक डिवाइस पर पास करने में कितना समय लगेगा, या वास्तव में किस क्रम में भौतिक डिवाइस पर दो अलग-अलग राइट्स आएंगे। इसके अतिरिक्त, यदि एक ही हार्डवेयर कैरेक्टर और ब्लॉक डिवाइस दोनों को उजागर करता है, तो कैरेक्टर डिवाइस का उपयोग करने वाले क्लाइंट को ब्लॉक डिवाइस के बफ़र्स में किए गए परिवर्तनों से अनजान होने के कारण डेटा भ्रष्टाचार का खतरा होता है।
विशेष फ़ाइलों को ब्लॉक करें या डिवाइस को ब्लॉक करें, हार्डवेयर डिवाइस को बफ़र्ड एक्सेस प्रदान करें, और उनकी बारीकियों से कुछ अमूर्तता प्रदान करें।<ref>{{cite web|title=IEEE Std 1003.1, 2013 Edition|url=http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_79|access-date=24 April 2014}}</ref> चरित्र उपकरणों के विपरीत, ब्लॉक डिवाइस हमेशा प्रोग्रामर को किसी भी आकार (एकल अक्षर/बाइट सहित) और किसी भी संरेखण के ब्लॉक को पढ़ने या लिखने की अनुमति देगा। नकारात्मक पक्ष यह है कि क्योंकि ब्लॉक डिवाइस बफ़र किए जाते हैं, प्रोग्रामर को यह नहीं पता होता है कि कर्नेल के बफ़र्स से लिखित डेटा को वास्तविक डिवाइस पर पास करने में कितना समय लगेगा, या वास्तव में किस क्रम में भौतिक डिवाइस पर दो अलग-भिन्न राइट्स आएंगे। इसके अतिरिक्त, यदि एक ही हार्डवेयर कैरेक्टर और ब्लॉक डिवाइस दोनों को उजागर करता है, तो कैरेक्टर डिवाइस का उपयोग करने वाले क्लाइंट को ब्लॉक डिवाइस के बफ़र्स में किए गए परिवर्तनों से अनजान होने के कारण डेटा भ्रष्टाचार का खतरा होता है।


अधिकांश प्रणाली हार्ड डिस्क जैसे हार्डवेयर का प्रतिनिधित्व करने के लिए ब्लॉक और कैरेक्टर डिवाइस दोनों बनाते हैं। FreeBSD और Linux विशेष रूप से नहीं; पूर्व ने ब्लॉक उपकरणों के लिए समर्थन हटा दिया है,<ref>{{cite web|title=फ्रीबीएसडी आर्किटेक्चर हैंडबुक|url=http://www.freebsd.org/doc/en/books/arch-handbook/driverbasics-block.html|access-date=7 March 2013}}</ref> जबकि बाद वाला केवल ब्लॉक डिवाइस बनाता है। लिनक्स में, डिस्क के लिए एक कैरेक्टर डिवाइस प्राप्त करने के लिए, कच्चे ड्राइवर का उपयोग करना चाहिए, हालांकि लिनक्स-विशिष्ट के साथ ब्लॉक डिवाइस को खोलकर एक कैरेक्टर डिवाइस को खोलने के समान प्रभाव प्राप्त कर सकते हैं। {{mono|O_DIRECT}} झंडा।
अधिकांश प्रणाली हार्ड डिस्क जैसे हार्डवेयर का प्रतिनिधित्व करने के लिए ब्लॉक और कैरेक्टर डिवाइस दोनों बनाते हैं। FreeBSD और Linux विशेष रूप से नहीं; पूर्व ने ब्लॉक उपकरणों के लिए समर्थन हटा दिया है,<ref>{{cite web|title=फ्रीबीएसडी आर्किटेक्चर हैंडबुक|url=http://www.freebsd.org/doc/en/books/arch-handbook/driverbasics-block.html|access-date=7 March 2013}}</ref> जबकि पश्चात वाला केवल ब्लॉक डिवाइस बनाता है। लिनक्स में, डिस्क के लिए एक कैरेक्टर डिवाइस प्राप्त करने के लिए, कच्चे ड्राइवर का उपयोग करना चाहिए, हालांकि लिनक्स-विशिष्ट के साथ ब्लॉक डिवाइस को खोलकर एक कैरेक्टर डिवाइस को खोलने के समान प्रभाव प्राप्त कर सकते हैं। {{mono|O_DIRECT}} झंडा।


=== छद्म उपकरण ===
=== छद्म उपकरण ===
Line 45: Line 45:
इसके अतिरिक्त, बीएसडी-विशिष्ट स्यूडो-डिवाइस a {{mono|[[ioctl]]}} इंटरफ़ेस में ये भी शामिल हो सकते हैं:
इसके अतिरिक्त, बीएसडी-विशिष्ट स्यूडो-डिवाइस a {{mono|[[ioctl]]}} इंटरफ़ेस में ये भी शामिल हो सकते हैं:
* {{mono|[[/dev/pf]]}}{{snd}} उपयोगकर्ताभूमि प्रक्रियाओं को [[पीएफ (फ़ायरवॉल)]] को नियंत्रित करने की अनुमति देता है a {{mono|ioctl}} इंटरफेस।
* {{mono|[[/dev/pf]]}}{{snd}} उपयोगकर्ताभूमि प्रक्रियाओं को [[पीएफ (फ़ायरवॉल)]] को नियंत्रित करने की अनुमति देता है a {{mono|ioctl}} इंटरफेस।
* {{mono|[[/dev/bio]]}}{{snd}} प्रदान करता है {{mono|ioctl}} उपकरणों तक पहुंच अन्यथा नहीं मिली {{mono|/dev}} नोड्स, द्वारा उपयोग किया जाता है {{mono|[[bioctl]]}} [[OpenBSD]] और [[NetBSD]] में [[RAID]] प्रबंधन लागू करने के लिए।
* {{mono|[[/dev/bio]]}}{{snd}} प्रदान करता है {{mono|ioctl}} उपकरणों तक पहुंच अन्यथा नहीं मिली {{mono|/dev}} नोड्स, द्वारा उपयोग किया जाता है {{mono|[[bioctl]]}} [[OpenBSD]] और [[NetBSD]] में [[RAID]] प्रबंधन प्रारम्भ करने के लिए।
* {{mono|[[/dev/sysmon]]}}{{snd}} [[सिस्टम मॉनिटर|प्रणाली मॉनिटर]] के लिए NetBSD के [[envsys]] फ्रेमवर्क द्वारा उपयोग किया जाता है, जिसके माध्यम से यूजरलैंड में एक्सेस किया जाता है {{mono|[[proplib(3)]]}} से {{mono|envstat}} उपयोगिता।<ref name=envstat>{{cite web |url= http://bxr.su/n/usr.sbin/envstat/envstat.c |title= usr.sbin/envstat/envstat.c |website= BSD Cross Reference |publisher= [[NetBSD]] |date=November 2021}}
* {{mono|[[/dev/sysmon]]}}{{snd}} [[सिस्टम मॉनिटर|प्रणाली मॉनिटर]] के लिए NetBSD के [[envsys]] फ्रेमवर्क द्वारा उपयोग किया जाता है, जिसके माध्यम से यूजरलैंड में एक्सेस किया जाता है {{mono|[[proplib(3)]]}} से {{mono|envstat}} उपयोगिता।<ref name=envstat>{{cite web |url= http://bxr.su/n/usr.sbin/envstat/envstat.c |title= usr.sbin/envstat/envstat.c |website= BSD Cross Reference |publisher= [[NetBSD]] |date=November 2021}}
*{{cite book |section=envstat -- utility to handle environmental sensors |title=NetBSD System Manager's Manual |url= http://mdoc.su/n/envstat.8 |archive-url=https://web.archive.org/web/20190323041807/http://netbsd.gw.com/cgi-bin/man-cgi?envstat+8 |archive-date=2019-03-23}}</ref>
*{{cite book |section=envstat -- utility to handle environmental sensors |title=NetBSD System Manager's Manual |url= http://mdoc.su/n/envstat.8 |archive-url=https://web.archive.org/web/20190323041807/http://netbsd.gw.com/cgi-bin/man-cgi?envstat+8 |archive-date=2019-03-23}}</ref>
Line 55: Line 55:
कुछ यूनिक्स संस्करणों में निर्देशिका में सभी आवश्यक उपकरण बनाने के लिए Makedev या MAKEDEV नाम की एक स्क्रिप्ट शामिल है {{mono|/dev}}. यह केवल उन प्रणालियों पर समझ में आता है जिनके उपकरणों को स्थिर रूप से प्रमुख संख्याएँ सौंपी जाती हैं (उदाहरण के लिए, उनके कर्नेल मॉड्यूल में हार्डकोडिंग के माध्यम से)।
कुछ यूनिक्स संस्करणों में निर्देशिका में सभी आवश्यक उपकरण बनाने के लिए Makedev या MAKEDEV नाम की एक स्क्रिप्ट शामिल है {{mono|/dev}}. यह केवल उन प्रणालियों पर समझ में आता है जिनके उपकरणों को स्थिर रूप से प्रमुख संख्याएँ सौंपी जाती हैं (उदाहरण के लिए, उनके कर्नेल मॉड्यूल में हार्डकोडिंग के माध्यम से)।


जबकि कुछ अन्य यूनिक्स प्रणाली जैसे कि FreeBSD, कर्नेल-आधारित डिवाइस नोड प्रबंधन का उपयोग केवल devfs के माध्यम से करते हैं, और मैन्युअल नोड निर्माण का समर्थन नहीं करते हैं। {{mono|mknod(2)}} प्रणाली कॉल और {{mono|mknod(8)}} कमांड POSIX के साथ संगतता बनाए रखने के लिए मौजूद है, लेकिन devfs के बाहर मैन्युअल रूप से बनाए गए डिवाइस नोड काम नहीं करेंगे।<ref>{{cite web |title=mknod(8) |url=https://www.freebsd.org/cgi/man.cgi?query=mknod&apropos=0&sektion=8&manpath=FreeBSD+13.0-RELEASE&arch=default&format=html |website=FreeBSD Manual Pages |publisher=The FreeBSD Project |access-date=2021-06-12 |date=2016-10-03}}</ref>
जबकि कुछ अन्य यूनिक्स प्रणाली जैसे कि FreeBSD, कर्नेल-आधारित डिवाइस नोड प्रबंधन का उपयोग केवल devfs के माध्यम से करते हैं, और मैन्युअल नोड निर्माण का समर्थन नहीं करते हैं। {{mono|mknod(2)}} प्रणाली कॉल और {{mono|mknod(8)}} कमांड POSIX के साथ संगतता बनाए रखने के लिए उपस्थित है, किंतु devfs के बाहर मैन्युअल रूप से बनाए गए डिवाइस नोड काम नहीं करेंगे।<ref>{{cite web |title=mknod(8) |url=https://www.freebsd.org/cgi/man.cgi?query=mknod&apropos=0&sektion=8&manpath=FreeBSD+13.0-RELEASE&arch=default&format=html |website=FreeBSD Manual Pages |publisher=The FreeBSD Project |access-date=2021-06-12 |date=2016-10-03}}</ref>




Line 68: Line 68:


* {{mono|fb}}: [[फ्रेम बफर]]
* {{mono|fb}}: [[फ्रेम बफर]]
* {{mono|fd}}: (प्लेटफ़ॉर्म) [[फ्लॉपी डिस्क]], हालांकि इसी संक्षिप्त नाम का इस्तेमाल आमतौर पर फ़ाइल डिस्क्रिप्टर को संदर्भित करने के लिए भी किया जाता है
* {{mono|fd}}: (प्लेटफ़ॉर्म) [[फ्लॉपी डिस्क]], हालांकि इसी संक्षिप्त नाम का इस्तेमाल सामान्यतः फ़ाइल डिस्क्रिप्टर को संदर्भित करने के लिए भी किया जाता है
* {{mono|hd}}: (क्लासिक) [[ एकीकृत ड्राइव इलेक्ट्रॉनिक्स ]] ड्राइवर (पहले ATA [[हार्ड डिस्क ड्राइव]], ATAPI [[ऑप्टिकल डिस्क ड्राइव]], आदि के लिए उपयोग किया जाता था)
* {{mono|hd}}: (क्लासिक) [[ एकीकृत ड्राइव इलेक्ट्रॉनिक्स ]] ड्राइवर (पहले ATA [[हार्ड डिस्क ड्राइव]], ATAPI [[ऑप्टिकल डिस्क ड्राइव]], आदि के लिए उपयोग किया जाता था)
** {{mono|hda}}: पहले [[एटीए चैनल]] पर मास्टर डिवाइस (आमतौर पर प्रमुख संख्या 3 और छोटी संख्या 0 द्वारा पहचाना जाता है)
** {{mono|hda}}: पहले [[एटीए चैनल]] पर मास्टर डिवाइस (सामान्यतः प्रमुख संख्या 3 और छोटी संख्या 0 द्वारा पहचाना जाता है)
** {{mono|hdb}}: पहले ATA चैनल पर स्लेव डिवाइस
** {{mono|hdb}}: पहले ATA चैनल पर स्लेव डिवाइस
** {{mono|hdc}}: दूसरे एटीए चैनल पर मास्टर डिवाइस
** {{mono|hdc}}: दूसरे एटीए चैनल पर मास्टर डिवाइस
Line 97: Line 97:


Linux में उपयोग किए जाने वाले उपसर्गों की विहित सूची Linux Device List में पाई जा सकती है, आवंटित डिवाइस नंबरों की आधिकारिक रजिस्ट्री और {{mono|/dev}} लिनक्स ऑपरेटिंग प्रणाली के लिए निर्देशिका नोड।<ref>{{cite web | url = https://www.kernel.org/doc/Documentation/devices.txt | title = Linux allocated devices (2.6+ version) | work = [[Linux kernel]] (Documentation/devices.txt) | author = Linux Assigned Names and Numbers Authority | author-link = Linux Assigned Names and Numbers Authority | date = 2009-04-06 | access-date = 2013-06-08 | archive-url = https://web.archive.org/web/20160424173724/https://www.kernel.org/doc/Documentation/devices.txt | archive-date = 24 April 2016 | url-status = dead }}</ref>
Linux में उपयोग किए जाने वाले उपसर्गों की विहित सूची Linux Device List में पाई जा सकती है, आवंटित डिवाइस नंबरों की आधिकारिक रजिस्ट्री और {{mono|/dev}} लिनक्स ऑपरेटिंग प्रणाली के लिए निर्देशिका नोड।<ref>{{cite web | url = https://www.kernel.org/doc/Documentation/devices.txt | title = Linux allocated devices (2.6+ version) | work = [[Linux kernel]] (Documentation/devices.txt) | author = Linux Assigned Names and Numbers Authority | author-link = Linux Assigned Names and Numbers Authority | date = 2009-04-06 | access-date = 2013-06-08 | archive-url = https://web.archive.org/web/20160424173724/https://www.kernel.org/doc/Documentation/devices.txt | archive-date = 24 April 2016 | url-status = dead }}</ref>
अधिकांश उपकरणों के लिए, इस उपसर्ग के बाद विशिष्ट रूप से विशिष्ट उपकरण की पहचान करने वाला एक नंबर होता है। हार्ड ड्राइव के लिए, उपकरणों की पहचान के लिए एक अक्षर का उपयोग किया जाता है और उसके बाद डिस्क विभाजन की पहचान करने के लिए एक संख्या होती है। इस प्रकार एक फाइल प्रणाली डिस्क पर एक क्षेत्र को जान सकता है {{mono|/dev/sda3}}, उदाहरण के लिए, या नेटवर्क से जुड़े टर्मिनल सत्र को देखें {{mono|/dev/pts/14}}.
अधिकांश उपकरणों के लिए, इस उपसर्ग के पश्चात विशिष्ट रूप से विशिष्ट उपकरण की पहचान करने वाला एक नंबर होता है। हार्ड ड्राइव के लिए, उपकरणों की पहचान के लिए एक अक्षर का उपयोग किया जाता है और उसके पश्चात डिस्क विभाजन की पहचान करने के लिए एक संख्या होती है। इस प्रकार एक फाइल प्रणाली डिस्क पर एक क्षेत्र को जान सकता है {{mono|/dev/sda3}}, उदाहरण के लिए, या नेटवर्क से जुड़े टर्मिनल सत्र को देखें {{mono|/dev/pts/14}}.


विशिष्ट पीसी [[ मास्टर बूट दस्तावेज़ ]] का उपयोग करने वाले डिस्क पर, प्राथमिक और वैकल्पिक विस्तारित विभाजन की डिवाइस संख्या 1 से 4 तक होती है, जबकि किसी भी तार्किक विभाजन की अनुक्रमणिका 5 और आगे होती है, पूर्व विभाजनों के लेआउट की परवाह किए बिना (उनके पैरेंट विस्तारित) विभाजन को डिस्क पर चौथा विभाजन होने की आवश्यकता नहीं है, न ही सभी चार प्राथमिक विभाजनों का अस्तित्व होना चाहिए)।
विशिष्ट पीसी [[ मास्टर बूट दस्तावेज़ ]] का उपयोग करने वाले डिस्क पर, प्राथमिक और वैकल्पिक विस्तारित विभाजन की डिवाइस संख्या 1 से 4 तक होती है, जबकि किसी भी तार्किक विभाजन की अनुक्रमणिका 5 और आगे होती है, पूर्व विभाजनों के लेआउट की परवाह किए बिना (उनके पैरेंट विस्तारित) विभाजन को डिस्क पर चौथा विभाजन होने की आवश्यकता नहीं है, न ही सभी चार प्राथमिक विभाजनों का अस्तित्व होना चाहिए)।


डिवाइस के नाम आमतौर पर विभिन्न यूनिक्स-जैसे प्रणाली वेरिएंट के बीच पोर्टेबल नहीं होते हैं, उदाहरण के लिए, कुछ [[बीएसडी]] प्रणाली पर, आईडीई डिवाइसों को नाम दिया जाता है {{mono|/dev/wd0}}, {{mono|/dev/wd1}}, वगैरह।
डिवाइस के नाम सामान्यतः विभिन्न यूनिक्स-जैसे प्रणाली वेरिएंट के मध्य पोर्टेबल नहीं होते हैं, उदाहरण के लिए, कुछ [[बीएसडी]] प्रणाली पर, आईडीई डिवाइसों को नाम दिया जाता है {{mono|/dev/wd0}}, {{mono|/dev/wd1}}, वगैरह।


=== डेवफ्स ===
=== डेवफ्स ===
Line 113: Line 113:
एक डिवाइस फ़ाइल [[आईबीएम पीसी डॉस]], [[टीओएस (अटारी)]], ओएस / 2, और विंडोज प्रणाली में कुछ बंदरगाहों और उपकरणों तक पहुंच की अनुमति देने के लिए उपयोग किया जाने वाला एक आरक्षित कीवर्ड है।
एक डिवाइस फ़ाइल [[आईबीएम पीसी डॉस]], [[टीओएस (अटारी)]], ओएस / 2, और विंडोज प्रणाली में कुछ बंदरगाहों और उपकरणों तक पहुंच की अनुमति देने के लिए उपयोग किया जाने वाला एक आरक्षित कीवर्ड है।


MS-DOS ने यूनिक्स से विशेष फाइलों की अवधारणा को उधार लिया लेकिन उनका नाम बदलकर डिवाइस कर दिया।<ref name="kb90239">{{cite web|url=http://support.microsoft.com/kb/90239 |title=Windows for Workgroups: How VSHARE.386 Manages File Sharing |publisher=Support.microsoft.com |date=1999-09-22 |access-date=2014-01-22}}</ref> क्योंकि MS-DOS के शुरुआती संस्करण एक निर्देशिका (फाइल प्रणाली) पदानुक्रम का समर्थन नहीं करते थे, उपकरणों को उनके नाम को आरक्षित शब्द बनाकर नियमित फाइलों से अलग किया गया था। इसका अर्थ है कि कुछ फ़ाइल नाम उपकरणों के लिए आरक्षित थे, और उन्हें नई फ़ाइलों या निर्देशिकाओं के नाम के लिए उपयोग नहीं किया जाना चाहिए।<ref>{{cite web|url=http://support.microsoft.com/kb/120740/a |title=Macintosh फ़ाइलनाम बनाने से बचें जो NT डिवाइस नाम हैं|publisher=Support.microsoft.com |date=2006-11-01 |access-date=2014-01-22}}</ref>
MS-DOS ने यूनिक्स से विशेष फाइलों की अवधारणा को उधार लिया किंतु उनका नाम बदलकर डिवाइस कर दिया।<ref name="kb90239">{{cite web|url=http://support.microsoft.com/kb/90239 |title=Windows for Workgroups: How VSHARE.386 Manages File Sharing |publisher=Support.microsoft.com |date=1999-09-22 |access-date=2014-01-22}}</ref> क्योंकि MS-DOS के प्रारंभिक संस्करण एक निर्देशिका (फाइल प्रणाली) पदानुक्रम का समर्थन नहीं करते थे, उपकरणों को उनके नाम को आरक्षित शब्द बनाकर नियमित फाइलों से भिन्न किया गया था। इसका अर्थ है कि कुछ फ़ाइल नाम उपकरणों के लिए आरक्षित थे, और उन्हें नई फ़ाइलों या निर्देशिकाओं के नाम के लिए उपयोग नहीं किया जाना चाहिए।<ref>{{cite web|url=http://support.microsoft.com/kb/120740/a |title=Macintosh फ़ाइलनाम बनाने से बचें जो NT डिवाइस नाम हैं|publisher=Support.microsoft.com |date=2006-11-01 |access-date=2014-01-22}}</ref>
आरक्षित नामों को विशेष फाइलों को संभालने के साथ संगत होने के लिए चुना गया था <code>[[PIP (CP/M)|PIP]]</code> सीपी/एम में कमांड। डॉस में दो प्रकार के उपकरण थे: ब्लॉक डिवाइसेस (डिस्क ड्राइव के लिए प्रयुक्त) और कैरेक्टर डिवाइसेस (आम तौर पर कॉम और पीआरएन डिवाइस सहित अन्य सभी डिवाइस)।<ref>{{cite web|url=http://stanislavs.org/helppc/device_attributes.html |title=डिवाइस गुण|publisher=Stanislavs.org |access-date=2014-01-22}}</ref>
आरक्षित नामों को विशेष फाइलों को संभालने के साथ संगत होने के लिए चुना गया था <code>[[PIP (CP/M)|PIP]]</code> सीपी/एम में कमांड। डॉस में दो प्रकार के उपकरण थे: ब्लॉक डिवाइसेस (डिस्क ड्राइव के लिए प्रयुक्त) और कैरेक्टर डिवाइसेस (सामान्यतः कॉम और पीआरएन डिवाइस सहित अन्य सभी डिवाइस)।<ref>{{cite web|url=http://stanislavs.org/helppc/device_attributes.html |title=डिवाइस गुण|publisher=Stanislavs.org |access-date=2014-01-22}}</ref>
DOS प्रिंटर और पोर्ट तक पहुँचने के लिए डिवाइस फ़ाइलों का उपयोग करता है। विंडोज के अधिकांश संस्करणों में भी यह समर्थन होता है, जो कुछ नामों की फाइलों और फ़ोल्डरों को बनाने की कोशिश करते समय भ्रम पैदा कर सकता है, क्योंकि उनके पास ये नाम नहीं हो सकते।<ref name="FileNameUse">{{cite web |title=MS-DOS डिवाइस ड्राइवर नाम का उपयोग फ़ाइल नाम के रूप में नहीं किया जा सकता है|date=2003-05-12 |version=Revision 2.0 |id=KB74496, Q74496 |publisher=[[Microsoft]] |url=http://support.microsoft.com/kb/74496/en-us |url-status=dead |archive-url=https://archive.today/2012.07.21-143046/http://support.microsoft.com/kb/74496/en-us |archive-date=2012-07-21}}</ref> MS-DOS के संस्करण 2.x प्रदान करते हैं <code>[[AVAILDEV]]</code> CONFIG.SYS पैरामीटर, यदि सेट किया गया है <code>FALSE</code>, इन विशेष नामों को केवल तभी सक्रिय बनाता है जब इसके साथ उपसर्ग किया जाता है <code>\DEV\</code>, इस प्रकार साधारण फ़ाइलों को इन नामों से बनाने की अनुमति देता है।<ref>{{cite web |title=अप्रमाणित आदेश|date=2002-04-12 |publisher=Kevtronics |work=4dos.info |url=http://www.4dos.info/tools/undoc_dos.txt |access-date=2014-05-16}}</ref>
DOS प्रिंटर और पोर्ट तक पहुँचने के लिए डिवाइस फ़ाइलों का उपयोग करता है। विंडोज के अधिकांश संस्करणों में भी यह समर्थन होता है, जो कुछ नामों की फाइलों और फ़ोल्डरों को बनाने की कोशिश करते समय भ्रम पैदा कर सकता है, क्योंकि उनके पास ये नाम नहीं हो सकते।<ref name="FileNameUse">{{cite web |title=MS-DOS डिवाइस ड्राइवर नाम का उपयोग फ़ाइल नाम के रूप में नहीं किया जा सकता है|date=2003-05-12 |version=Revision 2.0 |id=KB74496, Q74496 |publisher=[[Microsoft]] |url=http://support.microsoft.com/kb/74496/en-us |url-status=dead |archive-url=https://archive.today/2012.07.21-143046/http://support.microsoft.com/kb/74496/en-us |archive-date=2012-07-21}}</ref> MS-DOS के संस्करण 2.x प्रदान करते हैं <code>[[AVAILDEV]]</code> CONFIG.SYS पैरामीटर, यदि सेट किया गया है <code>FALSE</code>, इन विशेष नामों को केवल तभी सक्रिय बनाता है जब इसके साथ उपसर्ग किया जाता है <code>\DEV\</code>, इस प्रकार साधारण फ़ाइलों को इन नामों से बनाने की अनुमति देता है।<ref>{{cite web |title=अप्रमाणित आदेश|date=2002-04-12 |publisher=Kevtronics |work=4dos.info |url=http://www.4dos.info/tools/undoc_dos.txt |access-date=2014-05-16}}</ref>
[[GEMDOS]], अटारी TOS का DOS [[जैसा]] हिस्सा, DOS के समान डिवाइस नामों का समर्थन करता है, लेकिन DOS के विपरीत इसे एक अनुगामी की आवश्यकता होती है: सामान्य फ़ाइलनामों के विपरीत उपकरणों के रूप में उनकी पहचान करने के लिए वर्ण (DOS पर, यह वैकल्पिक है) (इस प्रकार CON: होगा DOS और TOS दोनों पर काम करते हैं, लेकिन CON TOS पर एक साधारण फ़ाइल का नाम देगा लेकिन DOS पर कंसोल डिवाइस)। MiNT और [[MagiC]] में, U: ड्राइव लेटर के माध्यम से एक्सेस किए गए एक विशेष यूनिक्स-जैसे एकीकृत फ़ाइल प्रणाली व्यू में डिवाइस फ़ाइलों को U:\DEV में भी रखा गया है।
[[GEMDOS]], अटारी TOS का DOS [[जैसा]] हिस्सा, DOS के समान डिवाइस नामों का समर्थन करता है, किंतु DOS के विपरीत इसे एक अनुगामी की आवश्यकता होती है: सामान्य फ़ाइलनामों के विपरीत उपकरणों के रूप में उनकी पहचान करने के लिए वर्ण (DOS पर, यह वैकल्पिक है) (इस प्रकार CON: होगा DOS और TOS दोनों पर काम करते हैं, किंतु CON TOS पर एक साधारण फ़ाइल का नाम देगा किंतु DOS पर कंसोल डिवाइस)। MiNT और [[MagiC]] में, U: ड्राइव लेटर के माध्यम से एक्सेस किए गए एक विशेष यूनिक्स-जैसे एकीकृत फ़ाइल प्रणाली व्यू में डिवाइस फ़ाइलों को U:\DEV में भी रखा गया है।


{| class="wikitable"
{| class="wikitable"
Line 200: Line 200:


== आईओसीएस ==
== आईओसीएस ==
[[Sharp Corporation]] [[पॉकेट कंप्यूटर]] के 8-बिट ऑपरेटिंग प्रणाली जैसे [[Sharp PC-E500]]|PC-E500, [[Sharp PC-E500S]]|PC-E500S आदि में एक [[BASIC]] दुभाषिया, एक DOS 2-जैसी फाइल कंट्रोल प्रणाली (FCS) लागू होता है। एक अल्पविकसित 12-बिट FAT-जैसी फाइलप्रणाली, और एक BIOS-जैसी इनपुट/आउटपुट कंट्रोल प्रणाली (IOCS) कई मानक कैरेक्टर और ब्लॉक डिवाइस ड्राइवरों को लागू करने के साथ-साथ STDO:/SCRN: (डिस्प्ले), STDI सहित विशेष फाइल डिवाइस :/KYBD: (कीबोर्ड), COM: (सीरियल I/O), STDL:/PRN: (प्रिंटर), CAS: (कैसेट टेप), E:/F:/G: (मेमोरी फ़ाइल), S1:/S2 :/S3: (मेमोरी कार्ड), X:/Y: (फ्लॉपी), SYSTM: (प्रणाली), और NIL: (फंक्शन)।<ref>{{cite book |title=Technical Reference Manual PC-E500 |publisher=[[Sharp Corporation]], Information Systems Group, Personal Equipment Division |date=March 1990 |page=17 |url=http://www.sarnau.info/static/files/TechnicalReferenceManualPC-E500.pdf |access-date=2017-03-14 |url-status=live |archive-url=https://web.archive.org/web/20170314222851/http://www.sarnau.info/static/files/TechnicalReferenceManualPC-E500.pdf |archive-date=2017-03-14}}</ref>
[[Sharp Corporation]] [[पॉकेट कंप्यूटर]] के 8-बिट